Docker 명령이 Docker 데몬에 연결할 수 없습니다
Docker로 옮기고 싶었으므로 방금 엉망이되었습니다. VirtualBox Ubuntu 15.10 (Wily Werewolf) 설치에 Docker를 설치했으며 여기 에서 제안한 것처럼 기본 nginx Docker 이미지를 실행하려고 시도했습니다 .
$ docker run --name mynginx1 -P -d nginx
Cannot connect to the Docker daemon. Is the docker daemon running on this host?
그래서 Docker가 실행 중인지 확인했습니다.
$ sudo service docker status
● docker.service - Docker Application Container Engine
Loaded: loaded (/lib/systemd/system/docker.service; enabled; vendor preset: enabled)
Active: active (running) since vr 2015-11-06 08:41:48 CET; 15min ago
Docs: https://docs.docker.com
Main PID: 7542 (docker)
CGroup: /system.slice/docker.service
└─7542 /usr/bin/docker daemon -H fd://
nov 06 08:41:47 kramer65-VirtualBox systemd[1]: Starting Docker Application Container Engine...
nov 06 08:41:47 kramer65-VirtualBox docker[7542]: time="2015-11-06T08:41:47.900410966+01:00" level=info msg="API ...ock"
nov 06 08:41:48 kramer65-VirtualBox docker[7542]: time="2015-11-06T08:41:48.033514149+01:00" level=info msg="Fire...lse"
nov 06 08:41:48 kramer65-VirtualBox docker[7542]: time="2015-11-06T08:41:48.141594321+01:00" level=info msg="Defa...ess"
nov 06 08:41:48 kramer65-VirtualBox docker[7542]: time="2015-11-06T08:41:48.416294436+01:00" level=warning msg="Y...it."
nov 06 08:41:48 kramer65-VirtualBox docker[7542]: time="2015-11-06T08:41:48.565507576+01:00" level=info msg="Load...rt."
nov 06 08:41:48 kramer65-VirtualBox docker[7542]: time="2015-11-06T08:41:48.567907022+01:00" level=info msg="Load...ne."
nov 06 08:41:48 kramer65-VirtualBox docker[7542]: time="2015-11-06T08:41:48.567945214+01:00" level=info msg="Daem...ion"
nov 06 08:41:48 kramer65-VirtualBox docker[7542]: time="2015-11-06T08:41:48.567969891+01:00" level=info msg="Dock....9.0
nov 06 08:41:48 kramer65-VirtualBox systemd[1]: Started Docker Application Container Engine.
Hint: Some lines were ellipsized, use -l to show in full.
이것은 Docker 데몬이 실제로 이미 실행 중이지만 Docker 데몬을 수동으로 시작했는지 확인합니다.
$ sudo docker daemon
INFO[0000] API listen on /var/run/docker.sock
INFO[0000] [graphdriver] using prior storage driver "aufs"
INFO[0000] Firewalld running: false
INFO[0000] Default bridge (docker0) is assigned with an IP address XXX.XX.X.X/XX. Daemon option --bip can be used to set a preferred IP address
WARN[0000] Your kernel does not support swap memory limit.
INFO[0000] Loading containers: start.
INFO[0000] Loading containers: done.
INFO[0000] Daemon has completed initialization
INFO[0000] Docker daemon commit=76d6bc9 execdriver=native-0.2 graphdriver=aufs version=1.9.0
그런 다음 이미지를 다시 실행했지만 동일한 결과를 얻었습니다.
$ docker run --name mynginx1 -P -d nginx
Cannot connect to the Docker daemon. Is the docker daemon running on this host?
나는 명령을 sudo'ing했지만 아무 소용이 없었다. 내가 여기서 뭘 잘못하고 있니?
다음과 같이 현재 사용자를 docker 그룹에 추가해야합니다.
sudo usermod -aG docker $(whoami)
그런 다음 시스템에 로그 아웃하고 다시 로그인 하거나 시스템을 다시 시작하십시오. 에 의해 테스트docker version
docker-engine을 설치하는 방법에 대한 자세한 내용은 docker documentation을 따르십시오.
docker 그룹에 사용자 추가
도커 그룹이 없으면 추가하십시오.
sudo groupadd docker
연결된 사용자 "$ {USER}"를 도커 그룹에 추가하십시오.
sudo gpasswd -a ${USER} docker
Docker 데몬을 다시 시작하십시오.
sudo service docker restart
newgrp docker
그룹 변경 사항을 활성화하려면 a 또는 로그 아웃 / 로그인을 수행하십시오 .
일반적으로 다음 명령은 트릭을 수행합니다.
sudo service docker restart
docker start
Docker가 이미 실행중인 것처럼 보이는 대신에 .
제안 된 다른 답변 과이 GitHub 문제 에서 작동하면 docker 그룹에 자신을 추가하지 않은 경우 다음을 실행하여 수행하십시오.
sudo usermod -aG docker <your-username>
그리고 당신은 가장 잘 갈 것입니다.
다른 사람 이이 문제에 부딪 치면 일부 OS의도 커가 설치 직후 시작되지 않아 결과가 동일하게 can't connect to daemon message
나타납니다. 이 경우 먼저 다음을 실행하여 docker 서비스의 상태를 확인하여 Docker가 실제로 실행되고 있지 않은지 확인할 수 있습니다.
sudo service docker status
출력이 같이 보입니다 경우 docker stop/waiting
대신 docker start/running, process 15378
그것은 분명히 부두 노동자가 활성화되지 않은 것을 의미한다. 이 경우 다음으로 시작하십시오.
sudo service docker start
그리고 이전과 마찬가지로 갈 것입니다.
자기 자신에 대한 참고 사항 : docker
명령 을 실행하는 것을 잊었을 때 질문 제목에서 오류가 발생합니다 sudo
.
sudo docker run ...
[우분투 15.10]
같은 문제가 있었고 나를 위해 일한 것은 :
/var/run/docker.sock의 소유권 확인
ls -l /var/run/docker.sock
소유자가 아닌 경우 다음 명령으로 소유권을 변경하십시오.
sudo chown *your-username* /var/run/docker.sock
그런 다음 Docker 명령을 번거롭지 않게 실행할 수 있습니다. : D
모든 것을 설치하고 서비스를 시작한 후 터미널을 닫았다가 다시 연 다음 이미지를 가져옵니다.
편집하다
위의 솔루션 이 작동하지 않으면 이 문제가 다시 발생 했습니다. 이 솔루션 을 사용해보십시오.
sudo mv /var/lib/docker/network/files/ /tmp/dn-bak
고려 사항
위의 명령이 작동하면 네트워크 도커 문제가 발생했을 가능성이 있습니다.
tail -5f /var/log/upstart/docker.log
출력에 이와 비슷한 것이 있으면
FATA[0000] Error starting daemon: Error initializing network controller: could not delete the default bridge network: network bridge has active endpoints
/var/run/docker.sock is up
당신은 정말로 네트워크 문제가 있지만, 다음에 다시 시작할 때 ( update , 2 개월 아무런 문제가 없음) OS 가이 문제를 다시 겪고 버그 또는 설치 문제 인지 여부는 아직 알지 못합니다.
내 도커 버전
Client:
Version: 1.9.1
API version: 1.21
Go version: go1.4.2
Git commit: a34a1d5
Built: Fri Nov 20 13:12:04 UTC 2015
OS/Arch: linux/amd64
Server:
Version: 1.9.1
API version: 1.21
Go version: go1.4.2
Git commit: a34a1d5
Built: Fri Nov 20 13:12:04 UTC 2015
OS/Arch: linux/amd64
Ubuntu에 docker를 설치 한 후 다음 명령을 실행했습니다.
sudo service docker start
사용해 보셨습니까?
나는 같은 문제가 있었다. 그것을 해결하기 위해 이틀 동안 어려움을 겪었습니다.
내가 할 때만 작동했습니다.
Docker 's Tutorial 에 따르면 다음을 사용하여 Docker 키를 아직 추가하지 않은 경우 추가해야합니다.
$ sudo wget -qO- https://get.docker.com/gpg | sudo apt-key add -
그런 다음 다음을 사용하여 도커 권한을 자신에게 부여하십시오.
$ sudo usermod -aG docker $USER
이것이 당신에게도 도움이되기를 바랍니다.
루트 ( sudo su
) 로 입력하고 이것을 시도하십시오 :
unset DOCKER_HOST
docker run --name mynginx1 -P -d nginx
나는 여기에서 같은 문제를 겪었고, docker 명령은 루트로만 실행 되었으며이 DOCKER_HOST
빈 상태 에서도 작동했습니다.
추신 : 우분투 에 설치 하는 올 바르고 공식적인 방법 은 " wget "이 아닌 적절한 저장소 (15.10)를 사용 하는 것입니다.
대한 OSX :
Docker를 열고 빠른 시작 터미널 ( https://docs.docker.com/engine/installation/mac/ )을 통해 '기본'시스템을 시작한 후 docker 명령을 시도하고이 "docker 데몬에 연결할 수 없습니다"메시지가 나타납니다. , 당신은 몇 가지 ENV 변수를 설정해야합니다 밖으로가집니다 :
eval "$(docker-machine env default)"
그런 다음 docker run hello-world
모든 것이 복숭아인지 확인하십시오.
이미 컴퓨터를 다시 시작하려고 시도한 사람들은 docker env documentation에 설명 된 환경 변수 DOCKER_HOST를 설정 해제 하고 나머지는 모두
sudo service docker restart
이것은 기계를 다시 시작한 후에도 나를 위해 속임수였습니다.
도커 에서 비 루트 액세스 제공
도커 그룹이 없으면 추가하십시오.
$ sudo groupadd docker
연결된 사용자 "$ {USER}"를 도커 그룹에 추가하십시오.
원하는 사용자와 일치하도록 사용자 이름을 변경하십시오.
이를 적용하려면 로그 아웃했다가 다시 로그인해야 할 수도 있습니다.
$ sudo gpasswd -a ${USER} docker
Docker 데몬을 다시 시작하십시오.
$ sudo service docker restart
이 질문은 현재 Google 검색에서 3 위입니다. 내 리눅스 시스템 에서이 문제를 해결하기 위해 약간의 연구를 한 후에 나는이 대답을 쓸 것이라고 생각했습니다. 원래 게시물에 문제가 Ubuntu에 있지만 Fedora를 사용하여 문제가 발생했다고 나와 있습니다. 그것을 염두에두고, 여기에 문제를 해결하기 위해했던 것이 있습니다.
페도라 22에서
Docker 설치 :
$> curl -fsSL https://get.docker.com/ | sh
Docker를 설치 한 후 :
docker 그룹에 사용자를 추가해야합니다.
$> sudo usermod -aG docker
도커 데몬을 시작해야합니다
$> sudo service docker start
부팅 할 때 데몬을 시작하도록 설정할 수 있습니다
$> sudo chkconfig docker on
도커 서비스가 실행 중인지 확인할 수 있습니다
$> service docker status
그리고 마지막 마지막 확인
$> docker run hello-world
실행중인 명령과 함께 "sudo"를 사용하십시오.
도커를 실행하는 동안 동일한 문제가 있습니다.
sudo 사용자 로 명령을 실행할 수 있습니다 .
sudo docker ***your command here***
우분투의 경우 :
도커를 업데이트했을 때 나와 함께했습니다.
서비스 및 소켓을 마스크 해제 한 다음 서비스를 다시 시작해야합니다.
다음은 나를 위해 일했습니다.
systemctl unmask docker.service
systemctl unmask docker.socket
systemctl start docker.service
시스템 뒤에서 일어난 일은
또한 장치를 / dev / null에 연결하여 장치를 자동 또는 수동으로 완전히 시작할 수없는 것으로 표시 할 수 있습니다. 이를 장치 마스킹이라고하며 마스크 명령으로 가능합니다.
sudo systemctl mask docker.service
다음을 사용하여 마스크 된 서비스 목록을 확인할 수 있습니다.
sudo systemctl list-unit-files
자동 / 수동 서비스 시작을 활성화하려면 다음을 사용하여 마스크를 해제해야합니다.
sudo sytemctl unmask docker.service
도 커가 시작하는 동안 루트가 소유 한 유닉스 소켓에 바인딩 할 때 도커 명령과 함께 'sudo'를 사용하면 작동합니다.
- 나도 같은 문제가 있었다. docker-daemon 및 docker-client에 할당 된 소켓에 문제가있었습니다.
- 먼저 docker.sock에서 docker-client에 대한 권한이 설정되지 않았습니다. "sudo usermod -aG docker $ USER"를 사용하여 권한을 설정할 수 있습니다.
- 그런 다음 docker-client가 실행중인 bash 파일을 확인하십시오. 나에게 그것은 docker-daemon이 유닉스 소켓에서 실행되는 동안 0.0.0.0:2375에있었습니다 (dockerd의 구성 파일에 설정되었습니다).
- bash 라인을 주석 처리하면 정상적으로 작동합니다.
- 그러나 유닉스 소켓 대신 TCP 포트에서 작동하게하려면 dockerd의 구성 파일을 변경하고 0.0.0.0.2375로 설정하고 줄을 bash에 그대로 두거나 0.0.0.0으로 설정하십시오. 2375.
아마도 이것은 오류 메시지가 매우 도움이되지 않기 때문에 누군가에게 도움이 될 것입니다. 나는 모든 표준 권한 단계를 여러 번 통과하여 아무 소용이 없었습니다.
Docker는 시스템이 올바르게 설정되어 있음에도 불구하고 액세스를 차단하는 고스트 환경 변수를 남겨 둡니다. 다음 셸 명령을 사용하면 한 지점에서 실행 한 후 다시 부팅 한 후 협력이 중지 된 경우 다시 액세스 할 수 있습니다.
unset DOCKER_HOST
unset DOCKER_TLS_VERIFY
unset DOCKER_TLS_PATH
docker ps
이전에 도커를 설치했는데 랩톱을 재부팅 한 후 작동을 거부했습니다. 제대로 고정 표시기 사용자 그룹에 추가되었습니다 등 소켓에 올바른 사용 권한을 가지고,하지만 여전히 실행할 수 없습니다 docker login
, docker run ...
등이 나를 위해 그것을 해결했습니다. 불행히도 매번 재부팅 할 때마다 이것을 실행해야합니다. 이것은 Docker의 올바른 작동에 대한 지속적인 장벽이라는 버그 인 것처럼 보이지만 몇 가지 github 문제에 대한 해결 방법으로 도 언급됩니다 (참고 : OSX가 아닌 Arch Linux에 있지만이 문제는 동일합니다) 나를).
우분투에서 테스트 16.04
# Create the docker group and add your user to the docker group
groupadd docker
usermod -aG docker $USER
newgrp docker
# Configure docker service to be exposed
mkdir -p /etc/systemd/system/docker.service.d
echo -e '[Service]\nExecStart=\nExecStart=/usr/bin/dockerd -H fd:// -H tcp://0.0.0.0:2376' >> /etc/systemd/system/docker.service.d/override.conf
# restart service
systemctl daemon-reload
service docker restart
Amazon EC2 인스턴스에서 동일한 오류가 발생했습니다. 인스턴스를 다시 시작한 후 문제가 해결되었습니다.
도커 그룹에 현재 사용자를 추가하십시오.
sudo usermod -aG docker $(whoami)
들어 우분투 16.04
내부 파일 /lib/systemd/system/docker.service
변경 :
ExecStart=/usr/bin/dockerd fd://
와:
ExecStart=/usr/bin/dockerd -H tcp://0.0.0.0:2375
내부 파일 /etc/init.d/docker
변경 :
DOCKER_OPTS=
와:
DOCKER_OPTS="-H tcp://0.0.0.0:2375"
그런 다음 컴퓨터를 다시 시작하십시오.
참고 URL : https://stackoverflow.com/questions/33562109/docker-command-cant-connect-to-docker-daemon
'Programing' 카테고리의 다른 글
게으른 발은 무엇을합니까? (0) | 2020.04.14 |
---|---|
Xcode '빌드 및 아카이브'메뉴 항목 비활성화 (0) | 2020.04.13 |
문자열의 마지막 문자를 삭제 (0) | 2020.04.13 |
Xcode : 프로세스에 대한 작업을 가져 오지 못했습니다 (0) | 2020.04.13 |
대소 문자를 구분하지 않는 비교 NSString (0) | 2020.04.13 |