一步一步教你批量導入和導出Docker鏡像文件
維護服務器時,如果服務器沒有網絡,還需要批量加載多個Docker鏡像文件,我們可以使用腳本通過循環來自動化這個操作過程。
批量導入docker鏡像文件
- 創建一個文本文件,列出你要加載的所有鏡像文件路徑。每行一個文件路徑。
- 創建一個Shell腳本(例如load_images.sh),并打開它。
- 在腳本中,使用docker load命令加載每個鏡像文件。你可以使用for循環來遍歷文件列表并加載每個鏡像文件。
腳本load_images.sh的內容:
#!/bin/bash
# 指定包含鏡像文件路徑的文本文件
file_list="/home/weijishu/file_list.txt"
# 遍歷文件列表中的每個文件
while IFS= read -r file; do
# 檢查文件是否存在且為.tar文件
if [[ -f "$file" && "${file##*.}" == "tar" ]]; then
# 加載鏡像文件
docker load -i "$file"
# 打印導入成功的消息
echo "Successfully imported image: $(basename -- "$file" .tar)"
fi
done < "$file_list"
將/home/weijishu/file_list.txt替換為實際包含鏡像文件路徑的文本文件的路徑。最后,在終端中,進入包含腳本的目錄,并運行以下命令來執行腳本:
chmod +x load_images.sh # 賦予腳本執行權限
./load_images.sh # 執行腳本,批量加載鏡像文件
腳本將遍歷文件列表中的每個文件,檢查它是否為.tar文件,并使用docker load命令加載它。加載成功后,將打印出相應的成功消息。
批量導出docker鏡像文件
要批量導出Docker鏡像,可以使用Docker命令行工具的docker save命令。
用vi編輯save-images.sh文件,內容如下
#!/bin/bash
# 指定包含鏡像名稱的文件
file_list="/home/weijishu/image_list.txt"
# 遍歷文件列表中的每個鏡像名稱
while IFS= read -r image; do
# 檢查鏡像是否存在
if docker images -q "$image" >/dev/null 2>&1; then
# 導出鏡像
docker save -o "$image.tar" "$image"
# 打印導出成功的消息
echo "Successfully exported image: $image"
fi
done < "$file_list"
然后進入終端,執行以下命令:
chmod +x save_images.sh # 賦予腳本執行權限
./save_images.sh # 執行腳本,批量導出鏡像
腳本將遍歷文件列表中的每個鏡像名稱,檢查鏡像是否存在,并使用docker save命令導出鏡像為.tar文件。導出成功后,將打印出相應的成功消息。