development

도 커가 도커 데몬에 연결할 수 없습니다

big-blog 2020. 2. 19. 22:07
반응형

도 커가 도커 데몬에 연결할 수 없습니다


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

문제를 어떻게 해결합니까?


리눅스

리눅스에 대한 사후 설치 단계 설명서는 다음 단계를 보여준다 :

  1. 도커 그룹을 만듭니다 .
    sudo groupadd 도커
  2. docker 그룹에 사용자를 추가하십시오 .
    sudo usermod -aG 도커 $ (whoami)
  3. 도 커가 올바른 권한으로 실행되도록 로그 아웃했다가 다시 로그인하십시오.
  4. 도커를 시작하십시오.
    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-machineLinux에 설치

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-machinemacOS에 설치

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-machinemacOS에서 구성

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에서는 serviceDocker 서버를 시작하거나 중지하는 데 사용할 수 있습니다 .

$ 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

defaultDocker 컴퓨터 이름은 어디에 있습니까 ? 그때;

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 앱사용하십시오 . 예를 들면 다음과 같습니다.

  1. 지금까지 설치 한 모든 Docker Homebrew 패키지를 제거하십시오.

    brew uninstall docker-compose
    brew uninstall docker-machine
    brew uninstall docker
    
  2. 수동으로 또는 Homebrew-Cask 를 통해 앱을 설치하십시오 .

    brew cask install docker
    

    참고 :이 응용 프로그램에 필요한 링크를 생성합니다 docker, docker-compose, docker-machine, 등

  3. 앱을 실행 한 후 상태 메뉴에서 Docker whale 아이콘을 확인하십시오.

  4. 지금 당신은 사용할 수 있어야합니다 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/


  1. 나도 같은 문제가 있었다. docker-daemon 및 docker-client에 할당 된 소켓에 문제가있었습니다.
  2. 먼저 docker.sock에서 docker-client에 대한 권한이 설정되지 않았습니다. "sudo usermod -aG docker $ USER"를 사용하여 권한을 설정할 수 있습니다.
  3. 그런 다음 docker-client가 실행중인 bash 파일을 확인하십시오. 나에게 그것은 docker-daemon이 유닉스 소켓에서 실행되는 동안 0.0.0.0:2375에있었습니다 (dockerd의 구성 파일에 설정되었습니다).
  4. bash 라인을 주석 처리하면 정상적으로 작동합니다.
  5. 그러나 유닉스 소켓 대신 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



반응형