우분투 OS가있는 컴퓨터에 Docker를 설치했습니다. 도커를 설치 한 후 실행하면
sudo docker run hello-world
괜찮습니다.하지만 sudo
명령을 더 짧게하기 위해 단어 를 숨기고 싶습니다 .
단어없이 명령을 쓰면 sudo
docker run hello-world
다음이 표시됩니다.
docker: Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Post http://%2Fvar%2Frun%2Fdocker.sock/v1.35/containers/create: dial unix /var/run/docker.sock: connect: permission denied.See 'docker run --help'.
내가 만들려고 할 때도 같은 일이 일어났다
docker-compose up
이 문제를 어떻게 해결할 수 있습니까?
답변
root가 아닌 사용자로 docker를 실행하려면 docker 그룹에 docker를 추가해야합니다.
- 도커 그룹이 없으면 작성하십시오.
$ sudo groupadd docker
- docker 그룹에 사용자를 추가하십시오.
$ sudo usermod -aG docker $USER
- 다음 명령 또는 로그 아웃을 실행하고 다시 로그인 한 후 실행하십시오 (작동하지 않는 경우 먼저 시스템을 재부팅해야 할 수도 있음)
$ newgrp docker
- 도 커가 루트없이 실행될 수 있는지 확인하십시오.
$ docker run hello-world
docker 공식 문서에서 가져옵니다 :
manage-docker-as-a-root-user
답변
업그레이드 후 권한이 거부되었습니다. 사용자가 이미 ‘docker’그룹에 있었기 때문에 ‘mkb’ 설치 후 단계를 수행해 도 아무런 변화가 없습니다. 나는 성공없이 어떤 식 으로든 두 번 재 시도합니다.
검색 시간 후에 다음 솔루션이 성공적으로 작동했습니다.
sudo chmod 666 /var/run/docker.sock
해결책은 Olshansk 에서 나왔습니다 .
업그레이드가 ‘docker’그룹에 대한 충분한 권한없이 소켓을 다시 만든 것처럼 보입니다.
문제
이 하드 chmod는 보안 허점을 열고 재부팅 할 때마다이 오류가 반복해서 시작되므로 매번 위의 명령을 다시 실행해야합니다. 나는 한 번에 해결책을 원한다. 이를 위해 두 가지 문제가 있습니다.
-
1) 문제점
SystemD
: 소켓은 소유자 ‘root’와 그룹 ‘root’로만 작성됩니다.이 명령으로 첫 번째 문제를 확인할 수 있습니다.
ls -l /lib/systemd/system/docker.socket
이 모든 것이 좋으면 ‘
root/docker
‘not ‘root/root
‘ 가 표시되어야합니다 . -
2) 그래픽 로그인 문제 : /superuser/1348196/why-my-linux-account-only-belongs-to-one-group
이 명령으로 두 번째 문제를 확인할 수 있습니다.
groups
모든 것이 정확하면 목록에 docker 그룹이 표시됩니다. 명령을 시도하지 않으면
sudo su $USER -c groups
도커 그룹 이 보이면 버그 때문입니다.
솔루션
그래픽 로그인에 대한 해결 방법을 얻으려면 다음 작업을 수행해야합니다.
sudo chgrp docker /lib/systemd/system/docker.socket
sudo chmod g+w /lib/systemd/system/docker.socket
그러나이 버그를 관리 할 수 없다면 그렇게 나쁘지 않은 해결책은 다음과 같습니다.
sudo chgrp $USER /lib/systemd/system/docker.socket
sudo chmod g+w /lib/systemd/system/docker.socket
이것은 그래픽 환경에 있고 컴퓨터의 유일한 사용자 일 수 있기 때문에 작동합니다. 두 경우 모두 재부팅해야합니다 (또는 sudo chmod 666 /var/run/docker.sock
)
답변
- 도커 그룹 추가
$ sudo groupadd docker
- 도커 그룹에 현재 사용자 추가
$ sudo usermod -aG docker $USER
- 도커 그룹으로 세션 전환
$ newgrp - docker
- 테스트를 위해 예제를 실행하십시오
$ docker run hello-world
답변
docker
그룹에 현재 사용자 추가
sudo usermod -aG docker $USER
- docker 데몬에 연결할 수 있도록 docker socket의 권한을 변경하십시오.
/var/run/docker.sock
sudo chmod 666 /var/run/docker.sock
답변
이 명령 으로이 오류를 해결합니다.
$ sudo chmod 666 /var/run/docker.sock
답변
https://docs.docker.com/install/linux/linux-postinstall/docsManage Docker as a non-root user
에서 언제든지 단락을 시도 할 수 있습니다 .
문제가 지속되는 경우에도이 작업을 수행 한 후 다음 명령을 실행하여 문제를 해결할 수 있습니다.
sudo chmod 666 /var/run/docker.sock
답변
unix : ///var/run/docker.sock에서 Docker 데몬 소켓에 연결하는 동안 권한이 거부 되었습니다 . /var/run/docker.sock : 연결 : 권한 거부
sudo chmod 666 /var/run/docker.sock
이것은 내 문제를 해결합니다.