1.本节课主要讲解如何在Docker内部及容器之间管理数据。
容器中管理数据主要有两种方式:
数据卷(Data volumes)
数据卷容器(Data volume containers)

2.数据卷:是一个可供一个或多个容器使用的特殊目录,它绕过UFS,可以提供很多有用的特性:
a.数据卷可以在容器之间共享和重用
b.对数据卷的修改会立马生效
c.对数据卷的更新,不会影响镜像
d.卷会一直存在,直到没有容器使用
*数据卷的使用,类似于 Linux 下对目录或文件进行 mount。

3.创建数据卷

  1. $ docker run -idt -P -v /webapp my/centos:v888 /bin/bash ##a、/webapp为创建的数据卷 b、my/centos:v888为镜像 c、-P外网到容器的一个硬射的IP
  2. ecde369d5c9ca75eaf394caaa1f0ce5d63e1323739c657595bd01f68d5d2d304
  3. $ docker attach ecde369d5c9ca75eaf394caaa1f0ce5d63e1323739c657595bd01f68d5d2d304 ##进入守护状态运行的容器中

  1. $ docker run -idt -P --name web1 -v /webapp my/centos:v888 /bin/bash ##/webapp上面创建的容器,web1和/webapp目录是共享的,但对数据卷的更新,不会影响镜像
  2. 01808bde8cba1c5dab720043af7c607625b5b769cac8133c09aef02c246b6312
  3. $ docker attach web1 ##通过web1名称进入守护状态运行的容器中

-v表示创建一个数据卷并且挂载到容器里。
--name指定容器的名称
-d是指守护状态下运行(daemon)
启动之后,使用docker attach命令进入守护状态运行的容器中

除此之外,还可以挂载宿主机的一个目录来映射到容器里面作为数据卷

  1. $ docker run -idt -P --name web2 -v /home/xm6f/dev/test:/opt/docker my/centos:v888 /bin/bash
  2. d0aeebbcd269143e1345ace90992d21c5d9687375f39524a9ed25d6dd2a5b54f
  3. $ docker attach web2

表示宿主机的目录/home/xm6f/dev/test映射到容器中的/opt/docker目录。


你会发现宿主机/home/xm6f/dev/test目录创建的文件跟容器/opt/docker目录的文件一样。

docker挂载的数据卷默认是可读可写的,若要指定为只读,可以加权限限制:ro

  1. $ docker run -idt -P --name web3 -v /home/xm6f/dev/test:/opt/docker:ro my/centos:v888 /bin/bash

也可以挂载单个文件到容器

  1. docker run -idt -P --name web4 -v ~/.bash_history:/.bash_history my/centos:v888 /bin/bash

4.数据卷容器:是一个正常的容器,专门用来提供数据卷供其他容器挂载
建立数据卷容器:

  1. $ docker run -d -v /database --name db my/centos:v888 echo database
  2. $ docker logs db

在其他容器中使用--volumes-from挂载db容器中的数据卷

  1. $ docker run -idt -v /aaa --name bbb my/centos:v888 /bin/bash
  2. $ docker run -idt --volumes-from bbb --name ccc my/centos:v888 /bin/bash


可以看到数据卷容器,在多个容器中挂载之后是数据共享的。

5.数据卷不会被自动删除,要删除一个数据卷,必须在删除最后一个挂着该数据卷的容器是指定-v参数,如下

  1. docker rm -v 数据卷名字

