跳到主要内容

Docker 数据卷

数据卷(Data Volumes)可将宿主机的文件目录映射到容器中,其特性如下:

  • 可在容器之间共享。
  • 对数据卷内数据的修改会立刻生效,不管是在宿主机修改还是在容器内修改。
  • 数据卷的更新不影响镜像,将应用和数据解耦。

创建数据卷

docker volume create -d local test 命令会在宿主机的 docker/volumes 路径下创建 test 文件夹。

绑定数据卷

docker run--mount 选项,可以在创建容器时把宿主机的任意路径挂载到容器内作为数据卷。

该选项支持三种类型的数据卷:

  1. volume:普通数据卷,映射宿主机的 docker/volumes 路径。
  2. bind:绑定数据卷,映射宿主机的指定路径。
  3. tmpfs:临时数据卷,映射宿主机的内存。

注意

  1. 本地路径必须是绝对路径,容器内路径可以是相对路径
  2. Docker 挂载的数据卷,默认权限是读写(rw),可以通过 ro 参数设定为只读。
  3. 如果直接挂载文件到容器,编辑文件后可能造成文件的 inode 改变,从而导致 Docker 给出报错信息。因此建议只挂载文件夹,不要挂载文件。

数据卷容器

专门提供数据卷给其他容器挂载的容器,自身不需要保持在运行状态。