Docker를 Snap으로 설치 한 후 실행하면 권한이 거부되었습니다.


33

소프트웨어 저장소를 통해 Docker를 설치했는데 Snap 패키지임을 나타냅니다. 내 생각에는 좋지만, 불행히도 내가 시도한 모든 Docker 명령이 작동하지 않습니다.

$ docker info
Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Get http://%2Fvar%2Frun%2Fdocker.sock/v1.30/info: dial unix /var/run/docker.sock: connect: permission denied

이 문제를 해결하는 방법에 대한 아이디어가 있습니까?

편집 : Docker의 자체 저장소 에서 Docker 를 설치 하여이 문제를 해결했으며 앞으로이 질문을 탐색하는 사람들에게도 유용 할 수 있습니다. 그래도 Snap에서 질문을 실행하려는 사람들에게 질문을 열어두고 있습니다.


docker official repos에서 docker를 설치했습니다. 사용자를 docker그룹에 추가했을 때 Docker가 이미 실행 중이며 id -nGdocker를 표시하지 않았으며 모든 docker명령으로 인해 권한 거부 오류가 발생했습니다. docker 시스템 프로세스가 계속 실행 중이므로 로그 아웃했다가 다시 작동하지 않았습니다. 시스템 재부팅 또는 도커 재시작은 도커 그룹의 일부로 사용자를 표시하고 도커 명령 실행을 허용했습니다. 참고 : 0 담당자, 댓글을 추가 할 수 없습니다.
Santosh Patel

답변:


33

이것은 GitHub 페이지에서 가져온 것입니다. 정확한 단계를 시도 했습니까?

If you are using Ubuntu Core 16,

Connect the docker:home plug as it's not auto-connected by default:

$ sudo snap connect docker:home

If you are using an alternative snap-compatible Linux distribution ("classic" in snap lingo), and would like to run docker as a normal user:

Create and join the docker group.

$ sudo addgroup --system docker
$ sudo adduser $USER docker
$ newgrp docker

You will also need to disable and re-enable the docker snap if you added the group while it was running.

$ sudo snap disable docker
$ sudo snap enable docker

에서 부두 노동자 스냅 GitHub의


해당 페이지를 보지 못 했으므로 링크에 감사드립니다. 즉, 우분투 코어를 사용하지 않기 addgroup때문에 다른 답변에 따라 내가 한 일에 대해 생각 하는 지침 을 따라야합니다 . 불행히도 나는 현재 작동중인 시스템을 더 이상 건드리지 않고 싶지만 다른 누군가가 이것을 시도하고 그것을 작동 시키려면 듣고 싶습니다.
Vincent

2
도커 스냅 비활성화 / 활성화는 나를 위해 속임수였습니다
Manish Kumar

1
이것은 Ubuntu (Desktop) 19.04에도 적용됩니다.
Nick Breen

31

오류 메시지는 엔진과 통신하기 위해 유닉스 소켓에 액세스 할 수있는 권한이 없기 때문에 현재 사용자가 도커 엔진에 액세스 할 수 없음을 나타냅니다.

임시 솔루션

sudo매번 높은 권한으로 명령을 실행 하려면이 명령을 사용하십시오 .

영구 (권장) 솔루션

현재 사용자를 docker그룹에 추가하십시오 . 이것은 입력하여 얻을 수 있습니다

sudo usermod -a -G docker $USER

그룹 멤버십을 적용하려면 로그 아웃했다가 다시 로그인해야합니다.

출처 : techoverflow.net


1
귀하의 Google-fu는 내 것보다 낫습니다. 불행히도 이것은 작동하지 않습니다. 우선, docker그룹이 존재하지 않았습니다. 그런 다음 먼저 sudo addgroup docker명령을 다시 실행 한 다음 로그 아웃했다가 다시 로그인했습니다. 불행히도, 질문에 표시된 오류는 지속됩니다 ...
Vincent

2
@Vincent 당신은 그룹 변경이 즉시 발생하지 않는다는 것을 잊지 않았다? 시도 newgrp docker또는 로그 아웃 및 로그인
ADDB

죄송합니다, 죄송합니다, 그 언급을 잊었습니다-당신이 응답하는 동안 내 의견을 업데이트했습니다 :) 달리기 groups vincent제공 :vincent adm cdrom sudo dip plugdev lpadmin sambashare docker
Vincent

@Vincent 참조를 위해 도커 데몬이 시작되었습니다. 시도 sudo /etc/init.d/docker status또는 sudo service docker status이를 테스트 할 수 있습니다.
ADDB

: 흠, 나는 그것으로 인해 스냅되기 위해서는 그 일을 생각하지 않는다 paste.ubuntu.com/25219172 말했다 ps cax | grep dockerd주지 않습니다 31034 ? Ssl 0:05 dockerd.
Vincent

6

귀하의 사용자 이름이 이미 도커 그룹에 있다고 가정합니다. 이를 확인하려면 아래 명령을 실행하십시오.

id -nG

그렇지 않은 경우 아래 명령으로 사용자를 docker 그룹에 추가해야합니다.

sudo groupadd docker
sudo usermod -aG docker $USER

명령을 실행하면 sudo systemctl start docker도커 프로세스가 생성됩니다. 해당 도커 프로세스에는 dockerd데몬 스레드 가 포함되어 있습니다 . 이 명령은 또한 기본 docker.sock유닉스 소켓을 만듭니다 . docker.sock소켓은 지속적으로 경청한다 dockerd데몬 스레드. 이를 통해 docker.pid프로세스로 커널 레벨 IPC를 수행 할 수 있습니다 . 이 도커 소켓을 사용하려면 프로세스 수준 ( docker.pid) 및 파일 수준 ( docker.sock)의 적절한 권한이 있어야합니다 . 따라서 아래 두 명령을 실행하면 문제가 해결됩니다. sudo chmod a+rwx /var/run/docker.sock # You can provide just execute permission sudo chmod a+rwx /var/run/docker.pid


우분투 18.04에서만 작동합니다. 감사합니다 Uddhav Gautam
Sabbir

3
sudo setfacl -m user:your_user_name:rw /var/run/docker.sock

다시 시작할 필요가없고 더 안전합니다


1

Docker 그룹에 사용자를 추가해야합니다 ( 공식 문서 참조 ).

sudo명령 앞에 추가 하거나 다음 명령 docker을 사용하여 그룹에 사용자를 추가 할 수 있습니다 .

sudo usermod -aG docker <USER>

그룹 멤버쉽이 다시 평가되도록 로그 아웃했다가 다시 로그인하십시오.


해당 링크의 해당 컨텐츠가 사라질 수 있으므로 여기에 관련 세부 사항을 추가하십시오.
차이 티 렉스

다른 대답은 이미 사용자를 그룹에 추가하는 것을 언급했지만 도움이되지 않았습니다. 또한 스냅 설치에는 도움이되지만 정식 설치에는 도움이되지 않습니다.
Vincent
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.