Docker 数据卷
数据卷(Data Volumes)可将宿主机的文件目录映射到容器中,其特性如下:
- 可在容器之间共享。
- 对数据卷内数据的修改会立刻生效,不管是在宿主机修改还是在容器内修改。
- 数据卷的更新不影响镜像,将应用和数据解耦。
创建数据卷
docker volume create -d local test
命令会在宿主机的 docker/volumes
路径下创建 test
文件夹。
绑定数据卷
docker run
的 --mount
选项,可以在创建容器时把宿主机的任意路径挂载到容器内作为数据卷。
该选项支持三种类型的数据卷:
- volume:普通数据卷,映射宿主机的
docker/volumes
路径。 - bind:绑定数据卷,映射宿主机的指定路径。
- tmpfs:临时数据卷,映射宿主机的内存。
注意:
- 本地路径必须是绝对路径,容器内路径可以是相对路径。
- Docker 挂载的数据卷,默认权限是读写(rw),可以通过
ro
参数设定为只读。 - 如果直接挂载文件到容器,编辑文件后可能造成文件的 inode 改变,从而导致 Docker 给出报错信息。因此建议只挂载文件夹,不要挂载文件。
数据卷容器
专门提供数据卷给其他容器挂载的容器,自身不需要保持在运行状态。