現場(環境): CentOS 7.4 套件:Docker
原因:
很多時候大家都希望能夠將自己處理的很辛苦的Docker Container匯出。
可是不知道該怎麼做比較好?
網路上最常聽到的匯出方式就是save & export
這兩種有什麼差別?
處理方式:
看到save/export 的說明。可以看到字面上的意思。
save :Save an image to a tar archive.
export: Stream the contents of a container as a tar archive.
save指的是將本機上原生的Docker Image匯出,
也就是當初你拉回來的最原始的Container環境。
export是針對你現在設定過後的Container環境做匯出。
*前提會建議這個Container沒有掛載外部資料夾的狀況下進行。
Save:
這個部份比較常用再無法連接外網的主機上。
或者是連線比較慢的網路環境。
這時候到已經下載過這個Container的主機上執行save 指令。
#docker save [Image名稱:Tag] > [你要匯出的名稱].tar
這樣就將這台機器上的MariaDB Image匯出一個mariaO.tar的檔案。
復原的方式:
在要匯入的主機使用 load 進行匯入。
範例:docker load < [匯出Image的tar檔]
#docker load < mariaO.tar
這時候查詢這台主機的Image資訊。就可以看到他的存在。
接著就是使用這個Image啟動Container而已。
Export :
打包我現在所操作過的環境,移植到其他主機或者給別人用。
#docker export [Container的名字] > [你要匯出的名稱].tar
#docker export maria01 > Mariadb.tar
還原方法:
#docker import – [定義名稱/TAG] < [匯出的名稱].tar
匯入後他會以Image的方式存在~
之後就一樣用docker run的方法產生一個新的Container出來。
跟Save不一樣的是,這邊就包含了你剛剛的所有設定狀況。
<全篇完>
參考網址:
https://blog.hinablue.me/docker-bi-jiao-save-export-dui-yu-ying-xiang-dang-cao-zuo-chai-yi/
http://www.ichiayi.com/wiki/tech/docker/howto/backup