谈起数据卷

我一直觉得是个枯燥无聊的话题

但是通过今天的实操和阅读

我发现其实并不是

其实就像走夜路

没有光明,第一次都是恐惧

但是如果走的次数多了

或者静下心来去克制恐惧

也许就会驾轻就熟或者等到黎明

拼一下,开始吧!!!

我就举两个例子,如果实操一遍,立马就明白了。

  • 数据卷

原理:将宿主机目录挂载到容器目录,原理和普通的挂载差不多。

数据卷的特点:

  1. 在容器启动初始化时,同步容器在宿主机的挂载点中的数据。
  2. 数据卷可以在容器内直接共享和重用。
  3. 可以直接修改容器在宿主机挂载点里面的数据内容。
  4. 数据卷的变化不会影响镜像的更新。
  5. 即使删除容器,该数据卷不受影响。
  • 容器数据卷

原理:将一个运行的容器作为数据卷,其他容器可以通过挂载这个容器实现数据共享。

容器数据卷的特点:具备容器的便捷性,可移动性。

  • 查看容器挂载点目录:

docker inspect 容器ID/容器名

找到mounts段:

注:Source:是宿主机目录、Destination:是容器目录

下面两个例子,跟着做一遍呗。

数据卷

:使用httpd镜像创建一个容器名为WEB1,将宿主机的/www目录挂载到WEB01中的/blog目录,然后在宿主机的/www目录下创建一个index.php,查看容器中的/blog目录中是否存在index.php文件。

 [root ~]# docker run -itd --name WEB01 -v /www:/blog httpd # -v 将宿主机的/www目录挂载到WEB01中的/blog目录
