科百科
当前位置: 首页 范文大全

dockerfile中的上下文怎么理解(中VOLUME到底有什么用)

时间:2023-07-31 作者: 小编 阅读量: 2 栏目名: 范文大全

如果-v和volume指定了同一个位置,会发生什么事呢?并不然,其实VOLUME指令只是起到了声明了容器中的目录作为匿名卷,但是并没有将匿名卷绑定到宿主机指定目录的功能。总结其实一般的dockfile如果不是数据库类的这种需要持久化数据到磁盘上的应用,都是无需指定volume的。指定volume只是为了避免用户忘记指定-v时导致的数据全部在容器中,这样的话容器一旦被删除所有的数据都丢失了。

dockerfile中的上下文怎么理解?FROM centos:latestVOLUME /share/data #声明容器中/share/data为匿名卷,今天小编就来聊一聊关于dockerfile中的上下文怎么理解?接下来我们就一起去研究一下吧!

dockerfile中的上下文怎么理解

FROM centos:latestVOLUME /share/data #声明容器中/share/data为匿名卷

这个指令很容易和启动时的-v指令搞混淆,他们之间到底有什么区别呢,什么时候需要使用volume呢?volume指令指定的位置在容器被删除以后数据文件会被删除吗?如果-v和volume指定了同一个位置,会发生什么事呢?

volume和run -v的区别,什么时候需要使用volume

容器运行时应该尽量保持容器存储层不发生写操作,对于数据库类需要保存动态数据的应用,其数据库文件应该保存于卷(volume)中。为了防止运行时用户忘记将动态文件所保存目录挂载为卷,在Dockerfile 中,我们可以事先指定某些目录挂载为匿名卷,这样在运行时如果用户不指定挂载,其应用也可以正常运行,不会向容器存储层写入大量数据。

那么Dockerfile中的VOLUME指令实际使用中是不是就是跟docker run中的-v参数一样是将宿主机的一个目录绑定到容器中的目录以达到共享目录的作用呢?

并不然,其实VOLUME指令只是起到了声明了容器中的目录作为匿名卷,但是并没有将匿名卷绑定到宿主机指定目录的功能。

当我们生成镜像的Dockerfile中以Volume声明了匿名卷,并且我们以这个镜像run了一个容器的时候,docker会在安装目录下的指定目录下面生成一个目录来绑定容器的匿名卷(这个指定目录不同版本的docker会有所不同),我当前的目录为:/var/lib/docker/volumes/{容器ID}。

总结: volume只是指定了一个目录,用以在用户忘记启动时指定-v参数也可以保证容器的正常运行。比如mysql,你不能说用户启动时没有指定-v,然后删了容器,就把mysql的数据文件都删了,那样生产上是会出大事故的,所以mysql的dockerfile里面就需要配置volume,这样即使用户没有指定-v,容器被删后也不会导致数据文件都不在了。还是可以恢复的。

volume指定的位置在容器被删除以后数据文件会被删除吗

volume与-v指令一样,容器被删除以后映射在主机上的文件不会被删除。

如果-v和volume指定了不同的位置,会发生什么事呢?

会以-v设定的目录为准,其实volume指令的设定的目的就是为了避免用户忘记指定-v的时候导致的数据丢失,那么如果用户指定了-v,自然而然就不需要volume指定的位置了。

总结

其实一般的dockfile如果不是数据库类的这种需要持久化数据到磁盘上的应用,都是无需指定volume的。指定volume只是为了避免用户忘记指定-v时导致的数据全部在容器中,这样的话容器一旦被删除所有的数据都丢失了。

