rancher中級(一)(rancher的存儲,網絡)

 

容器的存儲機制

參考 http://dockone.io/article/128http://dockone.io/article/129html

Docker鏡像是由多個文件系統(只讀層)疊加而成。當咱們啓動一個容器的時候,Docker會加載只讀鏡像層並在頂部添加一個讀寫層。若是運行中的容器修改了現有的一個已經存在的文件,那該文件將會從讀寫層下面的只讀層複製到讀寫層,該文件的只讀版本仍然存在,只是已經被讀寫層中該文件的副本所隱藏。當刪除Docker容器,並經過該鏡像從新啓動時,以前的更改將會丟失。在Docker中,只讀層及在頂部的讀寫層的組合被稱爲Union File System(聯合文件系統)。mysql

爲了可以保存(持久化)數據以及共享容器間的數據,Docker提出了Volume的概念。簡單來講,Volume就是目錄或者文件,它能夠繞過默認的聯合文件系統,而以正常的文件或者目錄的形式存在於宿主機上。   linux

Volume能夠將容器以及容器產生的數據分離開來,當使用docker rm my_container刪除容器時,不會影響相關的數據。git

 

Volume能夠使用如下兩種方式建立:github

編寫dockerfile:在Dockerfile中指定VOLUME /some/dirweb

在容器啓動時執行命令:docker run -v /some/dir命令來指定sql

 

不管哪一種方式都是作了一樣的事情。它們告訴Docker在主機上建立一個目錄(默認狀況下是在/var/lib/docker下),而後將其掛載到指定的路徑(例子中是:/some/dir)。當刪除使用該Volume的容器時,Volume自己不會受到影響,它能夠一直存在下去。docker

 

容器數據的備份

 

在數據備份前首先須要瞭解數據容器的概念,常見的使用場景是使用純數據容器來持久化數據庫、配置文件或者數據文件等。官方的文檔上有詳細的解釋。數據庫

 

當使用數據容器時,那作備份是至關容易的:安全

 

$ 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

相關文章
相關標籤/搜索