kubernetes實戰篇之docker映象的打包與載入

周國通發表於2019-07-08

系列目錄

前面我們講到了使用nexus搭建docker映象倉庫,操作還是有點複雜的,可能有的童鞋僅僅是想嘗試kubernetes功能,並不想在搭建倉庫上花費過多時間,但是又想在不同的主機之間傳遞映象.其實可以通過docker save命令來實現,通過docker save把一個映象儲存為tar格式壓縮檔案,然後在要使用這個映象機器上執行docker load命令來載入這個映象.

複製檔案的方式不方便對檔案進行版本管理,大家為了方便測試可以這樣玩玩,強烈建議生產環境中不要這麼做.

通過docker save儲存映象為檔案

docker save命令的格式如下

docker save -o <path for generated tar file> <image name></image>
  • -o或者--output,指定輸出檔案(tar格式)的位置,這裡的位置不僅僅是要輸出的目錄,還包括要儲存的tar檔案的名稱

  • image name 要儲存的映象的名稱

例如,以下命令把alpine:latest映象儲存為名為alpine.tar檔案(儲存位置為當前目錄,也可以通過指定絕對路徑把映象儲存到指定位置)

docker save -o alpine.tar alpine:latest

儲存為檔案以後,我們就可以通過cp,scp,ftp等工具把映象檔案複製到目標電腦上

通過docker load載入儲存的tar檔案

命令格式如下:

docker load -i <path to image tar file>

-i同--input,指定一個tar檔案

我們執行命令docker load -i alpine.tar就可以在目標機器上載入我們儲存的alpine映象了.

使用docker export/import來打包/載入映象

使用docker export/import與使用docker save/load用法類似,不同的是docker save是把一個映象儲存為tar檔案,而docker export是把一個執行的容器的檔案系統的快照儲存為壓縮檔案,通過docker import從匯出的檔案系統中建立一個映象

注意,docker import並不是把匯出的容器還原,而是從中生成一個映象.
通過docker import 匯入的映象將丟失所有後設資料和歷史記錄,實際專案中我們並不關心容器的歷史記錄和後設資料,我們關係的是應用程式的正常執行的優化,使用這種方式生成的映象一定程度上減小了映象的體積.

  • docker export 匯出容器為壓縮檔案

命令格式如下:

docker export -o <path for generated tar file> <container name>

此命令類似於docker save,指定要輸出的檔案路徑和檔名,後面跟上要匯出的容器的名稱或者id

例如通過docker export -o alpine.tar c054把一個執行的容器(id開頭為c054)匯出為檔案.

我們可以檢視生成的alpine.tar檔案,裡面其實是一個linux檔案系統

  • docker import 把匯出的檔案系統匯入為映象

我們通過命令docker import alpine.tar myalpine把剛匯出的容器檔案系統匯出為映象,並且命名為myalpine

注,這裡與docker load不同的是這裡不需要-i來指定input物件,而是直接跟要匯入的物件,並且可以給匯入的映象命名.

相關文章