大多数情况下,普通用户使用Docker都需要使用sudo
进行提权,否则可能要切换到root用户才可直接使用。其实只需要将当前用户加入docker用户组即可。
The
Warning from Post-installation steps for Linux | Docker Documentationdocker
group grants privileges equivalent to theroot
user. For details on how this impacts security in your system, see Docker Daemon Attack Surface.
确实有风险,可能导致利用Docker提权之类的问题。搞事之前一定要明白自己在做什么。
正常情况下应该已经存在docker用户组了,如果没有则需要:
sudo groupadd docker
来添加一个名为docker的用户组。
然后就可以将当前用户加入docker用户组:
sudo usermod -aG docker $USER
或者:
sudo gpasswd -a $USER docker
注销后重新登录即可生效。按文档,对于有图形界面的Linux,应该注销再登录即可,否则应该完全重启。如果不方便注销,可以尝试:
newgrp docker
此时应该可以不需要sudo
来使用Docker了。
发现版本19.03起有一个实验性特性,以非root用户运行Docker守护进程:
dockerd-rootless.sh --experimental
引用:
Post-installation steps for Linux | Docker Documentation
How can I use docker without sudo? – Ask Ubuntu
Docker security | Docker Documentation