绑定挂载(Bind mounts)
绑定挂载(Bind mounts)是将宿主机的文件或目录直接挂载到容器内的机制,使容器可以访问宿主机的数据。
1. Bind mounts 特点
- 数据存储在宿主机指定路径,容器删除不会影响宿主机文件
- 容器可以实时访问宿主机文件,适合开发和调试
- 需要注意权限和安全问题
2. 使用 bind mount
docker run -d \
-v /host/path:/container/path \
myapp
`
/host/path:宿主机目录/container/path:容器内挂载路径
示例:
docker run -d \
-v /home/user/app/config:/app/config \
myapp
3. 只读绑定挂载
docker run -d \
-v /host/path:/container/path:ro \
myapp
ro:只读,防止容器修改宿主机数据- 默认挂载为可读写(rw)
4. 与卷的区别
| 特性 | 卷(Volumes) | Bind Mounts |
|---|---|---|
| 数据位置 | Docker 管理 | 宿主机指定路径 |
| 生命周期 | 独立于容器 | 与宿主机目录绑定 |
| 使用场景 | 生产环境数据持久化 | 开发调试、日志挂载 |
| 性能 | 高 | 取决于宿主机文件系统 |
5. 使用注意事项
- 避免在生产环境随意挂载宿主机敏感目录
- 确保容器运行用户有访问宿主机目录权限
- 调试容器时,Bind mount 可以实现代码实时同步
- 配合 Docker Compose 管理更方便:
services:
app:
image: myapp
volumes:
- ./config:/app/config:ro
绑定挂载提供了灵活的数据访问方式,非常适合开发和调试环境,但在生产环境使用需注意安全和权限管理。
相关内容
- 构建自定义 Registry 本章节介绍如何搭建和管理 Docker 私有 Registry,包括部署自定义 Registry、配置存储与访问权限、镜像推送与拉取流程,以及安全与备份策略,满...
- 与 Kubernetes 的比较与协作 本章节对比 Docker 与 Kubernetes 的异同点,并讲解两者的协作方式,包括容器管理、编排、服务发现、部署流程和最佳实践,帮助理解容器生态系统中的应...
- Rootless Docker 与安全边界 本章节介绍 Rootless Docker 的使用方法及安全边界管理,包括非 root 容器运行原理、配置步骤、权限限制和网络隔离策略,提升容器安全性并降低宿主...
- 常用命令速查表 本章节提供 Docker 常用命令速查表,包括镜像管理、容器操作、网络配置、卷管理、日志查看及调试命令,帮助开发者快速查找和使用 Docker 命令,提高容器管...
- 参考文档与学习资源 本章节整理 Docker 官方文档、社区资源、教程和示例项目,帮助开发者系统学习 Docker 技术,掌握容器化应用的构建、运行、管理和优化方法。
- 示例项目与练习 本章节提供 Docker 示例项目和练习,包括容器化应用部署、Docker Compose 多服务编排、镜像优化、网络配置和存储管理,帮助开发者通过实战加深对...