我的笔记本电脑操作系统是 Ubuntu 20.04,我有这些用户:
saeed (my main user)
test1 (created for testing only)
我已将它们全部添加到docker
组中,它们都可以运行 docker 命令,但我看到了两种不同的行为。我举例说明:
- 我
docker run -d --name saeed nginx
与saeed
用户一起运行。然后我docker inspect container_name
和我看到这是overlay2
(和其他文件)路径:
/home/saeed/.local/share/docker/...
- 我
docker run -d --name test1 nginx
与test1
用户一起运行。然后我docker inspect container_name
和我看到这是overlay2
(和其他文件)路径:
/var/lib/docker/...
为什么有区别?以及如何解决?
看来您的 saeed 帐户已配置为在无根配置中运行 docker。这意味着您正在与以您的用户身份运行的单独的 docker 守护进程交谈,将文件存储在您的用户主目录中。没有必要为此将您的用户添加到
docker
组中,这样做会破坏通过运行无根守护程序获得的安全性(因为同一用户可以重新配置他们的DOCKER_HOST
变量以与以 root 身份运行的守护程序对话,从而提升他们的权限)。test1 用户使用传统的 docker install 作为 root 运行单个守护进程。您可能会看到更好的性能和更少的问题,但请确保您信任运行命令的用户作为主机上的 root 用户。