docker基础二:docker容器数据卷介绍、使用、数据容器卷volumes-from的使用

举报
橙子园 发表于 2022/05/26 00:35:33 2022/05/26
【摘要】 你的点赞与评论是我最大的创作动力! 一、简介 命名的容器挂载数据卷,其他容器通过挂载这个父容器来实现数据共享,挂载数据卷的容器称为数据卷容器,以下二、三主要讲与宿主机挂载容器数据卷。四讲其他容器通...

你的点赞与评论是我最大的创作动力!

在这里插入图片描述

一、简介

命名的容器挂载数据卷,其他容器通过挂载这个父容器来实现数据共享,挂载数据卷的容器称为数据卷容器,以下二、三主要讲与宿主机挂载容器数据卷。四讲其他容器通过volumes-from来挂载父容器来实现数据共享。

通俗点容器数据卷是将docker中的容器(container)中产生的数据持久化到宿主机文件中并实现数据共享,其他容器可以通过数据卷来链接到这个容器,实现数据共享。

二、直接命令添加(使用-v命令添加)

添加大体有两种方式,首先要明白我们添加数据卷通常是在新建并启动容器时关联的,离不开上次说的操作容器的命令:https://blog.csdn.net/Chenftli/article/details/91412352

1.不带权限的命令(宿主机运行新建并启动容器),
docker run -it -v /宿主机目录绝对路径:/容器内目录 镜像名

  
 
  • 1

绑定后容器和宿主机之间对应的目录数据共享,且容器具有修改、执行等权限,容器停止后,主机修改后的数据也会同步到容器中。

2.带权限命令(下面指定为只读权限):
docker run -it -v /宿主机目录绝对路径:/容器内目录:ro 镜像名

  
 
  • 1

绑定后容器和宿主机之间对应的目录数据共享,但容器只具有只读权限,容器停止后,主机修改后的数据也会同步到容器中。

三、DockerFile添加
1.创建一个DockerFile文件,如果是一个项目的化可以在项目的顶级目录下创建这个文件,之后我们会通过这个DockerFile文件来build成我们所需要的镜像。

DockerFile中我们主要是通过VOLUME指令来给镜像添加一个或多个数据卷
例如:

FROM centos
VOLUME ["/dataVolume1", /dataVolume2]
CMD echo  "-------successful-----------"
CMD /bin/bash

  
 
  • 1
  • 2
  • 3
  • 4

上述中FROM是它依赖的镜像,这里依赖了centos。
VOLUME是挂载数据卷,/dataVolume1、/dataVolume2都是容器中需要实现数据共享的目录(挂载数据卷的目录)。
注意:宿主机共享的目录是自动生成的,因为无法判断人写的宿主机的目录是否具有。所以只有使用默认的目录。这个目录可以在构建容器实例后通过docker inspect 容器名称(或ID)来查看volumes参数。
CMD 是运行shell命令的,上面两条第一条相当于在控制台上输出-------successful-----------,第二条相当于打开容器的/bin/bash命令窗口。

2.然后build生成一个新的镜像

例如:
docker build -f /path/datafile -t mycentos .
上述命令中-f为强制执行,可以避免一些麻烦,/path/datafile为DataFile文件的路径, -t为容器分配一个伪终端,在上一篇文章有写。mycentos为新建镜像的名称。注意最后有 “.” 结尾。

3.run命令用新生成的镜像运行一个容器

例如:

docker run -it mycentos

  
 
  • 1

上述中-it指令是以交互式模式运行并给一个伪终端,mycentos是刚才新建的镜像的名称。

4.通过这种方式生成的容器,可以看出容器和宿主机之间对应的目录数据共享,且容器具有修改、执行等权限,容器停止后,主机修改后的数据也会同步到容器中。
四、volumes-from实现父子容器数据共享
1.如下命令方式:
docker run -it --name con2 --volumes-from con1 mycentos

  
 
  • 1

上述命令中,run运行一个新的容器con2,–name是给容器命名。–volumes-from是挂载数据卷,将con2容器的数据卷(这里con1容器的数据卷当然是通过二、三两种方法挂载的)挂载到con1中,实现父子容器共享。对于功能来说,下面是测试过的共享的:
父子容器对应的目录数据共享,各容器修改、添加数据等都是同步共享的。数据卷的生命周期一直持续到没有容器使用它为止。

文章来源: blog.csdn.net,作者:橙子园,版权归原作者所有,如需转载,请联系作者。

原文链接:blog.csdn.net/Chenftli/article/details/91444960

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。