Rancher容器目錄持久化


最近一直在研究Rancher的持久化問題。

目前已找到兩種方式實現Rancher里的容器文件實現持久化方法。

方法一:

配置映射(只適用單個文件,不適用於目錄)

這個算不上是真正的持久化,只是相當於配置一個鍵值,然后鍵值內容等於文件內容,從而使得容器重啟后,該文件內容會自動讀取該鍵值內容,從而實現保持配置文件內容

(1)添加配置映射

 (2)輸入映射名稱(可隨意取,但是注意部分特殊字符無法使用),選中命名空間(建議選擇zabbix-agent容器所在命名空間),配置映射鍵(輸入需要保持的文件名字即可),輸入值(直接復制zabbix_agentd.conf的內容)。點擊確認

 (3)配置升級容器。找到相應的容器,點擊進入升級界面

下拉找到數據卷,做如下配置

 

 升級該容器,可以發現以下配置內容不會丟失了。當需要修改該文件時,直接在配置映射那里修改對應的值即可

 

方法二:

映射主機目錄:(同時使用於文件及目錄)

(1)指定該容器運行主機

因為這種方式,相當於將容器內部的文件映射至宿主機,映射之后,宿主機對應的文件和文件夾會自動更新到容器內(PS:注意是,宿主機上的文件或文件夾覆蓋容器內的)。如果不指定運行的主機,可能會導致,該容器升級之后,在另一台主機上運行,例如在192.168.68.233上運行,那么如果233上對應的文件夾是空的,將會使得容器內部對應的文件夾也會被清空,甚至會直接導致容器無法起來,因為它的文件被233上的文件夾覆蓋清空

對應容器點擊進入升級,找到主機調度部分,做以下配置

(2)將容器內的文件和文件夾復制到宿主機

以下命令在宿主機上執行

復制代碼
[root@localhost zhao]# docker cp ec66a6aa7b44:/etc/mongod.conf /zhao/etc/mongod.conf  #將容器內部文件映射至宿主機本地,ec66a6aa7b44為容器id
invalid output path: directory "/zhao/etc" does not exist      #建議都提前創建好對應目錄
[root@localhost zhao]# mkdir -p /zhao/etc
[root@localhost zhao]# docker cp ec66a6aa7b44:/etc/mongod.conf /zhao/etc/mongod.conf
[root@localhost zhao]# ls
db  etc  test
[root@localhost zhao]# cd etc/
[root@localhost etc]# ls      #可以看到宿主機本地也有了該容器內部的文件
mongod.conf
復制代碼

(3)配置映射主機目錄

對應容器點擊進入升級,找到數據卷部分,做以下配置。以將mongodb容器的配置文件映射到宿主機持久化為例。映射目錄也是一樣的方式

 確認升級,即可完成文件或目錄的映射持久化


免責聲明!

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



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