Docker 数据卷和数据卷容器的更多相关文章

  1. 聊聊Docker数据卷和数据卷容器

    当程序在容器运行的时候,特别是需要与其他容器中的程序或容器外部程序进行沟通交流,这时需要进行数据交换,作为常用的两种沟通数据的方式,网络通信与文件读写是需要提供给程序的支持, [数据卷] 文件是数据持 ...

  2. Docker学习笔记:镜像、容器、数据卷

    核心概念 镜像:一个只读的模板,类似虚拟机的镜像. 容器:可以理解为镜像的一个运行实例.运行时类似于沙箱,多个容器互相独立. 仓库:存放镜像文件的地方. 镜像 命令表格 命令 解释 选项 docker ...

  3. Docker数据卷和数据卷容器

    是什么 数据卷设计的目的,在于数据的永久化,他完全独立于容器的生存周期,因此,Docker不会在容器删除时删除其挂载的数据卷,也不会存在类似的垃圾收集机制对容器引用的数据卷进行处理.类似我们Redis ...

  4. Docker-数据卷和数据容器卷

    容器中管理数据主要有两种方式: 数据卷(Data Volumes) 数据卷容器(Data Volumes Dontainers) 数据卷 使用-v可以挂载一个本地的目录到容器中作为数据卷. [root ...

  5. Docker 使用指南 (四)—— 数据卷的使用

    一.数据卷的使用 有时候需要使用数据库,但是又希望它的数据能保存在本地,Docker中提供了数据卷可以供你方便的操作数据.数据卷是一个可供一个或多个容器使用的特殊目录,它绕过 UFS,可以提供很多有用 ...

  6. docker--数据卷与数据卷容器

    docker--数据卷与数据卷容器 1.数据卷: 创建一个volumes的文件夹: [root@docker01 /]# mkdir volumes [root@docker01 /]# ls bin ...

  7. Docker:网络及数据卷设置 [四]

    一.Docker网络设置 默认情况下,docker会创建一个桥接网卡[docker 0],docker有2种映射方式,一种是随机映射,一种是指定映射 提示:生产场景一般不使用随机映射,但是随机映射的好 ...

  8. Docker Kubernetes Volume 本地数据卷

    Docker Kubernetes Volume 本地数据卷 emptyDir 当Pod分配到Node时,首先创建一个空卷,并挂载到Pod中的容器. Pod中的容器可以读取和写入卷中的文件. 当Pod ...

  9. Docker Kubernetes Volume 网络数据卷

    Docker Kubernetes Volume 网络数据卷 由于支持网络数据卷众多 今天只拿nfs作为案例. 支持网络数据卷 nfs iscsi glusterfs awsElasticBlockS ...

随机推荐

  1. 微信公众号的分享接口,分享提示config:fail,invalid signature的解决办法(2017年12月)

    微信中打开网页,使用微信右上角菜单中自带的分享功能的经历及总结: 最开始,微信分享页面时,直接读取页面的标题(title)和页面中的第一张符合条件的图片[此种方式在2017-03-29之前管用,这一天 ...

  2. Python集合(set)类型的操作 (转)

    python的set和其他语言类似, 是一个无序不重复元素集, 基本功能包括关系测试和消除重复元素. 集合对象还支持union(联合), intersection(交), difference(差)和 ...

  3. 最短路径(SP)问题相关算法与模板

    相关概念: 有向图.无向图:有向图的边是双行道,无向图的边是单行道.在处理无向图时,可以把一条无向边看做方向相反的两条有向边. 圈 cycle / 回路 circuit:在相同顶点上开始并结束且长度大 ...

  4. spring入门--spring入门案例

    spring是一个框架,这个框架可以干很多很多的事情.感觉特别吊.但是,对于初学者来说,很难理解spring到底是干什么的.我刚开始的时候也不懂,后来就跟着敲,在后来虽然懂了,但是依然说不明白它到底是 ...

  5. HTML第二篇

    1>压缩文件格式:使用.zip格式较好 2>charset(字符集)  国内最新字符集格式为:gb18030   国际上通用的字符集是:UTF-8 3>添加图片 <img sr ...

  6. xsd

    2018-10-08 <xsd:annotation> <xsd:documentation> <![CDATA[ 说明文档 ]]> </xsd:docume ...

  7. 在centos7上使用最简单的方法把php脚本做成服务,随开机启动运行

    1.准备文件:coffeetest.service # copy to /usr/lib/systemd/system # systemctl enable coffeetest.service [U ...

  8. python_day1_程序交互

    程序交互 在编写程序过程中总会有程序与用户交互的场景出现,这里面提到python会使用一个方法:input 用法: 例如:请用户输入一个账号 input"Please input your ...

  9. 中国剩余定理poj1006

    中国剩余定理即解一组带余除法的不定方程组(同余式组解法). 例如:求一个最小数x,已知x%3=2且x%5=3且x%7=2. 思路就是: 1.先从(3,5)的公倍数中找一个%7=1的最小公倍数,这里是1 ...

  10. 在Azure DevOps Server(TFS系统)中部署回退/回滚方案(Rollback)

    概述 Azure DevOps Server(之前名TFS)是微软公司实现软件研发.测试和部署一体化的全流程解决方案.在近几年的研发过程中,Azure DevOps Server 大幅增强了软件部署过 ...