it-swarm-korea.com

Docker가 docker 데몬에 연결할 수 없습니다.

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?

그리고 명령을 따라 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

문제를 어떻게 해결할 수 있습니까?

403
LiJung

리눅스

Linux 용 설치 후 단계 documentation에서 다음 단계를 확인할 수 있습니다.

  1. 도커 그룹을 만듭니다.
     Sudo groupadd docker
  2. 사용자를 도커 그룹에 추가하십시오.
     Sudo usermod -aG 도커 $ (whoami)
  3. Docker가 올바른 권한으로 실행되는지 확인하려면 로그 아웃했다가 다시 로그인하십시오.
  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 명령은 프로세스를 안내하는 설명을 출력합니다.

579
molavec

OS X에서 Docker를 실행하고 있다면 다음 eval을 실행하면 효과가 있습니다.

eval "$(docker-machine env default)"

모든 터미널 세션에서이 평가문을 실행하지 않으려면 다음을 bash_profile에 추가 할 수 있습니다.

#Docker
eval "$(docker-machine env default)"

변경 사항을 적용하려면 터미널 세션을 다시 시작하거나 bash_profile에서 소스를 실행하십시오.

142
Dayel Ostraco

리눅스

Linux에서 docker 데몬을 실행하려면 ( CLI 에서) 다음을 실행하십시오.

$ 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

Linux에 docker-machine 설치

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 관련 커널 기능을 사용하기 때문에 이것을 사용하여 도커 데몬을 실행할 수 없으므로 OS X에서 Docker를 기본적으로 실행할 수 없습니다. 따라서 docker-machine를 순서대로 설치해야합니다 VM을 (를) 만들고 첨부하십시오.

MacOS에 docker-machine를 설치하십시오.

아직 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
    

참조 : Mac 용 Docker 시작하기 .

MacOS에서 docker-machine 구성

Docker Machine Homebrew를 통해 시작하려면 다음을 실행하십시오.

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 데몬에 연결할 수 없습니다.

127
kenorb

자세한 조사가 끝나면이 문제는 Docker 클라이언트가 Docker 데몬에 연결하지 못하게하는 Mac OS X이 재부팅 될 때마다 (또는 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  :

3 번 명령을 다른 시간에 다시 실행하면 두 번째로 작동합니다.

100
K.A.D.

이것은 대개 docker 그룹에없는 경우에 발생합니다. 다음을 사용하여 docker 그룹에 자신을 추가 할 수 있습니다.

Sudo usermod -aG docker yourusername

또는

Sudo usermod -aG docker $(whoami)

그런 다음 로그 아웃하고 서버에 다시 로그인해야합니다.

또는 모든 Docker 명령을 Sudo 할 수 있습니다.

40
nPcomp

위의 다른 모든 해결책이 작동하지 않으면 /var/run/docker.sock의 소유권을 검사 해보십시오.

ls -l /var/run/docker.sock

소유자가 아닌 경우 다음 명령으로 소유권을 변경하십시오.

Sudo chown *your-username* /var/run/docker.sock

그런 다음 Docker 명령을 간편하게 실행할 수 있습니다 : D

28
kevthanewversi

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을 제거하고, 모든 것이 이후에 작동했다.

물론, 맹목적으로 이것이 작동한다고 가정하는 대신, 데몬을 수동으로 한 번 더 실행하고 서비스를 시작하기 전에 다른 오류에 대한 로그 출력을 검토하는 것이 좋습니다.

16
Robert Elwell

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 데몬이 시작되었습니다.

14
Shawn Wang

Docker를 설치 한 후 다시 시작합니다.

$ Sudo service docker stop
$ Sudo service docker start

그리고 그것은 작동합니다.

11
Galley

데몬이 실행 중인지 확인하려면 ps aux | grep docker를 수행하십시오. 실행하지 않으면 /etc/init.d/docker start

9
Reza S

이 문제가 발생하여 다음 명령을 사용하여 Docker를 다시 시작했습니다.

$ Sudo service docker stop
$ Sudo service docker start

그러나 Sudo없이 도커 명령을 실행하는 것을 잊었 기 때문에 문제를 해결하지 못했습니다. 이 문제에 직면 한 사람들은이를 확인하십시오.

시험

$ Sudo docker info

대신이 :

$ docker info
8
Taha Emara

나는 비슷한 문제가있다. Docker를 설치하고 다음 명령이 내 환경에 표시되지 않았기 때문에 Shell에서 로그 아웃하고 다시 로그인해야했습니다.

export DOCKER_Host=127.0.0.1:4243 >> ~/.bashrc
7
kayn

동일한 오류가 발생하여 docker-machine regenerate-certs 또는 eval.. 시도가 실패했습니다.

이것은 OS X 10.11.3 (El Capitan) 및 Docker v1.10.1입니다. 나는 도커 - 머신을 다시 삭제하고 다시 만들어서 만 고칠 수있었습니다. 출처

docker-machine ls를 실행하면 아래 출력과 비슷한 출력이 표시됩니다.

도커

알 수 없는

오류

Docker 버전을 쿼리 할 수 ​​없습니다. docker 엔진 끝점에 연결할 수 없습니다.

Docker 컴퓨터를 제거해보십시오.

docker-machine rm -f default

default은 Docker 컴퓨터 이름입니다. 그때;

docker-machine create -d virtualbox default

새 Docker 컴퓨터를 만듭니다.

모든 것이 정상적으로 보입니다 (오류 또는 알 수없는 Docker 없음).

docker-machine ls

마지막으로 Docker Quickstart Terminal을 계속 실행하거나 실행하기 전에 "$(docker-machine env default)"을 실행하는 것을 잊지 마십시오 ...

7
Kerem

docker 그룹에 현재 사용자를 추가하십시오 :

Sudo usermod -aG docker $USER

그런 다음 로그 아웃하고 로그인하십시오.

6
dormi330

나는 똑같은 문제를 가지고있다 - "도커 데몬에 연결할 수 없다." (서버를 시작하려고 할 때 '파일을 찾을 수 없음'오류가 발생하지 않았다는 점을 제외하고는).

'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

그래서 나는 뒤늦게 docker를 설치하면 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
5
Jonathan Hartley

난 그냥 Amazon AWS 에서 실행되는 동일한 문제가있었습니다.

다음은 내가 시도한 것입니다.

  • 이미 존재하는 AWS 인스턴스와 함께 docker-machine를 로컬로 설정하십시오.
  • 사용 된 일반 설정
  • 그것은 일종의 연결되었지만 원격 포트가 닫히기 때문에 실패했습니다.
  • 그 후 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)
