通过前面8篇文章的学习,我们已经学会了docker的安装、docker常用的命令已经docker镜像修改后提交的远程镜像仓库及提交到公司的私服仓库中。接下来,我们再来学学Docker另外一个重要的东西-容器数据卷。
我们先来看看一个场景:我们有多个docker容器需要使用到同一个数据,比如说A服务和B服务都需要使用到数据库D,在数据库容器D销毁后,重启,数据库中的数据不能够丢失。我们通过前面的学习已经知道了,容器如果被销毁后再重启,这个时候,容器中的原有数据就丢失了,那么这种情况下,数据库容器D中存储的数据应该放在哪里?容器自身?如果存在容器自身肯定不行,那如果存放在非容器中,那么在容器中怎么能访问到?能不能像Linux一样,可以直接挂载盘符呢?答案是肯定有的。就是本文介绍的Docker容器数据卷。好了,接下来,咱们就来开始学习这个。
大家好,我是凯哥Java(kaigejava),乐于分享,每日更新技术文章,欢迎大家关注“凯哥Java”,及时了解更多。让我们一起学Java。也欢迎大家有事没事就来和凯哥聊聊~~~
先填坑:容器卷记得加入以下参数:
--privileged-true
为什么需要加这个呢?
docker run -d -p 5000:5000 -v /n/myregistry/:/tmp/registry --privileged=true registry
其中 -v 后面的是什么?
-v:添加自定义的容器卷
冒号左边:宿主机的路径(docker的路径==>也就是凯哥的虚拟机中的路径)
冒号右边:容器内的路径(容器内的路径==>也就是私服容器所在镜像路径)
--privileged=true:放开权限。
理解如下图:
运行一个带有容器卷存储功能的容器实例命令公式
docker run -it --privileged=true -v /宿主机绝对路径目录:/容器内目录 镜像名称
持久化
特点:
1:数据卷可在容器之间共享或者是重用数据
2:卷中的更改可以直接实时生效
3:数据卷中的更改不会包含在镜像的更新中
4:数据卷的周期一直持续到没用容器使用它为止