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

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

3.创建数据卷

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

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

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

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

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

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


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

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

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

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

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

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

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

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

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


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

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

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. Add-Migration : 无法将“Add-Migration”项识别为 cmdlet、函数、脚本文件或可运行程序的名称

    解决办法: PM>Import-Module C:\Users\Administrator.MACKJON\.nuget\packages\entityframework\6.2.0\tools ...

  2. [费用流][BZOJ1070]修车

    修车 题目描述 同一时刻有位车主带着他们的爱车来到了汽车维修中心.维修中心共有M位技术人员,不同的技术人员对不同的车进行维修所用的时间是不同的.现在需要安排这M位技术人员所维修的车及顺序,使得顾客平均 ...

  3. 安装配置python环境,并跑一个推荐系统的例子

    1.官网下载python2.7,安装完后,在环境变量Path中加上这个路径 在控制台输入python,出现版本信息,就成功了. 2.我使用的是 pycharm,注册后,在 把自己的python.exe ...

  4. 《C#从现象到本质》读书笔记(五)第5章字符串第6章垃圾回收第7章异常与异常处理

    <C#从现象到本质>读书笔记(五)第5章字符串 字符串是引用类型,但如果在某方法中,将字符串传入另一方法,在另一方法内部修改,执行完之后,字符串的只并不会改变,而引用类型无论是按值传递还是 ...

  5. Oracle异常:Caused by: java.sql.SQLException: ORA-01536: 超出表空间 '登录名' 的空间限额 (JPA保存数据)

    原因: Oracle表空间为0,没有分配空间内存. 解决办法在代码框里: 1. 查看用户表空间的限额 select * from user_ts_quotas; max_bytes字段就是了 -1是代 ...

  6. JS基础-分支结构-循环-数组

    1.分支结构  1.if结构    语法:    if(条件){       语句块:    }    注意:      1.条件尽量是boolean的,如果不是boolean的,以下条件值,会当做f ...

  7. Effective C++ 笔记:条款 32 确定你的public继承塑造出正确的is-a关系

    32 : Make sure public inheritance models "is-a." 0 引言 Inheritance and Object-Oriented Desi ...

  8. Python开发——5.函数

    一.函数的定义 def test(x) "The Function definitions" x += return x def:定义函数的关键字 test:函数名 ():定义形参 ...

  9. Django Class Based View

    本节内容 一   Class Based View 基于类的视图 1.  类的视图 View 2.  类的视图 TemplateView 3.  类的视图 login_required解决方法 二   ...

  10. 3.装配Bean 基于XML

    一.实例化方式 3种bean实例化方式:默认构造.静态工厂.实例工厂 1.默认构造 <bean id="" class=""> 必须提供默认构造 2 ...