Docker从入门到精通——以非 root 用户身份管理 Docker

以非 root 用户身份管理 Docker 

  Docker 守护进程绑定到 Unix 套接字而不是 TCP 端口。默认情况下,Unix 套接字归用户所有root,其他用户只能使用sudo。

  Docker 守护程序始终以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
posted @ 2022-06-08 13:54  左扬  阅读(1355)  评论(0编辑  收藏  举报
levels of contents