[root ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
f8911ae76a6e httpd "httpd-foreground" seconds ago Up seconds /tcp WEB01
[root ~]# cd /www
[root www~]# ls
[root www~]# touch index.php
[root www~]# docker exec WEB01 ls /blog
index.php

容器数据卷

例:使用httpd镜像创建一个容器数据卷,容器名为dvdata。使用centos镜像创建一个容器并挂载dvdata,在dvdata容器里面创建一个a.txt文件,查看容器centos的/home目录下是否有a.txt文件。

 [root ~]# docekr run -itd -v /home --name dvdata httpd #创建容器数据卷,名为dvdata,容器数据卷共享目录为/home。也就是说,其他容器挂载dvdata容器时其实挂载的是dvdata容器里的/home文件夹。
[root ~]# docker run -itd --name centos --volumes-from dvdata centos #创建centos容器,--volumes-from参数为指定容器数据卷。
[root ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
65d032a73313 centos "/bin/bash" seconds ago Up second centos
fe3dd37b258d httpd "httpd-foreground" minutes ago Up minutes /tcp dvdata
[root ~]# docker exec centos ls /home
[root ~]#
[root ~]# docker exec dvdata touch /home/a.txt #在容器数据卷中的/data目录下创建a.txt文件
[root ~]# docker exec centos ls /home
[root ~]# a.txt

现在觉得docker挺有意思,只要认真看文章,动手操作一下,好多云里雾里的问题都烟消云散了。希望对你们的学习有帮助,加油!!!

Docker自学纪实(三)Docker容器数据持久化的更多相关文章

  1. Docker 容器数据 持久化(系统学习Docker05)

    写在前面 本来是可以将数据存储在 容器内部 的.但是存在容器内部,一旦容器被删除掉或者容器毁坏(我亲身经历的痛,当时我们的大数据平台就是运行在docker容器内,有次停电后,不管怎样容器都起不来.以前 ...

  2. Docker深入浅出系列 | 容器数据持久化

    Docker深入浅出系列 | 容器数据持久化 Docker已经上市很多年,不是什么新鲜事物了,很多企业或者开发同学以前也不多不少有所接触,但是有实操经验的人不多,本系列教程主要偏重实战,尽量讲干货,会 ...

  3. docker 系列 - 容器数据持久化和数据共享

    docker 主要有两种数据存储形式, 一种是storage driver(也叫做 Graph driver), 另一种是 volume driver. stroage driver主要是存储那些无状 ...

  4. docker容器数据持久化

    将数据从宿主机挂载到容器中的三种方式 1.Volume 2.Bind Mounts 3.tmpfs Volumes:docker管理宿主机文件系统的一部分(/var/lib/docker/volume ...

  5. docker之容器数据持久化

    1.挂载本地目录为容器的数据存放目录 [root@node03 ~]# docker run -itd --name web01 -v /container_data/web:/data ubuntu ...

  6. 4.云原生之Docker容器数据持久化介绍与实践

    转载自:https://www.bilibili.com/read/cv15182308/?from=readlist #### 创建一个web容器并创建一个数据卷挂载到容器的/webapp目录下(默 ...

  7. Docker: docker container常用命令实战(2)-数据持久化

    应用服务是在容器中运行的,容器随时会被删除,如果是个mysql容器呢?数据存储在容器里,容器删除了,数据也没了,那就是个噩梦. 所以一些数据是需要存储在容器之外的,可以是宿主机,可以是网络存储位置上, ...

  8. Docker小白到实战之容器数据卷,整理的明明白白

    前言 上一篇把常用命令演示了一遍,其中也提到容器的隔离性,默认情况下,容器内应用产生的数据都是由容器本身独有,如果容器被删除,对应的数据文件就会跟着消失.从隔离性的角度来看,数据就应该和容器共存亡:但 ...

  9. Docker系列(16)- 容器数据卷

    什么是容器数据卷 docker的理念回顾 将应用和环境打包成一个镜像 数据?如果数据都在容器中,那么我们容器删除,数据就会丢失!新增一个需求:数据可以持久化 MySQL,容器删了等于删库跑路!新增一个 ...

随机推荐

  1. eleme 项目使用到的库

    探索eleme用到的库 xml re库 通过regex = re.compile(pattern)返回一个pattern对象, 通过该对象匹配正则表达式的字符串, 最好在模式中使用r'some'原始字 ...

  2. AOP切面编程

    1.JDK动态代理方式实现 public static UserService createService(){ //目标类 final UserService userService = new U ...

  3. 伪响应式开发(PC和Mobile分离)

    screen.width 无论把浏览器缩小还是放大,screen.width的值都不会改变,但是IE9及以上浏览器才支持这个属性. @media screen 媒体查询的巨大缺陷:切换页面布局的时候J ...

  4. (12)JavaScript之[事件][事件监听]

    事件 /** * 事件: * onload 和 onunload 事件在用户进入或离开页面时被触发 * * onchange事件常结合对输入字段的验证来使用 * onmouseover 和 onmou ...

  5. css3 animatehue属性

    -webkit-perspective(-moz,-o,perspective下同)表示透视范围大小: -webkit-transform-style很好理解了,表示变换类型,preserve-3d看 ...

  6. css3实现iPhone滑动解锁

    该效果的主要实现思路是给文字添加渐变的背景,然后对背景进行裁剪,按文字裁剪(目前只有webkit内核浏览器支持该属性),最后给背景添加动画,即改变背景的位置,背景动画效果如下(GIF录制时有卡顿,代码 ...

  7. Struts2_访问Web元素

    取得Map 类型的 request,session,application, HttpServletRequest,HttpSession,ServletContext的引用. 分访问 Map 类型和 ...

  8. java,eclipse中如何添加httpclient.jar

    1.Download 'Binary' package of the latest official release from the project download page. There sho ...

  9. jmeter之HTTP信息头管理器

    信息头管理器作用: HTTP信息头管理器在Jmeter的使用过程中起着很重要的作用,通常我们在通过Jmeter向服务器发送http请求(get或者post)的时候,往往后端需要一些验证信息,比如说we ...

  10. nginx的常用命令

    一.nginx的解压安装 #tar xzvf nginx-1.6.0.tar.gz #cd nginx-1.6.0 #./configure    --prefix=/home/weixin/loca ...