Ubuntu中以非root用户身份管理Docker

说明

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

如果不想在docker命令前加上sudo,可创建一个名为docker的Unix用户组并向其添加当前用户。当Docker守护程序启动时,它会创建一个可由该docker组成员访问的Unix套接字。

执行步骤

  • 添加docker用户组 (ubuntu16.04安装docker后,默认会创建该用户组)
    1
    $ sudo groupadd docker
  • 将当前用户加入到docker用户组中
    1
    $ sudo usermod -aG docker $USER
  • 重启服务
    1
    $ sudo service docker restart
  • 登录至新的docker组(也可以退出并重新登录)
    1
    $ newgrp - docker
  • 确认不需要添加sudo运行docker
    1
    $ docker run hello-world