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

나는 도커를 처음 사용합니다. 임팔라에 데이터를로드하는 쉘 스크립트가 있고 이미지를 빌드하고 컨테이너를 실행하는 도커 파일이 필요합니다. 나는 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

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



답변

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완료됩니다.


답변

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

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

$(boot2docker shellinit)

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


답변

내 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수출 명세서를 인쇄합니다)


답변

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


답변

이 오류도 발생했습니다. 하지만 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 참조


답변

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

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


답변

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