容器的存储机制

参考 http://dockone.io/article/128;http://dockone.io/article/129;

Docker镜像是由多个文件系统(只读层)叠加而成。当我们启动一个容器的时候,Docker会加载只读镜像层并在顶部添加一个读写层。如果运行中的容器修改了现有的一个已经存在的文件,那该文件将会从读写层下面的只读层复制到读写层,该文件的只读版本仍然存在,只是已经被读写层中该文件的副本所隐藏。当删除Docker容器,并通过该镜像重新启动时,之前的更改将会丢失。在Docker中,只读层及在顶部的读写层的组合被称为Union File System(联合文件系统)。

为了能够保存(持久化)数据以及共享容器间的数据,Docker提出了Volume的概念。简单来说,Volume就是目录或者文件,它可以绕过默认的联合文件系统,而以正常的文件或者目录的形式存在于宿主机上。

Volume可以将容器以及容器产生的数据分离开来,当使用docker rm my_container删除容器时,不会影响相关的数据。

Volume可以使用以下两种方式创建:

编写dockerfile:在Dockerfile中指定VOLUME /some/dir

在容器启动时执行命令:docker run -v /some/dir命令来指定

无论哪种方式都是做了同样的事情。它们告诉Docker在主机上创建一个目录(默认情况下是在/var/lib/docker下),然后将其挂载到指定的路径(例子中是:/some/dir)。当删除使用该Volume的容器时,Volume本身不会受到影响,它可以一直存在下去。

容器数据的备份

在数据备份前首先需要了解数据容器的概念,常见的使用场景是使用纯数据容器来持久化数据库、配置文件或者数据文件等。官方的文档上有详细的解释。

当使用数据容器时,那做备份是相当容易的:

$ docker run --rm --volumes-from dbdata -v $(pwd):/backup debian tar cvf /backup/backup.tar /var/lib/postgresql/data

该示例应该会将Volume里所有的东西压缩为一个tar包

跨主机共享卷

同主机共享:

容器也可以与其它容器共享Volume。

docker run --name my_container -v /some/path ...

docker run --volumes-from my_container --name my_container2 ...

上面的命令将告诉Docker从第一个容器挂载相同的Volume到第二个容器,它可以在两个容器之间共享数据。

如果执行docker rm -v my_container命令,而上方的第二容器依然存在,那Volume不会被删除,如果不使用docker rm -v my_container2命令删除第二个容器,那它会一直存在

跨主机共享:

方法一:分布式数据卷BitTorrent的同步

方法二:通过NFS共享数据

方法三:Rancher实现共享卷和跨主机数据访问

具体可参考链接http://www.dockerinfo.net/2384.htmlhttps://zhuanlan.zhihu.com/p/21096218

Linux配置nfs服务

参考http://www.linuxidc.com/Linux/2016-04/129848.htm

在商店中添加nfs驱动服务

添加数据卷

添加一个mysql服务,将数据库数据存在数据卷中

选择上周创建的webapp应用中的mysql服务,为其添加卷,卷驱动为提前添加的rancher-nfs驱动,配置格式为“卷名:数据路径”

查看添加后结果

使用mysql图形化界面工具,建立连接,连接地址为rancher宿主机ip地址,端口为mysql容器所暴露出的端口号,通过sql文件生成表

查看宿主机内搭建nfs服务时所配置共享目录,sharedata目录下的文件,运行mysql服务所产生的数据已经被共享到此目录下

访问网站,并登录数据库中所存储的用户名与密码,数据访问成功

验证服务升级或者删除后数据是否还存在

将mysql服务升级

重新连接mysql图形界面 数据表仍然存在

网络

本地网络docker0

http://www.cnblogs.com/xhyan/p/6235999.html

overlay网络(CNI)

http://cizixs.com/2016/06/13/docker-overlay-network

http://tonybai.com/2016/02/15/understanding-docker-multi-host-networking/

https://qinghua.github.io/docker-overlay-network/

ipsec网络与安全策略

http://lzozhuyk.blog.51cto.com/782498/277920

