无论如何要为 docker 卷指定主机的不同用户?

Anyway to specify a different user to the host machine for docker volume?

我的主机(主机名:mzhao)上没有/home/abc1。

然后我这样做了:

[mzhao@mzhao ~]$ docker run -it --user nobody -v home/abc1:/home/abc1 centos
bash-4.2$ id
uid=99(nobody) gid=99(nobody) groups=99(nobody)

在我的主机 (mzhao) 上,如果我查看 /home:

[mzhao@mzhao home]$ ls -l |grep abc1
drwxr-xr-x   2 root     root          4096 Apr  2 21:26 abc1/

有没有办法在我的主机上的另一个用户下创建 /home/abc1?

我知道 docker 用户指南提到了这一点: auto-creation of the host path has been deprecated.

但我只是好奇。这可能只是因为当用户 "docker command" 并将该目录指定为卷时主机上不存在该路径。

根据 Dockerfile 参考指南,您可以在 Dockerfile 中指定一个用户:

USER USER daemon The USER instruction sets the user name or UID to use when running the image and for any RUN, CMD and ENTRYPOINT instructions that follow it in the Dockerfile.

参考以下link找到的参考here

因此,例如,您可以这样做:

FROM foo
MAINTAINER bar
USER nobody

COPY file /to/point/b
RUN command
ENTRYPOINT["command"]
CMD["command params"]