我在运行 docker
时遇到权限问题在 Ubuntu 18.04 LTS 上。
有很多帖子描述了 sudo usermod -a -G docker $USER
的修复。 ,但是,这对我不起作用。
这是错误:
myuser@ubuntu:~$ docker container ls
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.39/containers/json: dial unix /var/run/docker.sock: connect: permission denied
运行用户模式
myuser@ubuntu:~$ sudo usermod -a -G docker $USER
确认我的用户名在 docker 组中:
myuser@ubuntu:~$ cat /etc/group | grep docker
docker:x:129:myuser
也试过:
接着:
myuser@ubuntu:~$ docker container ls
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.39/containers/json: dial unix /var/run/docker.sock: connect: permission denied
...同样的问题!
它在我使用
sudo
时有效myuser@ubuntu:~$ sudo !!
sudo docker container ls
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
18b3719b66d2 postgres:10.3 "docker-entrypoint.s…" 27 minutes ago Up 27 minutes 0.0.0.0:5432->5432/tcp local-postgres10.3
有任何想法吗?
最佳答案
在 Centos 7.6(AWS 上的 ami-04cf43aca3e6f3de3
)上,我发现套接字归 root:root
所有。 , docker 组被称为 dockerroot
(见 /etc/group
)。
使用 chgrp 和 usermod 解决,如下所示:
# ll /var/run/docker.sock
srw-rw----. 1 root root 0 Mar 22 16:40 /var/run/docker.sock
# chgrp dockerroot /var/run/docker.sock
# usermod -aG dockerroot USER_HERE
# ll /var/run/docker.sock
srw-rw----. 1 root dockerroot 0 Mar 22 16:40 /var/run/docker.sock
# su - USER_HERE
$ docker ps
CONTAINER ID IMAGE ...
...
感谢@gracefulrestart 在问题的评论中提供指导。
关于Docker 守护程序套接字 : Permission denied (even after usermod),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57225587/