在网上经常看到的一个操作就是为了让执行 docker 命令不需要敲 sudo,而创建 docker 用户组并将用户添加如 docker 用户组内。但是这样做其实风险挺大的,相当于给了该用户 root 的权利,比如该用户完全可以通过下面操作获取到实际上的 root 权限
- docker run -it --rm --privileged -v /:/r archlinux/base chroot /r
-
而且最关键的是,这样获取 root 权限,linux 内不会留下什么日志信息。比较好的一个做法应该是通过修改 sudoers 文件配置 和创建别名的方式来达到省略输入 sudo 的目的。
1、运行 sudo visudo 然后加入下面内容
- %wheel ALL=(ALL) NOPASSWD: /usr/bin/docker, /usr/bin/docker-compose
-
这样我们可以无需输入密码,使用 sudo docker 运行容器了
2、创建别名
- alias docker='sudo docker'
-
这样我们就可以直接使用 docker 来运行容器了,而它与docker用户组不同的地方在于,由于使用 sudo 命令提权,该操作会被记录在 sudo 日志中,可供审计。