rancher中级(一)(rancher的存储,网络)的更多相关文章

  1. rancher 笔记 之 rancher应用中心

    rancher应用中心 rancher 的应用中心 可以 自定义,在 admin -> catlog 中 指定路劲 rancher的应用中心 就是一个git项目 指定git的路劲的时候 填写的是 ...

  2. Filecoin:一种去中心化的存储网络(一)

    开始初步了解学习Filecoin,如下是看白皮书的内容整理. 参考: 白皮书中文版 http://chainx.org/paper/index/index/id/13.html 白皮书英文版 http ...

  3. 区域存储网络(SAN)与 网络直接存储(NAS)

    随着互联网及网络应用的飞速发展,数据信息存储系统所需处理的数据类型也呈爆炸性增长,这使数据信息存储系统面临前所未有的挑战.附加式网络存储装置(Network Attached Storage,缩写为N ...

  4. 安装rancher以及使用rancher倒入kubernetes集群和添加及管理集群

    1.docker安装rancher [root@rancher ~]# docker run -d --name rancher --restart=unless-stopped -p : -p : ...

  5. NGK公链:通用型存储网络

    NGK公链,是一条发展中的通用型存储网络. NGK的运用归结与存储场景.NGK通证的运用归结于支付场景.个人数据被中心化服务商买卖.被大数据服务商使用.被无数的商务及销售人员窃取.那么NGK的运用场景 ...

  6. rancher中级(二)(rancher中添加证书及操作虚拟主机)

    制作一个ssl证书 首先了解关于ssl证书的背景知识:http://www.cnblogs.com/zxj015/p/4458066.html SSL证书包括: 1,CA证书,也叫根证书或者中间级证书 ...

  7. 基于Linux的oracle数据库管理 part3( 存储 网络 常用命令 )

    主要内容 1. 常用存储模式 2. 配置网络 3. 维护指令 常用存储模式 - 文件系统 优点:管理方便, 缺点:读写慢 - 裸设备 只没有被格式化和挂载的磁盘, 只能有程序直接访问, 不能被操作系统 ...

  8. Filecoin:一种去中心化的存储网络(二)

    开始初步了解学习Filecoin,如下是看白皮书的内容整理. 参考: 白皮书中文版 http://chainx.org/paper/index/index/id/13.html 白皮书英文版 http ...

  9. 【OpenStack项目管理-CPU/内存/存储/网络 配额管理】

    参考资料: OpenStack如何管理项目和用户:http://os.51cto.com/art/201312/422010.htm Nova.Cinder.Neutron资源配额设置:http:// ...

随机推荐

  1. bzoj 1043 下落的圆盘 —— 求圆心角、圆周长

    题目:https://www.lydsy.com/JudgeOnline/problem.php?id=1043 求出每个圆没被覆盖的长度即可: 特判包含和相离的情况,注意判包含时 i 包含 j 和 ...

  2. Git 系列之tag的用法---为你的代码标记版本号

    版权声明:本文为博主原创文章,未经博主允许不得转载.   目录(?)[-] 本地仓库操作 远程仓库操作 其他 tag 操作   在做app开发的时候经常有版本的概念,比如v1.0.v1.1之类的,不同 ...

  3. 最长递增子序列(LIS)

    最长递增子序列(Longest Increasing Subsequence) ,我们简记为 LIS. 题:求一个一维数组arr[i]中的最长递增子序列的长度,如在序列1,-1,2,-3,4,-5,6 ...

  4. tx1 高温不启动问题解决办法

    执行: vim /boot/extlinux/extlinux.conf 修改为下面红框标注的样式: 拷贝此文件下所有内容到/boot目录下. 检查是否成功:

  5. 使用TRY CATCH进行SQL Server异常处理

    TRY...CATCH是Sql Server 2005/2008令人印象深刻的新特性.提高了开发人员异常处理能力.没有理由不尝试一下Try.. Catch功能. *      TRY 块 - 包含可能 ...

  6. JVM类加载(4)—加载器

    定义: 虚拟机设计团队把类加载阶段中“通过一个类的全限定名来获取描述此类的二进制字节流”这个动作放到虚拟机外部去实现,以便让应用程序自己决定如何去获取所需要的类.实现这个动作的代码模块称之为“类加载器 ...

  7. linux命令-rpm查询包

    安装了哪些rpm包呢 [root@wangshaojun Packages]# rpm -qa /////查看全部安装的包 [root@wangshaojun Packages]# rpm -qa l ...

  8. CSDN优秀博客连接,博客之星连接。

    点击链接 获得[红杏出墙]插件,FQ上网无压力!谷歌搜索无压力! 2013年度CSDN十大博客之星 TOP 作者 专注领域 博客地址 邹晓艺 机器学习及算法 zouxy09 2 王然 潜在的集大成者 ...

  9. 3. 文件上传靶机实战(附靶机跟writeup)

    upload-labs 一个帮你总结所有类型的上传漏洞的靶场 文件上传靶机下载地址:https://github.com/c0ny1/upload-labs   运行环境 操作系统:推荐windows ...

  10. 【lunux-make: *** 没有规则可以创建目标“install”。 停止。问题】

    [root@localhost nginx-1.8.0]# make installmake: *** 没有规则可以创建目标“install”. 停止.