谈起数据卷

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

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

我发现其实并不是

其实就像走夜路

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

但是如果走的次数多了

或者静下心来去克制恐惧

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

拼一下,开始吧!!!

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

  • 数据卷

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

数据卷的特点:

  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. 如何在smarty模板中执行php代码

    Smarty模板主要的目的是分离逻辑层和表现层,所以在模板中不应该包含逻辑部分,逻辑层也不应该含有HTML.要在模板中插入逻辑程序的这种做法"非常"不被推荐,在你的case中. 如 ...

  2. GET和POST区别和用法

    很多人都分不清GET与POST的区别,以及什么时候用GET?什么时候用POST? GET和POST两种方法都是将数据送到服务器,但你该用哪一种呢? HTTP标准包含这两种方法是为了达到不同的目的.PO ...

  3. 【ubuntu】出现device not managed连接不上网络

    ubuntu安装好后显示“device not managed” 1. 编辑/etc/NetworkManager/NetworkManager.conf: sudo gedit /etc/Netwo ...

  4. js删除数组里指定的元素

    js删除数组里指定的元素 首先可以给JS的数组对象定义一个函数,用于查找指定的元素在数组中的位置,即索引,代码为: Array.prototype.indexOf = function(val) { ...

  5. Socket网络通信之BIO

    Socket网络通信之BIO 如果要让两台计算机实现通信,需要的条件:ip,port,协议. 目前我们用的最多的就是TCP/IP协议和UDP协议.TCP三次握手,所以比较慢,且安全:UDP速度快,但是 ...

  6. 关于UnitOfWork

    按照http://martinfowler.com/eaaCatalog/unitOfWork.html这篇文章的介绍,UnitOfWork是为了维护对象的变化,A Unit of Work keep ...

  7. iOS实现头像选取(照相或者图片库)、大小等比缩放、生成圆形头像

    //弹出actionsheet.选择获取头像的方式 //从相册获取图片 -(void)takePictureClick:(UIButton *)sender { // /*注:使用,需要实现以下协议: ...

  8. 浅谈position、table-cell、flex-box三种垂直(水平)居中技巧

    一.首先是喜闻乐见的position方法,经典且万能,用法如下: 父元素{ position:relative; } 子元素{ position:absolute; top:50%; left:50% ...

  9. 【Android学习入门】Android studio基本设置

    1.背景设置 依次选择File->Settings-->Appearance & Behaviour->Apprearance,然后勾选 show line number. ...

  10. 在线图片转base64

    function ImgToBase64(url, callback, outputFormat) { // outputFormat 用于指定输出格式的,遵循 MIME 标准 var canvas ...