如何更改 docker 服务的用户?

How to change user of docker service?

我遇到了问题,因为我已经安装并启动了 docker 作为 "bad_user"。问题是这个容器生成静态文件(它的 jekyll/jekyll 图像),这些文件归 "bad_user" 所有,所以我无法编辑它们(我知道我可以将自己添加到 bad_user 组或通过 chown -R 拥有目录,但每次都这样做会很痛苦,这只会让我烦恼:)。

我已尝试重新安装 docker 并删除 /etc/docker 目录,但没有任何效果。每次我重新安装它 (docker service/manager) 运行s 作为 "bad_user" 并覆盖目录所有者。

我的问题是: 是否可以让 docker 运行ning 成为 "docker" 用户?我已经用那个组创建了那个用户(是的,我已经在那个用户下重新安装了 docker-ce)。

我正在开发基于 debian 的发行版。

我想在我的情况下它的 docker 守护程序问题,不知何故当它同步共享卷文件时它授予 bad_user 而不是 运行ning 容器的用户权限。

PS。如果重要的话,这是我 运行 的命令:

docker run --rm -p 8000:8000 \
  --volume="/home/docker/blog:/srv/jekyll" \
  -it tocttou/jekyll:3.5 \
  jekyll serve --watch --port 8000


好的,我明白了。事实证明,当您 运行 linux 在共享卷上创建一些文件的容器(-v 参数创建共享卷)时,文件权限将适用于 group id = 1000 和 id = 1000。在我的例子中,id=1000 的用户是 "bad_user"。如果您想解决方法,可以使用 --user 并指定您 运行ning 所在的用户 ID。 关键是要记住 linux 权限只是数字,因为主机文件系统编号 1000(在我的例子中)是 "bad_user",10001 是 "docker_user"。如果您从容器内部检查权限,您可能会看到用户 id = 1000 意味着与您的主机系统上的用户非常不同。

我希望下一个遇到这个问题的人会觉得有用。

您可以在此处找到更多信息:https://dille.name/blog/2018/07/16/handling-file-permissions-when-writing-to-volumes-from-docker-containers/