文档章节

用 volume container 共享数据 - 每天5分钟玩转 Docker 容器技术(42)

CloudMAN
 CloudMAN
发布于 2017/07/17 06:10
字数 500
阅读 88
收藏 1

volume container 是专门为其他容器提供 volume 的容器。它提供的卷可以是 bind mount,也可以是 docker managed volume。下面我们创建一个 volume container:

我们将容器命名为 vc_data(vc 是 volume container 的缩写)。注意这里执行的是 docker create 命令,这是因为 volume container 的作用只是提供数据,它本身不需要处于运行状态。容器 mount 了两个 volume:

  1. bind mount,存放 web server 的静态文件。

  2. docker managed volume,存放一些实用工具(当然现在是空的,这里只是做个示例)。

通过 docker inspect 可以查看到这两个 volume。

# docker inspect vc_data

......

 

"Mounts": [

    {

        "Source": "/root/htdocs",

        "Destination": "/usr/local/apache2/htdocs",

        "Mode": "",

        "RW": true,

        "Propagation": "rprivate"

    },

    {

        "Name": "1b603669398d117e499449862636a56c4f4c804d447c680e7b3ba7c7f5e52205",

        "Source": "/var/lib/docker/volumes/1b603669398d117e499449862636a56c4f4c804d447c680e7b3ba7c7f5e52205/_data",

        "Destination": "/other/useful/tools",

        "Driver": "local",

        "Mode": "",

        "RW": true,

        "Propagation": ""

    }

],

......

其他容器可以通过 --volumes-from 使用 vc_data 这个 volume container:

205.png

三个 httpd 容器都使用了 vc_data,看看它们现在都有哪些 volume,以 web1 为例:

# docker inspect web1

......

 

"Mounts": [

    {

        "Source": "/root/htdocs",

        "Destination": "/usr/local/apache2/htdocs",

        "Mode": "",

        "RW": true,

        "Propagation": "rprivate"

    },

    {

        "Name": "1b603669398d117e499449862636a56c4f4c804d447c680e7b3ba7c7f5e52205",

        "Source": "/var/lib/docker/volumes/1b603669398d117e499449862636a56c4f4c804d447c680e7b3ba7c7f5e52205/_data",

        "Destination": "/other/useful/tools",

        "Driver": "local",

        "Mode": "",

        "RW": true,

        "Propagation": ""

    }

],

......

web1 容器使用的就是 vc_data 的 volume,而且连 mount point 都是一样的。验证一下数据共享的效果:

可见,三个容器已经成功共享了 volume container 中的 volume。

下面我们讨论一下 volume container 的特点:

  1. 与 bind mount 相比,不必为每一个容器指定 host path,所有 path 都在 volume container 中定义好了,容器只需与 volume container 关联,实现了容器与 host 的解耦

  2. 使用 volume container 的容器其 mount point 是一致的,有利于配置的规范和标准化,但也带来一定的局限,使用时需要综合考虑。

另一种在容器之间共享数据的方式是 data-packed volume container,下一节讨论。

二维码+指纹.png

© 著作权归作者所有

共有 人打赏支持
CloudMAN
粉丝 503
博文 360
码字总数 221704
作品 0
海淀
加载中

评论(3)

凡羊羊
凡羊羊

引用来自“CloudMAN”的评论

引用来自“凡羊羊”的评论

你好,这个mount可以动态的mount吗?就是说在容器运行的过程中进行mount操作

回复@凡羊羊 : 不能
好的,谢谢
CloudMAN
CloudMAN

引用来自“凡羊羊”的评论

你好,这个mount可以动态的mount吗?就是说在容器运行的过程中进行mount操作

回复@凡羊羊 : 不能
凡羊羊
凡羊羊
你好,这个mount可以动态的mount吗?就是说在容器运行的过程中进行mount操作
万能日志数据收集器 Fluentd - 每天5分钟玩转 Docker 容器技术(91)

前面的 ELK 中我们是用 Filebeat 收集 Docker 容器的日志,利用的是 Docker 默认的 logging driver ,本节我们将使用 来收集容器的日志。 Fluentd 是一个开源的数据收集器,它目前有超过 50...

CloudMan6
2017/11/08
0
0
万能日志数据收集器 Fluentd - 每天5分钟玩转 Docker 容器技术(91)

前面的 ELK 中我们是用 Filebeat 收集 Docker 容器的日志,利用的是 Docker 默认的 logging driver ,本节我们将使用 来收集容器的日志。 Fluentd 是一个开源的数据收集器,它目前有超过 50...

CloudMAN
2017/11/08
0
0
网络模型 - 每天5分钟玩转 Docker 容器技术(169)

本节我们讨论 Kubernetes 网络这个重要主题。 Kubernetes 作为编排引擎管理着分布在不同节点上的容器和 Pod。Pod、Service、外部组件之间需要一种可靠的方式找到彼此并进行通信,Kubernetes ...

cloudman6
05/16
0
0
用 Weave Scope 监控集群 - 每天5分钟玩转 Docker 容器技术(175)

创建 Kubernetes 集群并部署容器化应用只是第一步。一旦集群运行起来,我们需要确保一起正常,所有必要组件就位并各司其职,有足够的资源满足应用的需求。Kubernetes 是一个复杂系统,运维团...

cloudman6
05/31
0
0
每天5分钟玩转Docker容器技术(一)

写在最前面 《每天5分钟玩转Docker容器技术》是一个有关容器技术的教程,有下面两个特点: 系统讲解当前最流行的容器技术 从容器的整个生态环境到各种具体的技术,从整体到细节逐一讨论。 重...

2017/12/25
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

day60-20180818-流利阅读笔记-待学习

钉钉:工作的归工作,生活的…也归工作? 毛西 2018-08-18 1.今日导读 你用过“钉钉”么?被公司要求使用钉钉的感受是如何的呢?这款阿里巴巴旗下的移动办公社交平台在弯道超车微信、为许多企...

aibinxiao
36分钟前
6
0
Kubernetes的HTTPS和证书问题,汇总

通过Kubernetes建立服务网站,需要干的事情和HTTPS和证书问题,汇总如下: 建立Nginx服务器 搞服务器第一步,Ubuntu 18.04设置静态IP 安装Nginx服务。 Kubernetes的deployment使用 创建服务,...

openthings
51分钟前
1
0
php 使用redis锁限制并发访问类

1.并发访问限制问题 对于一些需要限制同一个用户并发访问的场景,如果用户并发请求多次,而服务器处理没有加锁限制,用户则可以多次请求成功。 例如换领优惠券,如果用户同一时间并发提交换领...

豆花饭烧土豆
今天
0
0
Linux环境搭建 | 手把手教你配置Linux虚拟机

在上一节 「手把你教你安装Linux虚拟机」 里,我们已经安装好了Linux虚拟机,在这一节里,我们将配置安装好的Linux虚拟机,使其达到可以开发的程度。 Ubuntu刚安装完毕之后,还无法进行开发,...

良许Linux
今天
0
0
(三)Nginx配置·续

概述 前文写了关于Nginx环境配置,但是还没有完,接下来将会继续讲三个相关的配置 主要是以下三个 1.Nginx访问日志 2.Nginx日志切割 3.静态文件不记录日志和过期时间 Nginx访问日志 1.先看看...

杉下
今天
1
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部