社区微信群开通啦,扫一扫抢先加入社区官方微信群
社区微信群
一、Docker容器数据卷是什么?
二、Docker容器数据卷能干嘛
卷就是目录或文件,存在于一个或多个容器中,由docker挂载到容器,但不属于联合文件系统,因此能够绕过Union File System提供一些用于持续存储或共享数据的特性:
卷的设计目的就是数据的持久化,完全独立于容器的生存周期,因此Docker不会在容器删除时删除其挂载的数据卷
三、Docker容器数据卷特点
四、方式一:直接添加命令
直接添加命令: docker run -it -v /宿主机绝对路径目录:/容器内目录 镜像名
1、宿主机(即:虚拟机linux环境根目录)目录如下:
2、容器内目录(即:docker中启动centos镜像的容器目录)如下:
[root@localhost ~]# docker run -it centos /bin/bash
3、执行 docker run -it -v /宿主机绝对路径目录:/容器内目录 镜像名 命令:会在步骤1和步骤2的目录中生成宿主机绝对路径目录和容器内目录,如下图:
[root@localhost ~]#docker run -it -v /myDataVolume:/dataVolumeContainer centos
[root@/f89b5db98ede]#
1)、宿主机目录下会生成myDataVolume目录
2)容器内目录下会生成dataVolumeContainer目录
4、查看数据卷是否挂载成功命令:出现下图红框部分表示成功挂载数据卷
[root@localhost ~]#docker inspect f89b5db98ede
5、查看容器和宿主机之间数据共享
1)在宿主机myDataVolume目录下创建host.txt文件
[root@localhost myDataVolume]# touch host.txt
[root@localhost myDataVolume]# ll
总用量 0
- rw- r- - r - -. 1 root root 0 7月 05 12 22;56 host.txt
2)在容器中的dataVolumeContainer目录下也有host.txt文件
[root@f89b5db98ede dataVolumeContainer]# ll
total 0
- rw- r- - r - -. 1 root root 0 Jul 13 02;56 host.txt
以上1)和2)两步骤说明容器和宿主机之间数据共享
注意:
6、容器停止退出后,主机修改后数据是否同步
1)退出容器,并停止
[root@f89b5db98ede dataVolumeContainer]# exit
[root@localhost /]#
2)主机修改数据
[root@localhost myDataVolume]# touch host02.txt
[root@localhost myDataVolume]# vim host02.txt
[root@localhost myDataVolume]#
3)重启启动容器,并进入容器的dataVolumeContainer目录查看
[root@localhost ]# docker start f89b5db98ede
f89b5db98ede
[root@localhost ]# docker attsch f89b5db98ede
[root@f89b5db98ede /]# cd /dataVolumeContainer/
[root@f89b5db98ede dataVolumeContainer]# ll
4)
[root@f89b5db98ede dataVolumeContainer]# cat hosts02.txt
host update 01
[root@f89b5db98ede dataVolumeContainer]#
结论:容器停止退出后,主机修改后数据是同步的
7、命令(带权限)
docker run -it -v /宿主机绝对路径目录:/容器内目录:ro 镜像名
1)命令中不带:ro ,容器中的文件可读可写,如下图:
2)命令中带有:ro ,容器中的文件只读,如下图:
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!