도커 문제


32

우분투 15.04에서 "Docker"에 대해 배우려고합니다.

"docker run image"와 같은 docker를 사용하여 명령을 내리면 다음 오류가 발생합니다.

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

나는 그것이 무엇을 의미하는지 이해하지 못한다.


5
이 오류 메시지가 나타난 후로 데몬을 시작했습니다 sudo service docker start. 그때 나는 달릴 수 있었다 sudo docker run hello-world. 행운을 빕니다.
shellter

답변:


31

이 오류가 발생하는 이유는 두 가지입니다.

  1. Docker 데몬이 실행되고 있지 않습니다. 로 확인할 수 있습니다 sudo /etc/init.d/docker status.

  2. Docker 데몬이 실행 중이지만 수신 대기하지 않도록 구성되었습니다 /var/run/docker.sock. 당신은에서 확인할 수 /etc/default/docker있는 경우 -H옵션이 지정됩니다 DOCKER_OPTS.


3
+1. 나는 그 $ sudo service docker status이후 로 사용해야했다$ sudo /etc/init.d/docker status * Docker is managed via upstart, try using service docker status
IsaacS

를 실행 한 후 sudo /etc/init.d/docker status도커 서비스가 다운되었음을 알았습니다. 을 실행 sudo /etc/init.d/docker start한 후 도커 이미지를 실행할 수있었습니다.
Halil

systemd에서 더 이상 / etc / default / docker가 유용하지 않은 것 같습니다 (Ubuntu 16.04+). systemd에서 BTW는 데몬 상태를 확인 하는 정식 방법은 다음과 같습니다 sudo systemctl status docker.
Pablo A

38

Docker를 설치 한 후 사용자를 docker 그룹에 추가하라는 메시지가 표시됩니다. 표시된 명령을 실행하십시오.

sudo usermod -aG docker $USER

변경 사항을 적용하려면 세션을 닫고 다시 로그인해야합니다.


아마도 가장 단순 할 것입니다. 그래도 작동하는지 모르겠습니다 (@decebal의 사용).
Yair Daon

나는이 프롬프트를받지 못했다. 나는 라즈베리 파이에 있습니다.
IgorGanapolsky

나중에 docker 그룹에 자신을 추가하려면을 실행하십시오 sudo usermod -a -G docker <user>. 자세한 내용은 여기 를 참조 하십시오 .
휴 W

3
"세션 닫기"에 중점을 둡니다. 감사합니다!
Dolan Antenucci

Gnome이 설치된 Ubuntu 18.04에서이 기능을 사용하려면 시스템을 다시 시작해야했습니다. 로그 아웃했다가 다시 작동하지 않습니다 : /
Zoltán

15

사용자가 docker group에 가입 한 경우 docker를 설치 한 후 os를 재부팅하여 그룹 권한을 적용하십시오.

최신 정보:

Docker가 ubuntu 14.04에 설치하는 경우 설치 프로그램은 사용자가 Docker 그룹에 추가 한 내용을 Docker 서비스에 액세스하도록 다시 제안합니다.

보다

docker 데몬은 TCP 포트 대신 Unix 소켓에 바인딩됩니다. 기본적으로 Unix 소켓은 사용자 루트가 소유하고 다른 사용자는 sudo를 사용하여 액세스 할 수 있습니다. 이러한 이유로 docker 데몬은 항상 루트 사용자로 실행됩니다. docker 명령을 사용할 때 sudo를 사용하지 않으려면 docker라는 Unix 그룹을 만들고 사용자를 추가하십시오. docker 데몬이 시작되면 docker 그룹에서 Unix 소켓의 소유권을 읽고 쓸 수 있습니다.

출처 : https://docs.docker.com/installation/ubuntulinux/#create-a-docker-group


2
이것이 도움이되는 이유를 설명해야합니다.
guntbert

1
@guntbert 내 답변을 업데이트했습니다.
MURATSPLAT

@MURATSPLAT은 QBI는 gunbert 덕분에 난 솔루션 찾기
리시 칸트

그룹 권한 변경을 적용합니다. 재부팅하지 않아도됩니다. 로그 아웃이면 충분합니다.
Tim Wu

그놈과 @TimWu에 우분투 18.04은, 나는 다시 시작했다 단지 로그 아웃 한 다음 다시하지 않았다 작업 - 시스템 : /
졸탄

10

호스트에 sudo docker images호출 <image>된 컨테이너가 있는지 확인하는 데 사용 하십시오 .

호스트 컴퓨터에이 컨테이너가없는 경우 running을 실행 docker run <image>하면 <image>호스트 컴퓨터에서 호출 된 컨테이너가 시작 되고 docker는 실행 방식과 마찬가지로 저장소 허브에서 ''라는 컨테이너를 자동으로 가져옵니다 docker pull <image>. 그런 다음 여전히 ''라는 이미지를 찾을 수 없으면이 오류 메시지가 표시됩니다.

hello-worldDocker가 컴퓨터에서 작동하는지 확인 하기 위해 교체를 시도 할 수 있습니다.

sudo docker run hello-world

또한를 사용해야하는지 확인해야합니다 sudo.


2
OP가 sudo를 사용하지 않는 것이 문제인 경우, 오류 메시지는 "해당 파일이나 디렉토리가없는"대신 "권한이 거부되었습니다"입니다.
Andreas Veithen

1
그렇습니다. 사용자가 권한이없는 경우 오류 메시지가 표시됩니다.FATA[0000] Get http:///var/run/docker.sock/v1.18/containers/json: dial unix /var/run/docker.sock: permission denied. Are you trying to connect to a TLS-enabled daemon without TLS?
realhu

2
권한 부여sudo usermod -a -G docker ec2-user
AB

4

이 기사가 도움이되었다는 것을 알게되었습니다 : https://docs.docker.com/articles/systemd/ ; 여러 환경에서 실행하고 작동했는데 도움이되기를 바랍니다.


링크 전용 답변은 허용되지 않습니다. 답변을 완성하여 완성하십시오.
Flimzy

2
이 이론적으로 질문에 대답 할 수 있습니다 동안, 바람직 할 것이다 여기에 대한 대답의 본질적인 부분을 포함하고 참조 할 수 있도록 링크를 제공합니다.
Mitch

1
해당 시스템 링크가 작동하지 않는 것 같습니다. 다음은 또 다른 링크입니다. docs.docker.com/engine/admin/systemd
wsams

2

이미지를 가져 오는 동안 비슷한 메시지가 나타납니다. 방금 sudo su이미지를 가져 와서 이미지를 성공적으로 가져올 수있었습니다.


2
Ask Ubuntu에 오신 것을 환영합니다! 이 작업을 수행하는 방법에 대한 특정 세부 정보로 확장 하려면 이 답변을 편집 하는 것이 좋습니다 . Ask Ubuntu에서 어떤 종류의 답변이 가장 가치가 있다고 생각되는지에 대한 일반적인 조언은 좋은 답변을 작성하는 방법 도 참조 하십시오.
David Foerster

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