docker volume 是 Docker 官方推荐的方式,用于管理容器生成的数据。

特点:

  • 由 Docker 管理: 卷是由 Docker 自己创建和管理的,你可以通过 docker volume lsdocker volume createdocker volume rm 等命令进行操作。
  • 抽象层: Docker 负责卷在主机文件系统上的具体存储位置。你通常不需要关心卷在主机上的物理路径,它默认存储在 /var/lib/docker/volumes/ 下(Linux)。
  • 易于备份和迁移: Docker 提供了方便的命令来备份、恢复和迁移卷。例如,你可以将卷挂载到另一个容器中进行备份。
  • 跨平台兼容性: Docker 卷在不同操作系统(Linux, Windows, macOS)下表现一致,因为 Docker 抽象了底层文件系统。
  • 性能优化: Docker 可以针对卷的 I/O 性能进行优化,特别是对于大量小文件或高并发读写的场景。
  • 默认权限管理: Docker 在创建卷时会处理好权限问题,确保容器能够正确读写。
  • 适用于: 数据库数据、日志文件、配置等。

创建和使用示例:

  1. 创建卷:
    docker volume create mydata
  2. 运行容器并挂载卷:
    docker run -d --name myapp -v mydata:/app/data myimage

这里 mydata 是 Docker 卷的名称,/app/data 是容器内部的路径。

相关链接