Docker容器数据卷的使用

作用:
 1.容器的持久化
 2.容器间的继承(主要体现在dockerfile)+共享数据
特点:
 1.卷中的更改可以直接生效
 2.数据卷中的更改不会包含在镜像的更新中
 3.数据卷的生命周期,会一直持续到没有容器使用它为止
使用命令:docker run -it -v /宿主机绝对路径目录:/容器目录 镜像名(如果宿主机和容器,没有目录则自动创建 并且使两个路径相互挂载)
演示:
 1.docker run -it -v /HostComputer:/container centos此时在宿主机的根目录下创建了一个名为HostComputer的文件夹,并在容器的根目录下创建了一个名为container 的文件夹(HostComputer文件夹和container已经相互挂载)
图解:
在这里插入图片描述
在这里插入图片描述
2.使用命令查看是否挂载成功:docker inspect 容器id
 首先我们查看一下此时正在运行的容器id:docker ps
在这里插入图片描述
  查看挂载是否成功: docker inspect 7aed84125df8
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
3.此时说明已经挂载成功,来测试验证一下
 3.1给宿主机的HostComputer文件夹,添加一个文件,并写入(任意)(这里使用::qwe)字符串
 在这里插入图片描述
在这里插入图片描述
 3.2然后去容器container目录下查看是否同步
 在这里插入图片描述
 3.3在容器中对host.txt 进行修改,查看宿主机下的host.txt是否也跟着进行了改变
  在这里插入图片描述
  在这里插入图片描述
  (注:容器停止退出后,宿主机修改后数据也是同步,只要容器再次启动,修改的数据会自动更新到容器中
  由此可得出结论此时的挂载是双向挂载,无论是宿主机或者容器进行改变,其他一方,都会跟着改变;
  那么以下这个例子,我们来做,宿主机修改数据,容器也跟着改变,但是容器本身不能修改数据(也就是容器只能读,不能写
  命令格式(带权限):docker run -it -v /宿主机绝对路径目录:/容器内目录:ro 镜像名
  docker run -it -v /HostComputer01:/container01:ro centos 此时在宿主机的根目录下创建了一个名为HostComputer01的文件夹,并在容器的根目录下创建了一个名为container01 的文件夹(注意:此时容器目录后面追加了RO权限)
  在这里插入图片描述
  在这里插入图片描述
  查看挂载
在这里插入图片描述
测试,修改容器(宿主机修改,数据可以同步到容器中,容器不能对数据进行修改)
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/x15011238662/article/details/84952043