도커 오류 : /var/run/docker.sock : 해당 파일 또는 디렉토리가 없습니다.


86

나는 도커를 처음 사용합니다. 임팔라에 데이터를로드하는 쉘 스크립트가 있고 이미지를 빌드하고 컨테이너를 실행하는 도커 파일이 필요합니다. 나는 Mac에 있고 boot2docker를 설치했으며 DOCKER_HOST환경을 설정했습니다.

bash-3.2$ docker info
Containers: 0
Images: 0
Storage Driver: aufs
Root Dir: /mnt/sda1/var/lib/docker/aufs
Dirs: 0
Execution Driver: native-0.2
Kernel Version: 3.15.3-tinycore64
Debug mode (server): true
Debug mode (client): false
Fds: 10
Goroutines: 10
EventsListeners: 0
Init Path: /usr/local/bin/docker
Sockets: [unix:///var/run/docker.sock tcp://0.0.0.0:2375]

다음을 사용하여 미리 빌드 된 이미지를 설치하려고합니다.

sudo docker pull busybox

이 오류가 발생합니다.

sudo docker pull busybox 2014/08/18 17:56:19 Post http:///var/run/docker.sock/images/create?fromImage=busybox&tag=: dial unix /var/run/docker.sock: no such file or directory

내 도커 설정에 문제가 있습니까?

를하면 docker pull busybox이미지를 가져와 다운로드가 완료됩니다.

bash-3.2$ docker pull busybox
Pulling repository busybox
a9eb17255234: Download complete 
fd5373b3d938: Download complete 
d200959a3e91: Download complete 
37fca75d01ff: Download complete 
511136ea3c5a: Download complete 
42eed7f1bf2a: Download complete 
c120b7cab0b0: Download complete 
f06b02872d52: Download complete 
120e218dd395: Download complete 
1f5049b3536e: Download complete 
bash-3.2$ docker run busybox /bin/echo Hello Doctor
Hello Doctor

내가 뭔가를 놓치고 있습니까?


나는 같은 문제가 있었다. 노트북을 재부팅했습니다. 그래서 그것은 나를 위해 일하기 시작했습니다. ( docs.docker.com/installation/ubuntulinux 참조 ) 그들은 또한 컴퓨터를 다시 시작하도록 언급했습니다.
NehaG 2015 년

내가 인터넷에 연결되었을 때 나를 위해 일했지만, 왜 그런 일이 일어 났는지 모르겠습니다 :(
Sai Ram

답변:


87

VM에 전달 된 모든 명령 이 기본적으로 루트로 실행되므로 sudo사용할 때 와 같이 docker 명령을 실행할 필요가 없습니다 .boot2dockerboot2docker

env가 설정되어 있지 않고 사용자 만 실행하기 sudo때문에 실행할 때 오류가 표시됩니다 .sudoDOCKER_HOST

다음을 수행하여이를 확인할 수 있습니다.

$ env

그 다음에

$ sudo env

그리고 DOCKER_HOST각 출력을 찾습니다 .

스크립트를 실행하는 도커 파일이 있으면 다음과 같이 작동 할 수 있습니다.

Dockerfile

FROM busybox

# Copy your script into the docker image
ADD /path/to/your/script.sh /usr/local/bin/script.sh

# Run your script
CMD /usr/local/bin/script.sh

그런 다음 다음을 실행할 수 있습니다.

docker build -t your-image-name:your-tag .

그러면 다음을 수행하여 볼 수있는 도커 이미지가 빌드됩니다.

docker images

그런 다음 컨테이너를 실행하기 위해 다음을 수행 할 수 있습니다.

docker run your-image-name:your-tag

이 실행 명령은 Dockerfile빌드 명령으로 만든 이미지에서 컨테이너를 시작한 다음 실행이 완료되면 script.sh완료됩니다.


1
내 무지에 대해 미안하지만 내가 건축에 성공했다고 생각하지 않습니다. "docker images": 2014/08/19 11:11:45 제공 http : ///var/run/docker.sock/v1.13/images/json : dial unix /var/run/docker.sock : no 그러한 파일 또는 디렉토리. 도커를 홈 디렉토리에 배치해야하며 어떤 이름으로도 이름을 지정할 수 있습니까? "이미지 이름"과 같은가요?
user1189851

Docker 이미지를 빌드하는 데 사용중인 명령을 붙여 넣을 수 있습니까? 사용하지 말아야 할 때 OSX 컴퓨터에서 여전히 sudo를 사용하는 것 같습니다.
Chris McKinnel

$ docker build -t / Users / ig / Documents / tests / hellodocker. 2014/08/19 11:18:09 잘못된 네임 스페이스 이름 (), [a-z0-9_] 만 허용됩니다. 크기는 4 ~ 30입니다. 그리고 hellodocker는 당신이 준 dockerfile의 내용만을 가지고 있습니다. 감사합니다.
user1189851

예, 파일 경로로 도커 이미지에 태그를 지정하려고합니다 . 다음 -t과 같이 다른 것을 시도해보십시오 your-image-name:a-tag.
Chris McKinnel

나에게 명령 줄을 주시겠습니까, pls. 내가 뭔가를 엉망으로 만들고있다. 내 도커 파일은 hellodocker이고 경로는 위에 나와 있습니다.
user1189851

45

다음을 사용하여 환경을 빠르게 설정할 수 있습니다. shellinit

명령 프롬프트에서 다음을 실행하십시오.

$(boot2docker shellinit)  

그러면 환경 변수를 채우고 내보내고 다른 기능을 초기화합니다.


26

내 MAC에서 터미널에서 boot2docker-vm을 시작할 때


boot2docker start

나는 다음을 본다


To connect the Docker client to the Docker daemon, please set:
    export DOCKER_CERT_PATH=
    export DOCKER_TLS_VERIFY=1
    export DOCKER_HOST=tcp://:2376

이러한 환경 변수를 설정 한 후 문제없이 빌드를 실행할 수있었습니다.

업데이트 [2016-04-28] 최신 버전의 Docker를 사용하는 경우 수행 할 수 있습니다.

eval $(docker-machine env) 환경을 설정합니다

( docker-machine env수출 명세서를 인쇄합니다)


2
시간을 절약하기 위해 터미널 프로필에 추가 할 수도 있습니다. VM은 이미 설정되었음을 알려줍니다.
Joe Susnick 2014

25

docker pulldocker service실행되지 않으면 실패합니다 . 실행 중인지 확인하십시오.

:~$ ps aux | grep docker
root     18745  1.7  0.9 284104 13976 ?   Ssl  21:19   0:01 /usr/bin/docker -d

실행 중이 아니면 다음과 같이 시작할 수 있습니다.

sudo service docker start

Ubuntu 15 이상 사용

sudo systemctl start docker


16

이 오류도 발생했습니다. 하지만 boot2docker를 사용하지 않고 Ubuntu에 "일반"docker 를 설치했습니다 ( https://docs.docker.com/installation/ubuntulinux/ 참조 ).

도커 데몬이 아직 실행되지 않았기 때문에 오류 ( "dial unix /var/run/docker.sock : no such file or directory. Are you trying to connect to a TLS-enabled daemon without TLS?") 가 발생했습니다.

Ubuntu에서는 서비스시작해야합니다 .

sudo service docker start

http://blog.arungupta.me/resolve-dial-unix-docker-sock-error-techtip64 참조


9

Windows의 boot2docker의 경우 다음을 확인한 후 :

FATA[0000] Get http:///var/run/docker.sock/v1.18/version: 
dial unix /var/run/docker.sock: no such file or directory.  
Are you trying to connect to a TLS-enabled daemon without TLS?

내가 한 것은 :

boot2docker start
boot2docker shellinit

그 결과 :

export DOCKER_CERT_PATH=C:\Users\vonc\.boot2docker\certs\boot2docker-vm
export DOCKER_TLS_VERIFY=1
export DOCKER_HOST=tcp://192.168.59.103:2376

드디어:

boot2docker ssh

그리고도 커가 다시 작동합니다.


6

Linux에서는 먼저 sudo service docker start터미널에서 실행 합니다.


5

CentOS 7을 사용하고 yum을 통해 Docker를 설치 한 경우 다음을 실행하는 것을 잊지 마십시오.

$ sudo systemctl start docker
$ sudo systemctl enable docker

이렇게하면 서버가 시작되고 부팅시 자동으로 다시 시작됩니다.


4

환경을 설정하고 향후 세션을 위해 유지하려면 다음을 수행 할 수 있습니다.

echo 'export DOCKER_HOST="tcp://$(boot2docker ip 2>/dev/null):2375";' >> ~/.bashrc

그때: source ~/.bashrc

그리고 귀하의 환경은 모든 세션에서 설정됩니다.


0

첫 번째 /var/run/docker.sock은 boot2docker 가상 머신의 동일한 경로를 참조합니다. Windows /var/run/docker.sock에 대해 올바르게 작성하십시오.


여기에 설명을 더 추가 할 수 있습니까? 또한 사용자가 Mac에 있다고 생각합니다.
dec

0

당신은 아마도 OP가 아닐 수도 있지만, /var/run/docker.sock/도커 (특히 멍청이)로 문제를 해결하기 위해 해킹과 슬래시를 몇 번이나했기 때문에 누군가 이미 디렉토리를 호출했을 수 있습니다 . 해당 디렉토리를 삭제하고 다시 시도하십시오.

이것은 Centos 7에서 작동하도록하는 데 도움이되었습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.