Docker-Compose는 Docker 데몬에 연결할 수 없습니다.


114

도커 데몬에 연결할 수 없다는 오류 메시지가 나타납니다. 비슷한 문제가 있었지만 도움이되지 않은 다른 사람들의 답변을 조사했습니다. Ubuntu 15.10 버전을 실행하고 있습니다. 내가 가진 모든 정보를 제공하려고 노력할 것입니다.

root@# docker-compose -f docker-compose-deps.yml up -d
ERROR: Couldn't connect to Docker daemon at http+docker://localunixsocket - is it running?

If it's at a non-standard location, specify the URL with the DOCKER_HOST environment variable.

Docker 버전

root@# sudo docker     version
Client:
Version:      1.9.1
API version:  1.21
Go version:   go1.4.2
Git commit:   a34a1d5
Built:        Fri Nov 20 13:20:08 UTC 2015
OS/Arch:      linux/amd64
Cannot connect to the Docker daemon. Is the docker daemon running on this host?

Docker-Compose 버전

root@# docker-compose --version
docker-compose version 1.5.2, build 7240ff3

서비스를 중지하거나 시작하려고하면 이런 일이 발생합니다.

root@# sudo service docker stop
stop: Unknown instance: 
root@# sudo service   docker start
docker start/running, process 5375

내가 달리면 ps aux | grep docker

root@# ps aux | grep docker
root      4233  0.0  0.0  13692  2204 pts/15   S+   10:27   0:00 grep --color=auto docker

어떤 도움이라도 대단히 감사하겠습니다. 더 이상 정보가 필요하면 알려주세요.


1
게시물을 훼손하지 마십시오. 질문을 게시 한 후에는 CC-by-SA 라이선스에 따라 Stack Overflow 커뮤니티에 콘텐츠 라이선스를 부여했습니다. 이 게시물을 계정에서 연결 해제하려면 연결 해제 요청을위한 적절한 경로는 무엇입니까?를 참조하십시오 . .
Bugs

답변:


268

디버깅 15 분 후에 같은 오류가 발생했습니다. 필요한 것은 다음과 같습니다. sudo:) 여기 https://docs.docker.com/engine/installation/linux/ubuntulinux/ 에서 [Create a Docker group] 을 확인하여 sudo 접두사를 제거 하십시오 .


35
그들은 더 나은 오류를 필요 = /이 질문은 13,000 전망이
조나단

4
이봐, 당신은 투표 한 사람들에게만 약 30 시간을 절약했고 아마 당신이 실제로 절약 한 시간의 1 %에 불과합니다
vak

5
진짜 수정은 도커 그룹을 만드는 것이며 sudo, 제 생각에는 해결 방법 / 해킹 일뿐입니다. 그룹 생성 부분은 여기에 설명되어 있지 않고 링크 만 제공되고 해당 링크의 내용이 변경 되었기 때문에 링크 전용 답변이라고 생각하며 이제는 본질적으로 쓸모가 없습니다 (실제 수정 부분의 경우). 해당 그룹을 추가하는 방법에 대한 설명을 추가 할 수 있습니까?
hoijui

2
나도 sudo나쁜 생각 이라고 생각 합니다. 루트가 아닌 사용자로 Docker를 관리하려면 Docker 문서를 참조하십시오. docs.docker.com/engine/installation/linux/linux-postinstall/…
jwhitlock

6
기본적으로해야 할 일은이며 sudo usermod -aG docker $USER나중에 작동합니다.
user2340939

65

나는이 문제가 있었고 sudo. 조사 할 때 몇 가지 정보를 얻으려고했습니다.

docker info

놀랍게도 다음과 같은 오류가 발생했습니다.

unix : ///var/run/docker.sock에서 Docker 데몬 소켓에 연결을 시도하는 동안 권한이 거부되었습니다 : Get http : ///var/run/docker.sock/v1.38/info : dial unix / var /run/docker.sock : 연결 : 권한이 거부되었습니다.

어떤 이유로 충분한 권한이 없었기 때문에 다음 명령으로 문제가 해결되었습니다.

sudo chown $USER /var/run/docker.sock

Et voilà!


도커를 다시 시작한 후에는 어떻습니까? 이걸 다시해야하나요?
Light.G 2010 년

아니요, Docker를 다시 시작할 때 작동합니다. 하지만 컴퓨터를 다시 시작하면 어떻게되는지 잘 모르겠습니다.
madjaoue

