將docker容器打包為.tar包的實(shí)現(xiàn)方式
更新時(shí)間:2025年09月27日 09:35:32 作者:Le0v1n
文章介紹了Docker鏡像打包與加載的四步流程:修改腳本中的三個(gè)關(guān)鍵變量(容器名、鏡像名、保存路徑)、執(zhí)行打包命令生成.tar文件、驗(yàn)證鏡像加載是否成功、確認(rèn)加載后的鏡像能否正常創(chuàng)建容器
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" # 鏡像需要保存的名字和版本號
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" ]; then
rm "$temp_file"
echo "[INFO] Step 4/4: Temporary files cleaned up!"
else
echo "[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:鏡像需要保存的名字和版本號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 <容器的名稱>
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
docker安裝fastdfs鏡像的一些注意事項(xiàng)
在安裝docker fastdfs鏡像時(shí)大家需要注意如果是云服務(wù)器則需要在云服務(wù)器后臺的安全組入口方向放開22122、23000以及8888端口,并且在云服務(wù)器防火墻配置放開以上三個(gè)端口,具體內(nèi)容詳情大家跟隨小編一起看看吧2021-05-05
Docker數(shù)據(jù)卷的核心原理與管理邏輯解讀
Docker數(shù)據(jù)卷實(shí)現(xiàn)容器與宿主機(jī)的數(shù)據(jù)持久化,分為綁定掛載(手動(dòng)指定路徑)和管理卷(自動(dòng)管理),前者適合開發(fā)環(huán)境,后者適用于生產(chǎn)環(huán)境,還支持多容器共享、備份遷移及清理,保障數(shù)據(jù)安全與資源高效利用2025-08-08
idea整合docker快速部署springboot應(yīng)用的詳細(xì)過程
這篇文章主要介紹了idea整合docker快速部署springboot應(yīng)用,文中給大家提到關(guān)于安裝docker步驟,idea連接遠(yuǎn)程docker的方法,需要的朋友可以參考下2021-10-10
k3d入門指南之在Docker中運(yùn)行K3s的詳細(xì)教程
在本文中,我們將簡單了解k3d,這是一款可讓您在安裝了Docker的任何地方運(yùn)行一次性Kubernetes集群的工具,此外在本文中我們還將探討在使用k3d中可能會(huì)出現(xiàn)的一切問題,感興趣的朋友跟隨小編一起看看吧2021-05-05