那么为什么dockerfile中不提供一个能够映射为主机目录:容器目录这样的指令呢?其实这样的设计是有道理的,如果在dockerfile中指定了主机目录,这样dockerfile就不具备了可移植性了,毕竟每个人所需要映射的目录可能是不同的,那么最好的办法就是把这个权利交给每个运行这个dockerfile的人,所以才会有 run -v 主机目录:容器目录 这样的指令。

    推荐阅读
  • 有什么动物会产卵(这种生物能在真空中产卵)

    水熊也称水熊虫,人称小美,是对缓步动物门生物的俗称,有记录的约有900余种,其中许多种是世界性分布的。水熊虫虽小,但从巍峨高山到无尽深海,从汩汩热泉到南极冰层,处处都有它们的身影,甚至真空状态下,它们还能正常产卵。缓步动物门具有全部四种隐生性及缺氧隐生,能够在恶劣环境下停止所有新陈代谢。缓步动物也因此被认为是生命力最强的动物。曾经有缓步动物隐生超过120年的记录。

  • 能量双击卡怎么获得(有什么获得的方法)

    我们一起去了解并探讨一下这个问题吧!能量双击卡怎么获得本任务有效期截止到2020年8月30日,每个用户在有效期内限领取一次。领取道具之后,可以在背包中查看。使用后,5分钟内对好友的一个能量球最多可以收取两次。蚂蚁森林的道具有多种获取方式,如通过任务获取、通过活动获取、通过积分兑换等,具体以页面说明为准。

  • 兔子的养殖技术(养兔子怎么养)

    兔子的种类有很多,不仅有作物宠物饲养的,还有肉兔、皮毛用兔之分。根据饲养目的选择健康、合适的品种,再根据不同的生长阶段分为幼兔舍、配种舍、孕兔舍等,做好消毒措施,保持养殖环境的干燥。长到青年期后要提高饲料中蛋白质、维生素的营养寒冷,以青饲为主,等到5月龄左右适当减少日食量。控制好饲养密度,做好分群管理,做好病虫害防治措施。

  • 新鲜蕨菜可以直接食用吗(新鲜蕨菜能不能直接食用)

    接下来我们就一起去了解一下吧!新鲜蕨菜的食用方法有很多种类,比如说经过开水焯过以后,去掉其中含有的黏质以及土腥味,就可以直接凉拌或者爆炒食用了。新鲜蕨菜经过焯过以后,还可以搭配猪肉、牛肉、鸡蛋等焖炖食用,也具有很好的食用口感。

  • 幼儿园评价小朋友的话语(下面10句评语可供参考)

    能积极参加幼儿园的各项活动。你聪明可爱,对老师有礼貌,和同伴能友好地游戏。平时讲卫生,能主动保持班级的清洁。上课能认真听讲,老师布置的任务能一丝不苟地完成。老师希望你能多吃点饭,积极锻炼身体,使自己长得棒棒的。老师希望你进入小学后更加努力,敢于在集体面前大胆发表自己的见解。老师希望你到小学后要认真学习,按时完成作业,养成良好的学习习惯。你尊敬老师,团结同伴,热爱劳动,动手能力较强,画的画可真漂亮。

  • 成都理工大学的名气怎么样(成都理工大学与太原理工大学有可比性吗)

    成都理工大学和太原理工大学都是一流学科建设高校;两校在所在省的地位区别是很大的;成理在四川省排名相对比较靠后一点;省内其他双一流高校的实力要强于成理。太原理工大学是原211高校,2021年软科排名是113名。优势学科基本上是与地矿工程相关的学科。有15个一级学科博士点和34个一级学科硕士点。建有8个国家级科研平台和50多个省部级科研平台。获批了15个国家一流本科专业和8个国家特色专业。

  • 淝水之战简介(淝水之战简介200字)

    拥有绝对优势的前秦败给了东晋,国家也因此衰败灭亡,北方各民族纷纷脱离了前秦的统治,分裂为后秦和后燕为主的几个政权。

  • 小儿湿疹推拿按摩手法(小儿湿疹推拿按摩手法图)

    小儿湿疹症状皮疹分布多见于头面,颈项,关节,褶皱之处,呈红斑点状丘疹或疱疹,糜烂,渗出黄水或鳞屑癣苔,瘙痒剧烈。小儿湿疹推拿治疗原则治则:清热利湿,凉血解毒。小儿湿疹辩证加减推拿湿性者:加清天河水,补肾经,加强清热利湿的作用。