Docker容器以非root用户运行及镜像分发后用户相关问题咨询
关于Docker非root用户镜像的宿主机用户疑问解答
嘿,针对你的两个问题,我来给你清晰的解答:
1. 是否需要在客户端机器上创建appuser用户?
完全不需要!你在Dockerfile里通过RUN useradd -r -u 1001 -g appuser appuser创建的appuser是容器内部环境专属的用户,和客户端(宿主机)的用户体系完全隔离。这个用户的信息只存在于镜像的文件系统中(比如容器内的/etc/passwd和/etc/group文件),宿主机根本不会感知到这个用户的存在,自然也不需要在宿主机上创建它。
2. 若不创建此类用户,Docker在客户端机器上会如何表现?
容器依然会正常以appuser身份启动并运行,不会有任何问题。Docker在启动容器时,会基于镜像内部的用户配置来执行进程——也就是说,容器内的进程会使用你指定的UID(1001)和GID运行,这个身份是容器内部的,和宿主机的用户没有直接关联。
这里补充一个小细节:如果你的容器需要挂载宿主机的目录并读写文件,可能会遇到权限问题,但这和宿主机有没有appuser这个用户名无关,只和容器用户的UID/GID与宿主机文件的权限数值是否匹配有关。不过这是另一个场景的问题,和你当前的疑问无关~
内容的提问来源于stack exchange,提问作者Jugi
相关产品推荐
相关产品推荐

