昔我往矣

如何使用普通用户管理docker?

2020年04月22日

首先,比”如何使用普通用户管理docker“更重要的问题是:”为什么要使用普通用户管理docker“?

  1. 使用普通用户登录服务器执行管理操作才是符合运维规范的,而不是给所有人都授予root权限,这有利于权限管理的标准化。
  2. 恶意破坏很难避免,但是要尽量不让用户做傻事,虽然普通用户进入docker之后,可以拥有root身份,但是这是恶意操作,避免的难度太高。

接下来就是怎么让普通用户也能使用docker的配置步骤了。

让普通用户能用docker最重要的就是让普通用户具备访问 /var/run/docker.sock 文件的权限。比较标准的做法是

  • 确保docker用户组的存在
  • 把需要使用docker的普通用户加入docker用户组。
  • 确保 docker 组对 /var/run/docker.sock 文件有读写权限。

一、首先保证存在docker用户组

# grep docker /etc/group || groupadd docker

二、把普通用户加入docker用户组

# usermod -aG docker <your account name>

三、确保docker组对 /var/run/docker.sock 文件有读写权限

# chown :docker /var/run/docker.sock
# chmod g+rw /var/run/docker.sock

这样基本就大功告成了,这是可以切换到普通用户,然后执行 docker ps 等命令试试看。

附一下 Ubuntu 和 CentOS 的区别:

  1. CentOS中,安装docker之后是没有docker组的,只要按照上面的三个步骤执行就可以了。
  2. 在Ubuntu上,安装好docker之后一般就有docker组了, 而且docker组对 /var/run/docker.sock 文件默认就有读写权限。

但是,在ubuntu上有一点要注意的是,当你把普通用户加入到docker组之后,普通用户并不是立刻就具备了docker组的权限,你此时使用 groups 命令查看,甚至普通用户都不在docker组里,这是有两种方案,临时方案是,使用newgrp命令切换到docker组的角色,例如:

$ newgrp docker  # 用普通用户执行即可

第二种方案是重新使用普通用户登录系统,也是可以获得docker组权限的。

当前暂无评论 »

添加新评论 »