如何在 Docker 容器中挂载或符号链接单个文件

在这里插入图片描述
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 存储数据。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

mikes zhang

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值