Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/unix/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/docker/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Unix 如何在没有主机挂载的情况下与Docker共享特定文件?_Unix_Docker_Dockerfile - Fatal编程技术网

Unix 如何在没有主机挂载的情况下与Docker共享特定文件?

Unix 如何在没有主机挂载的情况下与Docker共享特定文件?,unix,docker,dockerfile,Unix,Docker,Dockerfile,我有一个容器,我想从中向另一个容器公开文件,而不使用主机装载 在我的Dockerfile中,在复制必要的文件后,我将/etc/nginx/目录声明为卷: COPY ./src/frontend/config/nginx.conf /etc/nginx/nginx.conf COPY ./src/frontend/config/sites-available/default /etc/nginx/sites-enabled/default VOLUME ["/etc/nginx/"] 但由于整个

我有一个容器,我想从中向另一个容器公开文件,而不使用主机装载

在我的Dockerfile中,在复制必要的文件后,我将
/etc/nginx/
目录声明为卷:

COPY ./src/frontend/config/nginx.conf /etc/nginx/nginx.conf
COPY ./src/frontend/config/sites-available/default /etc/nginx/sites-enabled/default
VOLUME ["/etc/nginx/"]
但由于整个目录充当一个卷,因此
/etc/nginx/
的原始内容被我的卷的内容所掩盖:

dk run --volumes-from other_container -it --rm nginx:1.12.1 /bin/bash
> ls /etc/nginx
> nginx.conf sites-enabled
这是我想避免的事情。然而,Docker似乎并不真正支持将现有文件作为卷公开

VOLUME ["/etc/nginx/nginx.conf"]
如果按上述方式使用卷,则会收到以下错误消息:

cannot mount volume over existing file, file exists /var/lib/docker/overlay2/b557a0d1ef5026f581f7ee69321de854d8f77b935c0442458f26cada855e5bf2/merged/etc/nginx/nginx.conf

不使用主机装载是否可以解决此问题?

装载Docker卷时,它们会隐藏装载点上以前的任何内容


因此,必须将卷装入单独的目录,例如/etc/nginx/extra/或任何其他目录。需要调整所有其他配置文件,以便从正确的目录进行包含。

在其他地方装载,符号链接到位?您可以将其符号链接到另一个文件夹,然后将文件夹卷装到名称容器。对于另一个容器,您将提供此命名容器