소프트웨어 저장소를 통해 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에서 질문을 실행하려는 사람들에게 질문을 열어두고 있습니다.
답변
이것은 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
답변
오류 메시지는 엔진과 통신하기 위해 유닉스 소켓에 액세스 할 수있는 권한이 없기 때문에 현재 사용자가 도커 엔진에 액세스 할 수 없음을 나타냅니다.
임시 솔루션
sudo
매번 높은 권한으로 명령을 실행 하려면이 명령을 사용하십시오 .
영구 (권장) 솔루션
현재 사용자를 docker
그룹에 추가하십시오 . 이것은 입력하여 얻을 수 있습니다
sudo usermod -a -G docker $USER
그룹 멤버십을 적용하려면 로그 아웃했다가 다시 로그인해야합니다.
출처 : techoverflow.net
답변
귀하의 사용자 이름이 이미 도커 그룹에 있다고 가정합니다. 이를 확인하려면 아래 명령을 실행하십시오.
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
답변
sudo setfacl -m user:your_user_name:rw /var/run/docker.sock
다시 시작할 필요가없고 더 안전합니다
답변
Docker 그룹에 사용자를 추가해야합니다 ( 공식 문서 참조 ).
sudo
명령 앞에 추가 하거나 다음 명령 docker
을 사용하여 그룹에 사용자를 추가 할 수 있습니다 .
sudo usermod -aG docker <USER>
그룹 멤버쉽이 다시 평가되도록 로그 아웃했다가 다시 로그인하십시오.