Docker 守护程序套接字 : Permission denied (even after usermod)

标签 docker ubuntu ubuntu-18.04

我在运行 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

也试过:
  • 关闭终端窗口。
  • 退出 Ubuntu 并重新登录。

  • 接着:
    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/

    相关文章:

    java - Docker 镜像 openjdk :8-jdk-alpine fails to execute a simple command

    ruby-on-rails - Fedena Pro 3.0 Rake db :create on ubuntu 14. 04 创建错误

    visual-studio-code - 使用 Ubuntu 在 Visual Studio Code 中使用 Bazel 进行调试

    nginx - 如何 : stream with ffmpeg and nginx rtmp, Ubuntu

    ssl - Elastic Beanstalk : load balancer DNS unreachable

    ubuntu - 系统重启后 Docker 不显示任何容器或图像

    ruby - 在 ubuntu 14.04 上为所有用户全局设置 ruby

    java - 无法将独立的 JBoss AS7 实例配置为可从外部网络访问

    r - 在 Ubuntu 18.x 和 R 3.4.4/3.5.1 上安装 tidyverse

    java - 如何配置 Vert.x 事件总线以跨 Docker 容器集群工作?