kubernetes實戰篇之docker鏡像的打包與加載


系列目錄

前面我們講到了使用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對象,而是直接跟要導入的對象,並且可以給導入的鏡像命名.


免責聲明!

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



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