zoukankan      html  css  js  c++  java
  • rancher中级(一)(rancher的存储,网络)

     

    容器的存储机制

    参考 http://dockone.io/article/128http://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

  • 相关阅读:
    hihocoder 1049 后序遍历
    hihocoder 1310 岛屿
    Leetcode 63. Unique Paths II
    Leetcode 62. Unique Paths
    Leetcode 70. Climbing Stairs
    poj 3544 Journey with Pigs
    Leetcode 338. Counting Bits
    Leetcode 136. Single Number
    Leetcode 342. Power of Four
    Leetcode 299. Bulls and Cows
  • 原文地址:https://www.cnblogs.com/gentleman-c/p/7387962.html
Copyright © 2011-2022 走看看