如何把Docker容器中的数据保存到本地磁盘上?

要把 Docker 容器中的数据保存到本地磁盘上,我们可以使用 Docker 数据卷(Volume)。
数据卷是一个可供一个或多个容器使用的特殊目录,它绕过 UFS,可以提供很多有用的特性:

  1. 数据卷可以在容器之间共享和重用。
  2. 对数据卷的修改会立马生效。
  3. 对数据卷的更新,不会影响镜像。
  4. 数据卷默认会一直存在,即使容器被删除。

我们可以通过以下几种方式使用数据卷:

  1. 匿名挂载:
docker run -v /data ubuntu 

这会在主机的 /var/lib/docker/volumes/ 目录创建一个匿名的数据卷,映射到容器的 /data 目录。

  1. 指定名称:
docker run -v data:/data ubuntu

这会创建一个名为 data 的数据卷,映射到容器的 /data 目录。

  1. 使用主机目录挂载:
docker run -v /host/dir:/data ubuntu 

这会直接挂载主机的 /host/dir 目录到容器的 /data 目录。

  1. 读写权限控制:
docker run -v /host/dir:/data:ro ubuntu 

加了 :ro 之后,会给容器以只读权限挂载主机的 /host/dir 目录。
所以,使用数据卷可以方便地保存容器产生的数据到本地磁盘上。数据卷是Docker进阶的重要概念,熟练使用数据卷可以让我们在 Docker 中实现持久化存储、共享数据等高级用法。