考虑以下简单的Dockerfile:
FROM debian:testing
RUN adduser --disabled-password --gecos '' docker
RUN adduser --disabled-password --gecos '' bob
Run Code Online (Sandbox Code Playgroud)
在一个没有别的工作目录.构建docker镜像:
docker build -t test .
Run Code Online (Sandbox Code Playgroud)
然后在容器上运行bash脚本,将工作目录链接到bob主目录中的新子目录:
docker run --rm -it -v $(pwd):/home/bob/subdir test
Run Code Online (Sandbox Code Playgroud)
谁拥有subdir容器上的内容?在容器上,运行:
cd /home/bob/subdir
ls -l
Run Code Online (Sandbox Code Playgroud)
广告我们看到:
-rw-rw-r-- 1 docker docker 120 Oct 22 03:47 Dockerfile
Run Code Online (Sandbox Code Playgroud)
圣烟!docker拥有内容!回到容器外的主机上,我们看到我们的原始用户仍然拥有Dockerfile.让我们尝试修复bob主目录的所有权.在容器上,运行:
chown -R bob:bob /home/bob
ls -l
Run Code Online (Sandbox Code Playgroud)
我们看到:
-rw-rw-r-- 1 bob bob 120 Oct 22 03:47 Dockerfile
Run Code Online (Sandbox Code Playgroud)
可是等等!在容器外面,我们现在运行ls -l
-rw-rw-r-- 1 1001 1001 120 Oct 21 20:47 …Run Code Online (Sandbox Code Playgroud)