一、簡介
實際項目中,有時候可能會遇到需要批量備份已經存在的鏡像,又或者說項目地服務器暫時無法拉取鏡像等等原因,這時候我們就可以將公司鏡像倉庫中的鏡像在本地打成tar壓縮包,然後通過xftp傳輸到項目地服務器中,然後再項目地中重新加載這些鏡像即可。本文將總結如何批量打包Docker鏡像並且重新載入鏡像,主要包含兩個步驟:
- 壓縮鏡像爲tar包;
- 重新載入tar包生成鏡像;
這裏以nginx鏡像爲例,詳細的操作步驟請見下面。
二、 壓縮鏡像爲tar包
【a】 從鏡像倉庫中拉取nginx鏡像到用來打tar包的服務器
docker pull 192.168.2.78:5000/library/nginx:latest
【b】查詢鏡像的imageID
docker images | grep 192.168.2.78:5000/library/nginx
可見鏡像ID爲:5fa3fabcd585,這個後面要用到。
【c】 保存鏡像到tar包
docker save 5fa3fabcd585 -o /opt/ly-sm-nginx-latest.tar
注意:5fa3fabcd585表示是上面一步查詢出來的imageID。
打包成功我們查看opt目錄已經有ly-sm-nginx-latest.tar壓縮包:
ll /opt/ | grep ly-sm-nginx-latest.tar
三、 重新載入tar包生成鏡像
【a】將tar包傳輸到項目地的服務器中的某個目錄下
這裏放到/opt目錄下爲例:
【b】使用docker load重新加載鏡像
docker load -i /opt/ly-sm-nginx-latest.tar
【c】重新打鏡像標籤
docker tag sha256:5fa3fabcd58525bcec53e0f38e855134d2e25f88cd28ae1d7f874a3d21cfe5a0 192.168.35.128:5000/develop/ly-sm-nginx:latest
【d】查看是否成功載入鏡像
docker images | grep nginx
可以發現,成功將鏡像重新加載到新的服務器中,這時候就可以使用docker push推送到項目地鏡像倉庫中升級即可,同時我們也看到重新載入的鏡像ID跟壓縮成tar包之前是一樣的。
四、總結
以上就是線下備份鏡像或者打包鏡像到項目地重新加載鏡像的方法,在某個特殊場景下還是用處挺大的。