4
Deko

Docker 도구를 사용하여 OS X에서 실행중인 경우 다음을 수행하십시오.

데몬을 다시 시작하고 환경을 구성하십시오.

docker-machine restart

그리고

docker-machine env

마지막으로,

eval $(docker-machine env)

데몬이 실행 중인지 테스트하려면 다음을 수행하십시오.

docker ps -a 또는 docker-machine ls. 그러면 모든 컨테이너가 나열됩니다.

4
Ermias K

이 게시물에 이미 많은 답변이 있음을 알고있었습니다. 위에서 언급 한 문제를 해결하는 간단한 답변을 하나 추가하고 싶습니다.

Sudo systemctl start docker

위의 명령을 실행하면 모든 도커 관련 스레드/서비스가 시작됩니다.

3

Docker 다음 DOC site : Docker를 비 루트 사용자로 관리

1) 도커 그룹 생성

Sudo groupadd docker 

2) 사용자를 도커 그룹에 속하게하여 그룹의 권한을 얻습니다.

Sudo usermod -aG docker $USER

DOCKER_Host 환경 변수가 쉘에 설정되어 있는지 확인하십시오.

env | grep DOCKER_Host

그것이 존재한다면,

unset DOCKER_Host

다음이 작동합니다.

docker run hello-world
3
blasrodri

Docker 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 명령을 사용할 수 있습니다.

관련 :

리눅스/윈도우

다운로드 페이지에서 Docker CE 를 다운로드하고 지침을 따르십시오.

3
kenorb

Docker Service 가 실행되고 있지 않을 수 있습니다.

RedHat/Fedora/CentOS에 있다면 다음을 시도하십시오 :

Sudo systemctl start docker

우분투/데비안에 있다면 :

Sudo service start docker

Docker는 호스트와 해당 포트에서 실행을 시작합니다.

2
Aamir M Meman

나는 같은 문제를 겪었다. 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를 시도한 다음 Iyum install 앞에 있기 때문에 다시 반복 할 수 있습니다.

2
wuranbo

문제를 해결하려면 터미널에서 다음 명령을 실행해야합니다. 각 단계에 대해 설명하겠습니다.

# 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/*

이제, 일을 단순화하고 더 많은 시간을 원하면 my 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

재부팅은 선택 사항이지만 모두 원활하게 실행되는지 확인하는 것이 좋습니다.

1

우분투 14.04에서 Docker 1.10을 실행하는 것과 같은 문제가 있었지만 주어진 답 중 아무 것도 작동하지 않았습니다. 필자의 경우 Docker 데몬을 실행할 때 저장소 드라이버를 지정하는 것이 수정되었습니다.

