如何在没有sudo的情况下使用docker?

Modified on: Sat, 09 Jun 2018 00:48:53 +0800

在Docker的文档页面上,所有示例命令都显示为不带sudo,如下所示:

docker ps

在Ubuntu上,二进制文件名为docker.io。没有sudo它也行不通:

sudo docker.io ps

如何配置Docker以便我不需要为每个Docker命令添加前缀sudo?

作者:Flimm

最佳答案

泊坞手册这就是说:

  

提供非root权限

  
  

docker守护程序始终以root用户身份运行,自Docker版本0.5.2起,docker守护程序绑定到Unix套接字而不是TCP端口。默认情况下,Unix套接字由root用户拥有,因此,默认情况下,您可以使用sudo访问它。

  
  

从版本0.5.3开始,如果您(或您的Docker安装程序)创建一个名为docker的Unix组并向其添加用户,则docker守护程序将使docker组的Unix套接字的所有权可读/写。守护进程开始。 docker守护程序必须始终以root用户身份运行,但如果您以docker组中的用户身份运行docker客户端,则无需向所有客户端命令添加sudo。从0.9.0开始,您可以指定除docker之外的组应该使用-G选项拥有Unix套接字。

  
  

警告:docker组(或使用-G指定的组)是root等效的;请参阅Docker Daemon Attack Surface详细信息和此博客帖子on 为什么我们不让非root用户在CentOS,Fedora或RHEL中运行Docker(感谢michael-n)。


重要提示:Linux的安装后步骤(它还链接到Docker Daemon Attack Surface详细信息 )。

  

以非root用户身份管理Docker

  
  

docker守护程序绑定到Unix套接字而不是TCP端口。默认情况下,Unix套接字由用户root拥有,而其他用户只能使用sudo访问它。 docker守护程序始终以root用户身份运行。

  
  

如果您在使用docker命令时不想使用sudo,请创建一个名为docker的Unix组并向其添加用户。当docker守护程序启动时,它会使docker组对Unix套接字的所有权进行读/写。


  • 添加泊坞组(如果它尚不存在):

    sudo groupadd docker
    
  • 将已连接的用户“$ USER”添加到泊坞窗组。如果您不想使用当前用户,请更改用户名以匹配您的首选用户:

    sudo gpasswd -a $USER docker
    
  • 执行newgrp docker或注销/以激活对组的更改。

  • 您可以使用

    docker run hello-world
    

    检查你是否可以在没有sudo的情况下运行docker。


相关问答

添加新评论