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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM