도 커가 도커 데몬에 연결할 수 없습니다
Docker 버전을로 업데이트 0.8.0
하면 sudo docker version
다음 을 입력하는 동안 오류 메시지가 나타납니다 .
Client version: 0.8.0
Go version (client): go1.2
Git commit (client): cc3a8c8
2014/02/19 12:54:16 Can't connect to docker daemon. Is 'docker -d' running on this host?
그리고 지시 사항을 따르고 command를 입력했는데 sudo docker -d
이를 얻었습니다.
[/var/lib/docker|2462000b] +job initserver()
[/var/lib/docker|2462000b.initserver()] Creating server
open /var/lib/docker/aufs/layers/cf2414da53f9bcfaa48bc3d58360d7f1cfd3784e4fe51fbef95197709dfc285d: no such file or directory[/var/lib/docker|2462000b] -job initserver() = ERR (1)
2014/02/19 12:55:57 initserver: open /var/lib/docker/aufs/layers/cf2414da53f9bcfaa48bc3d58360d7f1cfd3784e4fe51fbef95197709dfc285d: no such file or directory
문제를 어떻게 해결합니까?
리눅스
리눅스에 대한 사후 설치 단계 설명서는 다음 단계를 보여준다 :
- 도커 그룹을 만듭니다 .
sudo groupadd 도커
- docker 그룹에 사용자를 추가하십시오 .
sudo usermod -aG 도커 $ (whoami)
- 도 커가 올바른 권한으로 실행되도록 로그 아웃했다가 다시 로그인하십시오.
- 도커를 시작하십시오.
sudo 서비스 도커 시작
맥 OS X
Dayel Ostraco가 말한 것처럼 환경 변수를 추가하려면 다음이 필요합니다.
docker-machine start # Start virtual machine for docker
docker-machine env # It's helps to get environment variables
eval "$(docker-machine env default)" # Set environment variables
이 docker-machine start
명령은 프로세스를 안내하는 주석을 출력합니다.
OS X에서 Docker를 실행하는 경우 다음 eval을 실행하면 효과가 있습니다.
eval "$(docker-machine env default)"
모든 터미널 세션에서이 평가 문을 실행하지 않으려면 다음을 추가하십시오 bash_profile
.
#Docker
eval "$(docker-machine env default)"
bash_profile
변경 사항을 적용 하려면 터미널 세션을 다시 시작하거나 소스를 실행 하십시오.
리눅스
CLI 에서 Linux에서 docker 데몬을 실행하려면 다음을 실행하십시오.
$ sudo service docker start # Ubuntu/Debian
참고 : $
복사 및 붙여 넣기시 문자를 건너 뜁니다 .
RedHat / CentOS에서 다음을 실행하십시오 sudo systemctl start docker
..
"기본"파일 시스템을 초기화하려면 다음을 실행하십시오.
$ sudo service docker stop
$ sudo rm -rf /var/lib/docker
$ sudo service docker start
또는 수동으로
$ sudo docker -d --storage-opt dm.basesize=20G
docker-machine
Linux에 설치
Linux에 머신 바이너리를 설치하려면
토지 상에서:
install -vm755 <(curl -L https://github.com/docker/machine/releases/download/v0.5.3/docker-machine_linux-amd64) $HOME/bin/docker-machine
글로벌 :
sudo bash -c 'install -vm755 <(curl -L https://github.com/docker/machine/releases/download/v0.5.3/docker-machine_linux-amd64) /usr/local/bin/docker-machine'
맥 OS
macOS에서 docker
바이너리는 클라이언트 일 뿐이며 Docker 데몬은 Linux 관련 커널 기능을 사용하므로 Docker 데몬을 실행하는 데 사용할 수 없으므로 OS X에서 Docker를 기본적으로 실행할 수 없습니다. 따라서 docker-machine
생성 하려면 설치해야합니다. VM을 연결하십시오.
docker-machine
macOS에 설치
docker-machine
아직 명령 이 없으면 다음 방법 중 하나를 사용하여 설치하십시오.
- Brew 명령 사용 :
brew install docker-machine docker
. GitHub 에서 수동으로 :
install -v <(curl https://github.com/docker/machine/releases/download/v0.5.3/docker-machine_linux-amd64) /usr/local/bin/docker-machine
Docker for Mac 시작하기를 참조하십시오 .
docker-machine
macOS에서 구성
Homebrew를 통해 Docker Machine 을 시작하려면 다음을 실행하십시오.
brew services start docker-machine
default
컴퓨터 를 만들려면 (없는 경우)를 참조하십시오 docker-machine ls
.
docker-machine create --driver virtualbox default
그런 다음 Docker 클라이언트의 환경을 설정하십시오.
eval "$(docker-machine env default)"
그런 다음 컨테이너를 나열하여 다시 확인하십시오.
docker ps
Docker Machine 및 로컬 VM 시작하기를 참조하십시오 .
macOS에 Docker.app 설치
위의 솔루션 대신 다음과 같이 Docker 앱을 설치할 수 있습니다.
brew cask install docker
자세한 내용은 이 게시물을 확인 하십시오 . 참고 항목 : macOS에서 Docker 데몬에 연결할 수 없음
자세한 조사 후,이 문제는 Mac OS X이 재부팅 된 후 (또는 Docker 가상 머신이 재시동 될 때마다 ) 발생하여 Docker 클라이언트가 Docker 데몬에 연결되지 못하게합니다.
이 문제를 해결하려면 다음 중 하나를 수행하십시오.
A) 공식 설치 프로그램 ( https://www.docker.com/products/docker-toolbox )을 사용하거나 Docker Toolbox를 다시 설치하십시오.
B) 다음 명령을 순서대로 실행하십시오.
# First make sure that the virtual machine is running
docker-machine start default
# Regenerate TLS connection certs, requires confirmation
docker-machine regenerate-certs default
# Finally, set env
eval "$(docker-machine env default)"
C) (B)와 마찬가지로 다음 행을 복사하여 붙여 넣어 세 명령을 모두 실행할 수 있습니다.
docker-machine start default; docker-machine regenerate-certs default; eval "$(docker-machine env default)"
다음과 같은 오류가 발생하는 경우
Error getting SSH command: Something went wrong running an SSH command!
command : cat /etc/os-release
err : exit status 255
output :
세 번만 다시 실행하면 두 번째로 작동합니다.
일반적으로 docker
그룹에 속하지 않을 때 발생합니다 . 다음을 사용하여 docker
그룹 에 자신을 추가 할 수 있습니다 .
sudo usermod -aG docker yourusername
또는
sudo usermod -aG docker $(whoami)
그런 다음 서버에서 로그 아웃했다가 다시 로그인해야합니다.
또는 sudo
모든 Docker 명령 을 사용할 수 있습니다 .
위의 다른 모든 솔루션이 작동하지 않으면 다음의 소유권을 확인하십시오 /var/run/docker.sock
.
ls -l /var/run/docker.sock
소유자가 아닌 경우 다음 명령으로 소유권을 변경하십시오.
sudo chown *your-username* /var/run/docker.sock
그런 다음 Docker 명령을 번거롭지 않게 실행할 수 있습니다. : D
Docker가 작동하지 않는 이유를 찾는 가장 좋은 방법은 데몬을 수동으로 실행하는 것입니다.
$ sudo service docker stop
$ ps aux | grep docker # do this until you don't see /usr/bin/docker -d
$ /usr/bin/docker -d
Docker 데몬은 STDOUT에 로그하므로 수행중인 작업을 뱉어 내기 시작합니다.
내 문제는 다음과 같습니다.
[8bf47e42.initserver()] Creating pidfile
2015/01/11 15:20:33 pid file found, ensure docker is not running or delete /var/run/docker.pid
인스턴스가 다른 가상 머신에서 복제 되었기 때문입니다. 방금 pidfile을 제거해야했고 모든 것이 나중에 작동했습니다.
물론, 이것이 맹목적으로 작동한다고 가정하는 대신, 서비스 백업을 시작하기 전에 데몬을 한 번 더 수동으로 실행하고 다른 오류에 대한 로그 출력을 검토하는 것이 좋습니다.
메시지를 받으면 다음을 통해 Can't connect to docker daemon. Is 'docker -d' running on this host?
확인할 수 있습니다 docker version
.
Docker Client 와 같은 정보가 표시되면 그러나 Docker Server가 아닌 경우 Docker 서버를 시작해야합니다.
CentOS에서는 service
Docker 서버를 시작하거나 중지하는 데 사용할 수 있습니다 .
$ sudo service docker stop
$ sudo service docker start
그런 다음을 입력 docker version
하면 Docker Client 및 Docker Server 정보 가 표시되고 Docker 데몬이 시작되었습니다.
Docker를 설치 한 후 다시 시작합니다.
$ sudo service docker stop
$ sudo service docker start
그리고 작동합니다.
를 수행 ps aux | grep docker
데몬이 실행되고 있는지 확인합니다. 실행하지 않으면/etc/init.d/docker start
이 문제에 직면하여 다음 명령을 사용하여 Docker를 다시 시작했습니다.
$ sudo service docker stop
$ sudo service docker start
그러나 내 문제없이 Docker 명령을 실행하는 것을 잊었 기 때문에 문제를 해결하지 못했습니다 sudo
. 이 문제에 직면 한 사람들은이를 확인하십시오.
시험
$ sudo docker info
이 대신에 :
$ docker info
비슷한 문제가 있습니다. Docker를 설치하고 다음 명령이 환경에 표시되지 않았기 때문에 로그 아웃했다가 다시 셸에 로그인해야했습니다.
export DOCKER_HOST=127.0.0.1:4243 >> ~/.bashrc
나는 같은 오류가 있고 나를 위해 노력 docker-machine regenerate-certs
하거나 eval..
작동하지 않았습니다.
이것은 OS X 10.11.3 (El Capitan) 및 Docker v1.10.1에서 제공됩니다. docker-machine을 삭제하고 다시 작성해야만 문제를 해결할 수있었습니다. 출처
실행 중이면 docker-machine ls
아래 출력과 유사한 출력이 표시됩니다.
의사
알 수 없는
오류
도커 버전을 쿼리 할 수 없습니다 : 도커 엔진 엔드 포인트에 연결할 수 없습니다
Docker 시스템을 제거하십시오.
docker-machine rm -f default
default
Docker 컴퓨터 이름은 어디에 있습니까 ? 그때;
docker-machine create -d virtualbox default
새로운 Docker 시스템을 만듭니다.
다음으로 모든 것이 정상적으로 보이는지 다시 확인하십시오 (오류 또는 알 수없는 Docker 없음).
docker-machine ls
마지막으로 "$(docker-machine env default)"
Docker 빠른 시작 터미널을 계속하거나 실행 하기 전에 실행하는 것을 잊지 마십시오 .
현재 사용자를 docker
그룹에 추가하십시오 .
sudo usermod -aG docker $USER
그런 다음 로그 아웃하고 로그인하십시오.
"도커 데몬에 연결할 수 없습니다."라는 동일한 문제가있었습니다. (서버를 시작하려고 할 때 '파일을 찾을 수 없음'오류가 발생하지 않았다는 것을 제외하고)
'ps'는 "/ usr / bin / docker -d"가 여전히 실행 중임을 나타냅니다.
나는 실제로 서버를 실제로 운영하는 데 결코 성공하지 못했음을 깨달았습니다. 모든 시도는 생산했다
...
2014/03/24 21:57:29 pid file found, ensure docker is not running or delete /var/run/docker.pid
그래서 나는 도커를 설치하면 데몬이 upstart로 등록되어 있다는 것을 알았다. 따라서 데몬을 강제 종료하여 수동으로 다시 시작하려고하면 실패합니다 (작업이 허용되지 않음). 그래서 나는
sudo kill -9 <PID>
데몬 프로세스에서. 다른 데몬이 즉시 자리를 옮겼고이 새로운 데몬은 이제 CLI 클라이언트를 연결할 수있게합니다.
$ sudo docker info
Containers: 0
Images: 0
Driver: aufs
Root Dir: /var/lib/docker/aufs
Dirs: 0
WARNING: No memory limit support
WARNING: No swap limit support
Amazon AWS 에서 동일한 문제가 발생했습니다 .
내가 시도한 것은 다음과 같습니다.
docker-machine
기존 AWS 인스턴스를 사용 하여 로컬로 설정- 사용 된 일반 설정
- 연결되어 있지만 원격 포트가 닫혀서 실패했습니다.
- 그 후 Docker 데몬은 시작을 거부했지만 실행
dockerd
은 작동했습니다 ...
원격 시스템에서 다음과 같이 테스트되었습니다.
service docker start # Also restart, no success
systemctl start docker # Also restart, no success
dockerd # Success
/var/lib/docker
모든 것을 제거 하고 제거했지만 다시 설치 한 후에는 성공하지 못했습니다. 불행히도 나는 실패로 저장된 로그가 없지만 docker.service
시작을 거부했습니다.
그러나 마침내 내 문제를 해결 한 것은 기본적으로 다음과 같습니다.
sudo usermod -aG docker $(whoami)
이 게시물에 이미 많은 답변이 있음을 알고있었습니다. 위에서 언급 한 문제를 해결하는 간단한 답변을 하나 추가하고 싶습니다.
sudo systemctl start docker
위의 명령을 실행하면 모든 도커 관련 스레드 / 서비스가 시작됩니다.
Docker의 DOC 사이트 팔로우 : Docker를 루트가 아닌 사용자로 관리
1) 도커 그룹 생성
sudo groupadd docker
2) 사용자가 docker 그룹에 속하여 그룹의 권한을 얻습니다.
sudo usermod -aG docker $USER
DOCKER_HOST 환경 변수가 쉘에 설정되어 있는지 확인하십시오.
env | grep DOCKER_HOST
존재하는 경우
unset DOCKER_HOST
그런 다음 작동해야합니다.
docker run hello-world
Docker 도구를 사용하여 OS X에서 실행중인 경우 다음을 수행하십시오.
데몬을 다시 시작하고 환경을 구성하십시오.
docker-machine restart
그리고
docker-machine env
드디어,
eval $(docker-machine env)
데몬을 테스트하려면 다음을 수행하십시오.
docker ps -a
또는 docker-machine ls
. 모든 컨테이너가 나열됩니다.
당신은 명령을 사용할 수 있습니다
sudo service docker stop
sudo service docker start
간단히 시작합니다.
사용 도커 CE 응용 프로그램
맥 OS
macOS 용 의 새로운 Docker Community Edition 앱 을 사용하십시오 . 예를 들면 다음과 같습니다.
지금까지 설치 한 모든 Docker Homebrew 패키지를 제거하십시오.
brew uninstall docker-compose brew uninstall docker-machine brew uninstall docker
수동으로 또는 Homebrew-Cask 를 통해 앱을 설치하십시오 .
brew cask install docker
참고 :이 응용 프로그램에 필요한 링크를 생성합니다
docker
,docker-compose
,docker-machine
, 등앱을 실행 한 후 상태 메뉴에서 Docker whale 아이콘을 확인하십시오.
- 지금 당신은 사용할 수 있어야합니다
docker
,docker-compose
,docker-machine
에서 평소와 같이 명령을 터미널 .
관련 :
리눅스 / 윈도우
다운로드 다운로드 페이지에서 부두 노동자 CE를 하고 지시 사항을 따르십시오.
나는 같은 문제를 겪었다. CentOS 6.5에서 :
ps aux |grep `cat /var/run/docker.pid`
Docker 데몬 프로세스가 존재하지 않으면 다음을 입력하십시오.
docker -d
그런 다음 Ctrl+ D를 눌러 Docker를 중지하십시오. -d
옵션 을 사용하기 때문에 Docker는 데몬으로 실행됩니다. 이제 우리는 할 수 있습니다 :
service docker start
그런 다음 할 수 있습니다 docker pull centos
. 그게 다야.
참고 :이 방법으로 문제가 해결되지 않으면을 시도한 yum update
후 다시 시도 할 수 있습니다 yum install
.
도커 서비스는 실행되지 않을 수 있습니다.
RedHat / Fedora / CentOS를 사용하는 경우 다음을 시도하십시오.
sudo systemctl start docker
Ubuntu / Debian을 사용하는 경우 :
sudo service start docker
Docker가 호스트 및 해당 포트에서 실행되기 시작합니다.
Docker Machine을 사용하고 있는지 확인하십시오 :)
실행 docker-machine env default
은 트릭을해야합니다.
설명서에 따르면 :
Docker Machine은 가상 호스트에 Docker Engine을 설치하고
docker-machine
명령으로 호스트를 관리 할 수있는 도구입니다 . Machine을 사용하여 로컬 Mac 또는 Windows 박스, 회사 네트워크, 데이터 센터 또는 AWS 또는 Digital Ocean과 같은 클라우드 공급자에서 Docker 호스트를 생성 할 수 있습니다.
docker-machine
명령을 사용 하여 관리 호스트를 시작, 검사, 중지 및 다시 시작하고 Docker 클라이언트 및 데몬을 업그레이드하고 호스트와 통신하도록 Docker 클라이언트를 구성 할 수 있습니다.머신 CLI를 실행중인 관리 호스트를 가리키면 해당 호스트에서
docker
직접 명령 을 실행할 수 있습니다 . 예를 들어, 실행docker-machine env default
이라는 호스트에 포인트로default
, 화면의 완료에 대한 지시 사항에 따라env
설정 및 실행docker ps
,docker run hello-world
등, 등을.
https://docs.docker.com/machine/overview/
- 나도 같은 문제가 있었다. 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.
수정하려면 터미널에서 다음 명령을 실행해야합니다. 각 단계를 설명하겠습니다.
# Uninstall Docker from apt packages
$ sudo apt-get remove docker docker.io
# Remove it from the libraries just to be
# sure it's gone forever
$ sudo rm -rf /var/lib/docker/*
이제 일을 단순화하고 더 많은 시간을 얻으려면 매개 변수를 사용하여 init
스크립트 를 실행할 수 있습니다 installDocker
.
# Pull the init script from GitHub
$ wget https://github.com/dminca/dotfiles/blob/master/init
# Add rights to run the script
$ chmod 755 init
# Just run the script with the installDocker parameter
$ ./init installDocker
재부팅은 선택 사항이지만 모든 것이 원활하게 실행되도록하는 것이 좋습니다.
우분투 14.04에서 Docker 1.10을 실행하는 것과 동일한 문제가 있었고 주어진 답변 중 아무것도 작동하지 않았습니다. 나를 위해 수정은 Docker 데몬을 실행할 때 저장소 드라이버를 지정하는 것이 었습니다.
sudo docker daemon --storage-driver=devicemapper
TLS 인증서 재생성이 작동하지 않는 경우
docker-machine regenerate-certs default
docker 시스템을 다시 시작하고 env 변수를 설정하십시오.
docker-machine restart default
eval $(docker-machine env default)
머신이 다음을 실행 중인지 확인하십시오.
docker-machine ls
또는 대안 적으로
docker run hello-world
이것은 나를 위해 일했습니다. 그러나 여전히 데몬을 설치하지 않은 경우 Docker의 문제 해결 페이지 에는 새 컴퓨터를 중지, 제거 및 생성하는 프로세스가 자세히 설명되어 있습니다.
"도커 데몬에 연결할 수 없습니다.이 호스트에서 도커 데몬이 실행되고 있습니까?"라는 문제가 있습니다.
나는 사용하는 것을 잊었다 sudo
. 그것이 우리 중 일부를 도울 수 있기를 바랍니다.
$:docker images
Cannot connect to the Docker daemon. Is the docker daemon running on this host?
$:sudo docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
그래서 오늘이 문제가 발생하기 시작했습니다. 그런 다음 많은 답변을 보았지만 아무도 나를 위해 일한 것 같지 않습니다. 리눅스에 관한 대부분의 지침. 그리고 Mac 버전의 경우 모두 'docker-machine'을 실행하는 것에 대해 이야기했습니다. docker toolbox를 설치하면 docker-machine을 사용한다고 가정합니다. 그러나 2017 년 현재 Mac 용 도커는 실제로 안정적이므로 도구 상자를 사용할 필요가 없습니다.
데몬이 어떻게 멈추었는지 확실하지 않습니다. 그러나 다시 시작하려면 "응용 프로그램"으로 이동하여 도커 아이콘을 두 번 클릭하십시오. 수락 한 업데이트를 다시 시작하라는 요청을 받았습니다. 그 후 모든 것이 매력처럼 작동했습니다.
참고 URL : https://stackoverflow.com/questions/21871479/docker-cant-connect-to-docker-daemon
'development' 카테고리의 다른 글
버튼 모서리를 둥글게 만드는 방법은 무엇입니까? (0) | 2020.02.19 |
---|---|
Java InputStream의 내용을 OutputStream에 작성하는 쉬운 방법 (0) | 2020.02.19 |
배열을 객체로 변환 (0) | 2020.02.19 |
강사가 작성한 모든 C 파일이 첫 번째 줄에서 단일 #으로 시작하는 이유는 무엇입니까? (0) | 2020.02.19 |
ng-if와 ng-show / ng-hide의 차이점은 무엇입니까 (0) | 2020.02.19 |