参考:

https://blog.csdn.net/wlcs_6305/article/details/121694902

Docker 卷和绑定挂载用于将主机操作系统上的目录绑定到容器文件系统中的位置。虽然它们通常用于挂载整个目录,但您也可以使用它们来符号链接单个文件。

从主机到 Docker 的符号链接
如果您要覆盖整个配置文件列表,则挂载整个目录效果很好,但如果您只想定位一个,则需要使用单文件挂载。如果您希望将多个挂载到同一目录但来自不同位置,这也很有用。它的工作方式很像常规的 Linux 符号链接,除了它通过 Docker 处理并跨越主机和容器文件系统之间的桥梁。

正常的 Docker 卷挂载要求您挂载到目标 目录,卷将链接到该目录。

docker volume create nginx-config

docker run -d \
--name devtest \
--mount source=nginx-config,target=/etc/nginx \
nginx:latest

但是,对于绑定安装,源可以是主机上的目录或文件。卷挂载不支持这一点,虽然您通常想使用它们,但如果您想挂载单个文件,则必须使用较低级别的绑定挂载。

为此,您可以运行带有标志的容器,–mount type=bind如果您指定路径,则它支持单个文件:

docker run -it \ --mount type=bind,source=/path/file.cfg,target=/etc/example/file.cfg \ 
nginx sh

或者,如果你真的想使用 Docker 卷,你可以只用你计划挂载的文件创建一个卷,将它挂载到容器中的临时目录,然后在容器内创建一个实际的符号链接(在 Docker 构建脚本中) 将链接到带有文件的临时目录。这可能是一个比绑定挂载更糟糕的解决方案,但它确实允许您通过 Docker 卷 API 存储数据。
————————————————
版权声明:本文为CSDN博主「mikes zhang」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/wlcs_6305/article/details/121694902