기본적으로 Docker는 기본적 docker.sock으로 루트가 아닌 그룹을 보유 docker합니다. 그러나 -GDocker 데몬이 시작되는 동안 플래그로 변경할 수 있습니다 . 제 경우에는 그룹을 $USERNAME추가하고 도커 그룹을 추가 한 다음 컴퓨터 (ubuntu 16.04, PC)를 재부팅합니다. 잘 작동한다. 그리고 이것은 docker 문서에서 권장됩니다.
Light.G 2010 년

3
:) 너무 나를 위해 작동
카밀 J.

27

Docker가 충돌 한 후 소켓 파일이 다시 생성되지 않은 이전 Docker 버그로 인해 문제가 발생한 것으로 보입니다. 이것이 문제인 경우 소켓 파일의 이름을 바꾸면 파일을 다시 만들 수 있습니다.

$ sudo service docker stop
$ sudo mv /var/lib/docker /var/lib/docker.bak
$ sudo service docker start

이 버그가 수정되었으므로 대부분의 사람들은 Couldn't connect to Docker daemon 가 하는 은 docker그룹에 속해 있지 않고 해당 파일을 읽을 수있는 권한 이 없기 때문에 가 했을 수 있습니다. 로 실행 sudo docker ...하면 문제가 해결되지만 훌륭한 솔루션은 아닙니다.

Docker는 sudo적절한 그룹 권한이있는 루트가 아닌 사용자 (없이 ) 로 실행할 수 있습니다 . 리눅스 문서를 포스트 설치 세부 사항을 가지고있다. 짧은 버전 :

$ sudo groupadd docker
$ sudo usermod -aG docker $USER
# Log out and log back in again to apply the groups
$ groups  # docker should be in the list of groups for your user
$ docker run hello-world  # Works without sudo

이것은의 사용자 수 있도록 docker그룹을 실행 docker하고 docker-compose명령없이 sudo. Docker 자체는 루트를 실행하여 일부 공격을 허용하므로 실행하는 컨테이너에 여전히주의해야합니다. 자세한 내용은 Docker 보안 설명서 를 참조하십시오.


이 질문은 Linux 설치와 관련이 있으며 수정에는 Linux 호스트 시스템에서 수정하기위한 변경 사항이 포함됩니다. 동일한 세부 사항으로 Windows 용으로 유사한 질문을 게시하면 더 나은 정보를 얻을 수 있습니다. 스스로를 해결하기 위해 Windows 용 Docker 문서를
jwhitlock

10

나는 같은 문제가 있었다. 메모를 작성하고 디버깅 결과를 분석 한 후 마지막으로 동일한 오류가 될 수있는 문제를 해결했습니다. 먼저 서비스를 시작하고

service docker start

사용자를 도커 그룹에 포함시키는 것을 잊지 마십시오.


이 오류가 발생했을 때 루트로 실행 중이었습니다. sudo다른 사람들을 위해 그것을 고친 것처럼 보였습니다. -_- 내가하는 것을 잊은 것이 정말로 이것임을 알게되어 기쁩니다. 아주 간단합니다!

8

다음과 같이 "docker"그룹에 사용자를 추가해야합니다.

sudo usermod -aG docker $ {USER}


5

Dockerfile현재 사용자가 액세스 할 수없는 디렉토리에 파일이있을 때이 오류가 발생했습니다 . docker따라서 전체 컨텍스트를 데몬에 업로드 할 수없고 " http + docker : // localunixsocket에서 Docker 데몬에 연결할 수 없습니다 "메시지를 가져 왔습니다 .


2
감사! 이것은 나를 위해 그것을 해결했습니다. 모든 docker 명령이 작동했기 때문에 확인하기 쉽지만 docker-compose는 작동하지 않았습니다. 또한 docker-compose는 다른 디렉토리에서 작동했습니다. 매우 오해의 소지가있는 오류 메시지, BTW.
Csongor Fagyal

1
이것은 정말로 더 높아야합니다
Arlen Anderson

1
감사! 나를 위해 일했습니다. 사용 docker build .하면 권한 문제가 발생합니다.
everyman

작동했던 유일한 것-Docker 오류 메시지가 왜 그렇게 나쁜가요? 감사!
coderMe

4

이를 해결하는 한 가지 방법은 먼저 docker다음을 실행 하여 사용자를 그룹에 추가하는 것입니다.

sudo usermod -aG docker $USER

중요 : 시스템 (터미널뿐만 아니라)에서 로그 아웃했다가 다시 로그인해야 적용됩니다!


sudo usermod -aG docker $ {USER} 변경 사항을 적용하려면 로그 아웃 및 로그인해야합니다.
su-

