網(wǎng)站的空間的提供商南京網(wǎng)站制作設(shè)計(jì)
1. 創(chuàng)建打包腳本
#!/bin/bash
# 設(shè)置 -e 使得腳本在遇到錯(cuò)誤時(shí)停止執(zhí)行
set -e# ============================== 必要的參數(shù) ==============================
exported_container_name="needed_export_container_name_or_id" # 需要被導(dǎo)出的容器的名稱或id
image_save_name="my_custom_image_name:v25.03.03" # 鏡像需要保存的名字和版本號(hào)
tar_save_path="./my_custom_image.tar" # 鏡像的tar保存路徑
# ========================================================================# 生成基于時(shí)間的隨機(jī)文件夾名
temp_file="tempfile_"$(date +%Y%m%d_%H%M%S.tar)# 在宿主機(jī)導(dǎo)出容器文件
echo "[INFO] Step 1/4: Export container..."
docker export "$exported_container_name" > "$temp_file"
echo "[INFO] Step 1/4: Export container completed! "
echo ""# 將容器文件變?yōu)殓R像
echo "[INFO] Step 2/4: Import image..."
docker import "$temp_file" "$image_save_name"
echo "[INFO] Step 2/4: Import image completed!"
echo ""# 將鏡像保存為tar包
echo "[INFO] Step 3/4: Save image..."
docker save -o "$tar_save_path" "$image_save_name"
echo "[INFO] Step 3/4: Save image completed!"
echo ""# 刪除多余的tar包
echo "[INFO] Step 4/4: Cleanup temporary files..."
if [ -f "$temp_file" ]; thenrm "$temp_file"echo "[INFO] Step 4/4: Temporary files cleaned up!"
elseecho "[WARNING] Temporary file does not exist, skipping deletion."
fi
echo ""echo "[INFO] The image has been saved in $tar_save_path"docker rmi "$image_save_name"echo "[INFO] The image named $image_save_name has been deleted!"
這里需要注意三個(gè)變量需要修改:
exported_container_name
:需要被導(dǎo)出的容器的名稱或idimage_save_name
:鏡像需要保存的名字和版本號(hào)tar_save_path
:生成的鏡像.tar文件保存路徑
2. 開始執(zhí)行

3. 驗(yàn)證.tar包是否可以正常加載為鏡像
首先確定我們的要加載的鏡像沒有存在
docker images
之后我們開始加載鏡像:
# 語法
docker load -i <剛才我們打包好的tar包>

4. 驗(yàn)證加載的鏡像是否可以正常創(chuàng)建容器
docker run -it --name <容器的名稱> <鏡像命令:版本/鏡像id>
# 示例
docker run -it --name <容器的名稱>