Yan*_*ard 3 linux mount docker
我们在 RHEL 主机上使用 Red Hat 容器映像,全部基于其 ubi7 或 ubi8 映像,默认情况下以默认用户 (uid 1001) 运行。
当容器需要对主机目录进行写访问(即写入日志或临时文件)时,这会带来挑战,因为容器中保存了主机的UID和GID,并且容器写入的文件将归UID所有容器用户的。
据我所知,这给我留下了两个选择:
通常,我只会在容器映像内创建一个匹配的用户:组组合,在需要时重置所有权和权限并重建它,但对于红帽创建的映像,这意味着大量的跑腿工作,因为一切都是如此使用 UID 1001 运行,并且有许多脚本(container-entrypoint fix-permissions、generate-container-user)强制以这种方式运行。
我是否正确理解了一切,或者是否有另一种(更好的)方法来做到这一点?
我刚刚想通了...Red Hat 镜像会自动将默认用户的 uid 更改为您使用generate-container-user脚本运行容器的任何内容,因此我只需要使用 USER 完成我的 Dockerfile ,或者运行与 --user 一起使用就可以了。