Sudo docker daemon --storage-driver=devicemapper
1
Yatit Thakker

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
Bob
  1. 나는 또한 같은 문제가 있었다. 문제는 docker-daemon과 docker-client에 할당 된 소켓에서 발생했습니다.
  2. 첫째, docker.sock의 docker-client에 대한 권한이 설정되지 않았습니다. "Sudo usermod -aG docker $ USER"를 사용하여 설정할 수 있습니다.
  3. 그런 다음 docker-client가 실행중인 bash 파일을 확인하십시오. 나를 위해 0.0.0.0:2375에 있었고 docker-daemon은 unix 소켓에서 실행되었습니다 (dockerd의 구성 파일에서 설정 됨).
  4. 그냥 bash-line에 댓글을 달면 잘 작동합니다.
  5. 그러나 unix 소켓 대신 TCP 포트에서 작동하게하려면 dockerd의 구성 파일을 변경하고 0.0.0.0.2375로 설정하고 bash에 해당 라인이있는 경우 그대로 유지하십시오 0.0.0.0:2375로 변경하십시오.
1
Nilesh Kande

이 명령을 사용할 수 있습니다.

Sudo service docker stop
Sudo service docker start

간단히 시작하십시오.

0
kvadityaaz

"Docker 데몬에 연결할 수 없습니다.이 호스트에서 실행중인 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
0
Habeeb Perwad

좋아, 오늘이 문제가 생기기 시작했다. 그렇다면 나는 많은 반응을 보았으나 아무도 나를 위해 일한 것 같지 않습니다. 대부분의 지시 사항은 리눅스로 전달됩니다. Mac 버전의 경우 그들은 모두 '도커 - 머신'을 실행하는 것에 대해 이야기하고있었습니다. docker 도구 상자를 설치하면 docker가 Windows 및 Mac 플랫폼 용 가상 시스템에서 실행되므로 docker-machine을 사용한다고 가정합니다. 그러나 2017 년 현재 Mac 용 도커는 정말 안정적이므로 도구 상자를 사용할 필요가 없습니다.

데몬이 어떻게 멈췄는지 확실하지 않습니다. 하지만 다시 시작하려면 "응용 프로그램"을 실행하고 docker 아이콘을 두 번 클릭해야합니다. 내가 수락 한 업데이트하고 다시 시작하라는 요청을 받았습니다. 그 후 모든 것이 매력처럼 작동했습니다.

0
ivange94

docker-network에서 Docker 구성 파일 인 docker 또는 /etc/sysconfig를 변경하십시오.

(... ~ v1.17)

docker 파일 :

OPTIONS= -H fd://

또는 (v1.18) :

docker-network 파일 :

DOCKER_NETWORK_OPTIONS= -H unix:///var/run/docker.sock
0
user4761977

재생성 TLS 인증서가 작동하지 않는 경우

docker-machine regenerate-certs default

도커 시스템을 다시 시작하고 env 변수를 설정하십시오 :

docker-machine restart default
eval $(docker-machine env default)

기계가 다음과 같이 작동하는지 점검하십시오.

docker-machine ls

또는

docker run hello-world

이것은 나를 위해 일했습니다. 그러나 여전히 데몬이없는 경우 Docker의 문제 해결 페이지 는 새 시스템을 중지, 제거 및 생성하는 프로세스를 자세히 설명합니다.

0
nikheel

나는 비슷한 문제가 있었다.

필자의 경우 해결책은 더 이상 사용되지 않는 버전의 docker를 제거하는 것이 었습니다. 이것은 내가 약간의 갈등을 일으키고 있다고 가정합니다.

우분투 :

Sudo apt remove docker

나를 위해 문제를 해결했다.

0
Erich

다음 명령을 사용하여 데몬을 실행할 수 있습니다.

Sudo Nohup docker daemon -H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock &

스크립트는 데몬을 백그라운드에서 실행하고 Docker를 준비하면 명령을 수락하는지 테스트 할 수 있습니다.

Sudo docker info

자세한 내용은 다음을 참조하십시오. https://www.upcloud.com/support/how-to-configure-docker-swarm/

0
Farhood Hosseinpour

나는 아무도 이것을 이미 놀랐다.

Sudo docker network create persistence_backend

달리기를하는 도커와 도커를 같이 쓰는 경우

0
PauAI

다시 켰습니까? :-)

Mac에서 Docker 1.10.1로 업그레이드 한 후에도 동일한 문제가 발생했습니다. 나는 다음과 같이했다 :

Docker 빠른 시작 터미널에서

$ exit

$ exit

그때

도커 - 기계 죽일 기본값

docker Quickstart Terminal을 다시 시작했습니다.

이것은 내 문제를 해결했다.

0
JackNova

Mac OS-X에서는 docker 설치가 구형이거나 실행되지 않을 수도 있습니다. 공식 사이트에서 최신 도커를 다운로드하여 설치하십시오.

나를 위해 일했다.

0
SmallChess

Gitlab-ci/gitlab-runners를 사용하면 /var/run/docker.sock에 액세스 할 수있는 권한이없는 경우 오류가 발생합니다.

Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock

문제를 해결하려면 다음을 수행하십시오.

Sudo usermod -aG docker gitlab-runner

확인 대상 :

Sudo -u gitlab-runner -H docker info

희망이 도움이됩니다.

0
Tobias Ernst