우분투에서 Docker와 Docker-Compose를 사용하려고 했는데, 아래와 같이 "Couldn't connect to Docker daemon at http+docker://localunixsocket - is it running?" 에러가 발생하였습니다. 해결방법에 대해서 정리하였습니다.
$ docker-compose up -d
ERROR: Couldn\'t connect to Docker daemon at http+docker://localunixsocket - is it running?
에러 내용은 Docker가 실행 중인 것 같지 않다고 하는데요. 실제로 Docker가 실행 중이 아니거나, Docker의 접근 권한이 제한되어 발생하는 에러일 수 있습니다. 그래서 Docker가 실행 중인지 확인하고, 권한 등이 올바르게 설정되었는지 확인해야 합니다.
- Docker가 실행 중인지 확인하기
sudo service docker status
로 Docker가 실행 중인지 확인합니다. Active의 상태가 Running이면 실행 중인 것입니다.
$ sudo service docker status
● docker.service - Docker Application Container Engine
Loaded: loaded (/lib/systemd/system/docker.service; disabled; vendor preset: enabled)
Active: active (running) since Tue 2019-06-11 17:25:04 KST; 8min ago
Docs: https://docs.docker.com
Main PID: 19093 (dockerd)
Tasks: 12
CGroup: /system.slice/docker.service
└─19093 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock
....
- Docker 소켓 파일 권한 확인
도커의 소켓 파일의 권한이 올바르게 설정되어있는지 확인해야 합니다.
아래와 같이 ls -la /var/run/docker.sock
명령어로 확인할 수 있으며 소유자는 root, 그룹은 docker로 설정되어야 합니다.
$ sudo ls -la /var/run/docker.sock
srw-rw---- 1 root docker 0 Jun 11 17:25 /var/run/docker.sock
- 실행 중인 유저가 docker 그룹에 포함되었는지 확인
위의 1, 2번이 잘 설정되었다면 3번이 설정되지 않아서 에러가 발생했을 가능성이 높습니다.
현재 실행 중인 유저가 Docker의 기능을 쓰기 때문에, 이 유저가 docker 그룹에 포함되어 있어야 합니다.
물론 모든 명령어에 sudo
를 붙여 루트로 실행하면 문제가 해결되지만 번거롭기 때문에 그룹에 유저를 추가해주는 것이 좋습니다.
다음 명령어를 입력하시면 현재 유저가 docker 그룹에 추가됩니다.
$ sudo usermod -aG docker ${USER}
변경된 내용이 적용되려면 유저가 로그아웃/로그인 되거나 시스템을 재시작해야 합니다. 그 이후 다시 docker를 실행해보면 에러 없이 동작하는 것을 볼 수 있습니다.
참고
Related Posts
- Python - Yaml 파일 파싱하는 방법
- Python - pip와 requirements.txt로 패키지 관리
- 유튜브 쇼츠(Shorts) 자막 끄기/켜기
- SOLID 원칙, 객체지향 설계 5가지 원칙
- Ubuntu 20.04 - Nginx로 React를 배포하는 방법
- 애드센스 '구글 검색 기능' 블로그에 추가
- 트위터 이메일 안오게, 알림 끄기
- 인스타그램 동영상, 사진 저장 방법
- Git 설치 방법 (Ubuntu, Windows)
- Python pip 설치 (Ubuntu / Windows)
- 마우스 우클릭 복사 방지 해제 방법 (크롬)
- Python 에러 해결, 'conda' 용어가 cmdlet, 함수, 스크립트 ... 인식되지 않습니다.
- Python 에러 해결, AttributeError: module 'jwt' has no attribute 'encode'
- Atom - 코드 자동 정렬
- Sublime Text - 코드 자동 정렬, 단축키 설정
- VSCode에서 탭 간격 설정 (Tab to 4 spaces)
- Visual Studio Code에서 코드 자동 정렬
- 구글 검색 기록 삭제, 자동 저장 끄기 (PC, 모바일)
- 안드로이드 개발자 옵션 활성화, USB 디버깅 켜기
- 유튜브 채널 차단, 해제 방법 (PC, 모바일)
- 유튜브 미리보기 자동재생 끄기 (자동 소리 끄기/켜기)
- PC에서 유튜브 모바일 버전(m.youtube.com)으로 보기
- 모바일에서 유튜브 PC버전으로 보기
- 유튜브 시간 링크 만들기, 댓글에 시간 태그 입력하기
- 유튜브 스크립트 함께 보기, 자막 추출 방법
- 유튜브 알고리즘 초기화, 검색 기록과 시청 기록 삭제
- 유튜브 '싫어요' 숫자 다시 보이게 하기
- 구글 크롬, 방금 닫은 탭 다시 열기
- Maven으로 Java프로젝트 build하는 방법
- node.js, npm 버전 확인 방법 (터미널, cmd 명령어)
- GitLab - 'pre-receive hook declined' 에러 해결
- Javacript Heap Out Of Memory 문제 해결
- SSH key 생성하고 GitHub에 등록
- GMT, UTC의 차이점
- Linux(Ubuntu)에 Adobe Photoshop, Illustrator 설치하는 방법