3

"ps aux | grep docker"의 출력에서 ​​docker 데몬이 실행되지 않는 것처럼 보입니다. 아래 방법을 사용하여 무엇이 잘못되었으며 왜도 커가 시작되지 않는지 확인하십시오.

  1. Docker 로그 확인

$ sudo tail -f /var/log/upstart/docker.log

  1. 디버그 모드에서 Docker를 시작하십시오.

$ sudo 도커 -d -D


2

제 경우에는 도커 서비스가 중지되었을 수 있습니다.

Docker 서비스를 시작하는 명령 :

$ sudo systemctl start docker

시작 여부를 확인하는 명령 :

$ sudo docker run hello-world


2

이 오류가 나타날 수있는 또 다른 이유 : 나에게는 잘못된 이미지 경로 정의가 있습니다 docker-compose.yml.

  service:
    image: ${CONTAINER_REGISTRY_BASE}/my-service
   ...

Lookis 먼저 괜찮지 만 CONTAINER_REGISTRY_BASE=eu.gcr.io/my-project/환경을 설정했습니다. 분명히 //이미지 경로 에서이 오류가 발생했습니다.

docker-compose: v.1.21.2
docker: 18.03.1-ce

2

그냥 시도해보십시오 sudo. 권한 문제인 것 같습니다!

sudo docker-compose -f docker-compose-deps.yml up -d

그것은 나를 위해 일했습니다.


1

Ubuntu 16.04를 사용했고 docker-compose를 사용할 때도이 문제를 발견했습니다. 이 명령을 실행하여 수정했습니다.

$ sudo systemctl start docker
$ sudo docker-compose build

1

기본 컴퓨터를 삭제했을 가능성이 있습니까? 그러나 먼저 모든 파일이 있는지 확인하십시오 (OSX, 다른 시스템과 유사).

brew install docker docker-compose docker-machine xhyve docker-machine-driver-xhyve
brew link docker docker-compose docker-machine xhyve docker-machine-driver-xhyve

sudo chown root:wheel /usr/local/opt/docker-machine-driver-xhyve/bin/docker-machine-driver-xhyve
sudo chmod u+s /usr/local/opt/docker-machine-driver-xhyve/bin/docker-machine-driver-xhyve

또한 컨테이너를 유지하기가 훨씬 쉽기 때문에 Docker 앱을 설치하십시오.

brew cask reinstall docker

파인더에서 Docker 앱 시작 (서비스가 완전히 시작될 때까지 대기)

그런 다음 다음을 사용하여 설치를 확인하십시오.

docker-machine ls

목록에 머신이 없으면 하나를 만들고 시작합니다.

docker-machine create default
docker-machine start default

그런 다음 빌드, 작성 및 기타 모든 명령이 제대로 작동합니다.


1

제 경우에는 우분투 권한 때문입니다.

  1. 목록 항목

허가 확인

docker info 

문제 허가를 인쇄 여기에 이미지 설명 입력 하면

sudo chmod -R 777 /var/run/docker.sock

0

나에게 수정 사항은 이 기사docker-compose사용하여 최신 버전 (1.24)을 설치하는 것이 었습니다 .

이전 버전 (1.17)은의 ubuntu기본 저장소에서 설치되었지만 새 버전을 설치 한 후 컨테이너를 실행할 수있었습니다. 누군가에게 도움이되기를 바랍니다.



-1

내 경우에는 내가 시도 할 때 동일한 오류가 발생 docker-compose build 하고 내 솔루션은sudo

sudo docker-compose build

-2

나는 이것을 발견했고 그것은 내 문제를 해결하는 것 같았다.

GitHub 수정 Docker 데몬 크래시

링크에 표시된대로 docker-compose-deps.yml 파일의 내용을 변경했습니다. 그리고 나는 달렸다 docker-compose -f docker-compose-deps.yml up -d. 그런 다음 다시 변경했고 어떤 이유로 작동했습니다. 제공된 링크의 단계를 계속할 필요가 없었지만 처음 두 단계에서 문제가 해결되었습니다.


2
우분투 16.04 : sudo 추가 : sudo docker-compose up -d
Moccine

대답으로는 충분하지 않습니다. 자신의 답변을 받아들이려면 문제의 근본 원인을 설명해야합니다. 그렇지 않으면 다른 사람들에게 오해의 소지가 있습니다. BTW, 여기에 다른 답변이 있습니다. 도움이 되었습니까? 나는 당신의 코멘트를 보지 못했기 때문에.
Light.G 2010 년
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.