请教一个问题,关于 docker 镜像内部用户和宿主机用户。

23 天前
 AlanBrian

假设我有多个主机,每个主机的都有相同的用户 test ,但是这个用户在不同主机的上的 uid ,gid 不一样。 当我尝试打包一个 docker 镜像来运行程序。如果镜像不创建用户,默认是 root 。但是这样运行程序尝试的文件权限都是 root 的,没办法修改。 如果我创建镜像的时候去创建用户,应该如何创建。可以让这个镜像在多台主机运行的时候,每台主机的 test 用户可以修改程序生成的文件。

950 次点击
所在节点    程序员
9 条回复
Judoon
23 天前
遇事不决 777
zzsqwq
23 天前
可以用 fixuid: https://github.com/boxboat/fixuid 这个项目,在 Dockerfile 里面加了以后,在启动容器时指定用户的 uid 和 gid ,可以在启动容器时修改对应文件的权限。

但是我现在用多了还是感觉不如直接在容器里面允许 root ,然后每次启动后修改一下对应挂载文件的权限。或者直接写一个脚本,把启动和改权限都放一起。
akaju
23 天前
akaju
23 天前
mirrornighth
23 天前
得统一每台机器 test 用户的 uid ,gid 吧。然后在 dockerfile 里创建同样 id 的用户,指定该用户运行进程
AlanBrian
23 天前
@mirrornighth 现在就是不好统一,比较麻烦。有些 uid ,gid 已经被占用了。
.
7lQM1uTy635LOmbu
23 天前
我司方案,全部 1001
guanzhangzhang
23 天前
lovelylain
23 天前
@AlanBrian 先删除呗,我基于 ubuntu 镜像运行程序,前段时间更新到最新版后发现建用户 uid 变成了 1001 ,因为 1000 已经被 ubuntu 占用了,于是修改 dockerfile 先删除 ubuntu 再建用户。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1046711

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX