什么是绑定挂载?
绑定挂载是 Docker 的一项强大功能,允许将主机上的文件或目录挂载到容器中。这实现了主机系统和 Docker 容器之间的无缝交互。以下是绑定挂载的一些主要特征:
将宿主文件映射到容器文件:
绑定挂载允许将主机中的特定文件或目录映射到容器中的相应文件或目录。
灵活的存储位置:
与 Docker 卷不同,绑定挂载可以存储在主机系统上的任何位置。
直接修改:
主机上的 Docker 容器和非 Docker 进程都可以随时修改绑定挂载中的文件。
Dockerfile 中不支持:
绑定挂载不能在 Dockerfile 中使用。它们只能在
docker run命令期间配置。
绑定挂载的良好用例
绑定挂载在以下场景中特别有用:
共享配置文件:
将配置文件从主机共享到一个或多个容器,以确保应用程序行为的一致性。
开发和测试环境:
在 Docker 主机和容器上的开发环境之间共享源代码或构建工件。这样开发人员就可以在主机上编辑文件,并实时查看容器内反映的更改。
使用绑定挂载启动 NGINX
为了理解绑定挂载的实际作用,让我们使用一个实际示例,即使用绑定挂载启动NGINX容器。这将演示如何将目录从主机系统映射到容器。
使用绑定挂载启动 NGINX 的步骤:
运行 NGINX 容器: 使用以下 Docker 命令启动 NGINX 容器并将当前目录 (
$(pwd)) 绑定挂载到/app容器中:
docker container run -d --name nginx --mount type=bind,source=$(pwd),target=/app nginx
--name nginx:命名容器nginx。--mount type=bind:指定挂载类型为bind。source=$(pwd):将主机上的源目录定义为当前工作目录。target=/app:将源目录映射到/app容器内部。
验证绑定挂载:
用于
docker inspect确认绑定挂载已成功创建:
docker inspect nginx
检查
Mounts输出中的部分以确保主机和容器目录之间的映射。
与已挂载目录交互:
对主机目录中的文件所做的任何更改都会立即反映在
/app目录下的容器内,反之亦然。

