以非 root 用户身份管理 Docker
root
,其他用户只能使用sudo。
root
用户身份运行。docker
命令前加上sudo
,请创建一个名为 Unix 组 docker
并将用户添加到其中。当 Docker 守护进程启动时,它会创建一个可供 docker
组成员访问的 Unix 套接字。
警告:
该docker组授予与root 用户等效的权限。有关这如何影响系统安全性的详细信息,请参阅 Docker Daemon Attack Surface(https://docs.docker.com/engine/security/#docker-daemon-attack-surface)。
注意:
要在没有 root 权限的情况下运行 Docker,请参阅 以非 root 用户身份运行 Docker 守护程序(无根模式 https://docs.docker.com/engine/security/rootless/)。
docker
组并添加您的用户:
1、创建 docker 用户组:
sudo groupadd docker
2、将您的用户添加到docker
组中。
sudo usermod -aG docker $USER
3、注销并重新登录,以便重新评估您的组成员身份。
newgrp docker
4、验证您是否可以在docker
没有sudo
.
docker run hello-world
此命令下载 test image 并在容器中运行它。当容器运行时,它会打印一条消息并退出。
sudo
在将用户添加到docker
组之前最初使用 Docker CLI 命令运行,您可能会看到以下错误,这表明您的~/.docker/
目录是由于sudo
命令而使用不正确的权限创建的。
WARNING: Error loading config file: /home/user/.docker/config.json -
stat /home/user/.docker/config.json: permission denied
~/.docker/
目录(它会自动重新创建,但会丢失任何自定义设置),或使用以下命令更改其所有权和权限:
sudo chown "$USER":"$USER" /home/"$USER"/.docker -R
sudo chmod g+rwx "$HOME/.docker" -R