教程 docker tutorial

绑定挂载(Bind mounts)

绑定挂载(Bind mounts)是将宿主机的文件或目录直接挂载到容器内的机制,使容器可以访问宿主机的数据。

1. Bind mounts 特点

  • 数据存储在宿主机指定路径,容器删除不会影响宿主机文件
  • 容器可以实时访问宿主机文件,适合开发和调试
  • 需要注意权限和安全问题

2. 使用 bind mount

bash
docker run -d \
  -v /host/path:/container/path \
  myapp

`

  • /host/path:宿主机目录
  • /container/path:容器内挂载路径

示例:

bash
docker run -d \
  -v /home/user/app/config:/app/config \
  myapp

3. 只读绑定挂载

bash
docker run -d \
  -v /host/path:/container/path:ro \
  myapp
  • ro:只读,防止容器修改宿主机数据
  • 默认挂载为可读写(rw)

4. 与卷的区别

特性 卷(Volumes) Bind Mounts
数据位置 Docker 管理 宿主机指定路径
生命周期 独立于容器 与宿主机目录绑定
使用场景 生产环境数据持久化 开发调试、日志挂载
性能 高 取决于宿主机文件系统

5. 使用注意事项

  • 避免在生产环境随意挂载宿主机敏感目录
  • 确保容器运行用户有访问宿主机目录权限
  • 调试容器时,Bind mount 可以实现代码实时同步
  • 配合 Docker Compose 管理更方便:
yaml
services:
  app:
    image: myapp
    volumes:
      - ./config:/app/config:ro

绑定挂载提供了灵活的数据访问方式,非常适合开发和调试环境,但在生产环境使用需注意安全和权限管理。