挂载方式命令详解
卷管理命令说明
1 | [root@localhost _data]# docker volume --help |
volume 管理
1 | docker volume ls #列出所有卷 |
volume(固定目录数据卷挂载)
volume
可以通过docker volume
命令集被管理,创建的卷就是宿主机的固定文件夹/var/lib/docker/volumes/卷名/_data
- 手动创建卷,卷文件夹为空,挂载到容器,容器文件夹覆盖卷文件夹
- 手动创建卷,卷文件夹不为空,挂载到容器,卷文件夹覆盖容器文件夹
- 不存在的卷会自动创建,容器文件夹覆盖卷文件夹
固定目录挂载数据卷演示
查看卷列表,创建volume数据卷,查看卷信息,查看卷详情,查看卷文件夹没有文件
1 | #查看当前所有数据卷信息 |
手动创建卷,卷文件夹为空,挂载到容器,容器文件夹覆盖卷文件夹
1 | #运行容器挂载到卷 |
卷里面添加文件,进入容器查看,容器文件夹也能看到该文件,且可以访问成功
1 | #卷里面添加文件 |
关闭删除容器,宿主机文件夹文件依然存在,持久化成功
1 | #关闭容器,文件依然在卷里 |
手动创建卷,卷文件夹不为空,挂载到容器,卷文件夹覆盖容器文件夹
1 | #运行容器挂载到卷 |
不创建卷,直接挂载不存在的卷到容器,会自动创建卷,容器文件夹覆盖卷文件夹
1 | #查看当前的所有卷 |
bind mounts(自定义目录挂载)
- 运行容器挂载宿主机文件夹,宿主机文件夹不存在报错
- 宿主机文件夹为空,运行容器挂载宿主机文件夹,宿主机文件夹覆盖容器文件夹
- 宿主机文件夹非空,运行容器挂载宿主机文件夹,宿主机文件夹覆盖容器文件夹
自定义目录挂载数据卷演示
运行容器挂载宿主机文件夹,宿主机文件夹不存在,报错!
1 | [root@localhost _data]# docker run -d -p 8571:80 --name nginx_cb1 --mount type=bind,source=/var/lib/mydocker/nginx_b1,target=/usr/share/nginx/html nginx |
宿主机文件夹为空,运行容器挂载宿主机文件夹,宿主机文件夹覆盖容器文件夹
1 | #创建宿主机文件夹 |
宿主机文件夹添加文件,进入容器查看,容器文件夹也能看到该文件,且可以访问成功
1 | #宿主机文件夹添加文件文件 |
关闭删除容器,宿主机文件夹文件依然存在,持久化成功
1 | #关闭容器,宿主机文件夹文件依然存在 |
宿主机文件夹非空,运行容器挂载宿主机文件夹,宿主机文件夹覆盖容器文件夹
1 | #运行容器挂载宿主机文件夹 |
tmpfs mounts(内存挂载)
内存挂载数据卷演示
挂载到宿主机内存,容器文件夹文件被覆盖掉了
1 | #创建容器 |
停止容器再启动,重新访问失败,文件无法持久化
1 | #停止容器再启动,重新访问失败,文件无法持久化 |