我试图从概念上理解用户如何与 Docker 容器相关的工作。
表达这个问题的一个简单方法是
为了更深入地理解我为什么问这个问题,我编写了一个
docker-compose.yaml
配置文件来启动具有关联 Docker 网络的 Docker 容器。
此容器无法运行,因为它无法获得对特定已安装卷的RW访问权限。
主机上的文件夹的用户和组设置为
root
。
我的理解是,默认情况下,Docker 容器将以 root 用户身份运行。
我没有在我的
docker-compose.yaml
中指定任何用户信息,因此我假设docker compose up -d
将启动容器,并且它将作为root
用户运行。
如果有关 Docker 容器运行的用户的信息嵌入到 Docker 容器映像中,那么我的假设是错误的。
所以我问这个问题。
我在查看 Jenkins 的一些
Dockerfile
的规范时找到了问题的答案。
有些
Dockerfile
确实有用户 ID 的规范。
示例:
在此示例中,用户 id 1000 用于运行容器。
这对我来说似乎很奇怪。这个id能保证存在吗?据我所知,没有办法知道用户id 1000是谁...