最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

docker打tar包命令使用小結(jié)

 更新時間:2025年12月10日 09:24:35   作者:愛吃土豆的馬鈴薯?????????  
本文主要介紹了docker打tar包命令使用小結(jié),詳細(xì)講解了使用 docker ps`命令查看容器信息及鏡像名稱與容器名稱的區(qū)別,具有一定的參考價值,感興趣的可以了解一下

一、打印內(nèi)容說明

docker ps默認(rèn)輸出的核心列是:容器ID(CONTAINER ID)鏡像名稱(IMAGE)命令(COMMAND)創(chuàng)建時間(CREATED)狀態(tài)(STATUS)容器名稱(NAMES)

對應(yīng)到輸出內(nèi)容,每個服務(wù)的信息是:

容器ID鏡像名稱(IMAGE)容器名稱(NAMES)
lb91183ebbc59(注:實(shí)際是1b9183ebbc59)artifacts.iflytek.com/znfw-docker-repo/znzt2024qyzskv10cpg hxm/ckb/spark-knowledge:V1.0_1111spark-knowledge
b7a640493d8eartifacts.iflytek.com/znfw-docker-repo/znzt2024qyzskv10cpg hxm/ckb/spark-ai-search:V1.0_1014spark-ai-search
3a63f64ae584artifacts.iflytek.com/znfw-docker-repo/znzt2024qyzskv10cpg hxm/ckb/spark-user:V1.0_1013spark-user
7815490ddc9dartifacts.iflytek.com/znfw-docker-repo/znzt2024qyzskv10cpg hxm/ckb/spark-ai-collect:V1.0_1036spark-ai-collect
a5d617d29284artifacts.iflytek.com/znfw-docker-repo/znzt2024qyzskv10cpg hxm/ckb/spark-elasticsearch:V1.0_2spark-elasticsearch
522c186756d1artifacts.iflytek.com/znfw-docker-repo/znzt2024qyzskv10cpg hxm/ckb/spark-gateway:V1.0_7spark-gateway

二、鏡像名稱 vs 容器名稱:核心區(qū)別

可以類比成“安裝包”和“正在運(yùn)行的軟件”:

  • 鏡像名稱(IMAGE):是一個靜態(tài)的“模板/安裝包”,里面包含了服務(wù)運(yùn)行需要的代碼、依賴、配置等所有內(nèi)容(比如上面的spark-knowledge:V1.0_1111就是帶版本的鏡像)。它是“死的”,不能直接運(yùn)行,只能用來創(chuàng)建容器。
  • 容器名稱(NAMES):是基于鏡像啟動的“動態(tài)運(yùn)行實(shí)例”(比如spark-knowledge)。它是“活的”,可以啟動、停止、修改里面的內(nèi)容,每個容器都是獨(dú)立的(哪怕用同一個鏡像,也能啟動多個不同的容器)。

一、命令是打包「鏡像」,不是容器

docker save 是專門用于將Docker鏡像打包成tar文件的命令,而容器是鏡像的運(yùn)行實(shí)例,打包容器需要用 docker export(但業(yè)務(wù)場景中一般優(yōu)先打包鏡像,因?yàn)殓R像包含完整運(yùn)行環(huán)境)。

你原命令里 spark-knowledge:backup_$(date +%Y%m%d) 是「鏡像名稱:標(biāo)簽」的格式,但這里有個小問題:你的鏡像實(shí)際名稱不是 spark-knowledgespark-knowledge 是容器名),直接用這個會提示找不到鏡像,需要先修正鏡像名稱。

二、先理清:各服務(wù)的「鏡像完整名稱」(打包的核心前提)

先從你之前的 docker ps 輸出里提取每個服務(wù)的完整鏡像名(鏡像名帶倉庫地址+版本標(biāo)簽),整理如下:

容器名稱(NAMES)完整鏡像名稱(IMAGE,打包時必須用這個)
spark-knowledgeartifacts.iflytek.com/znfw-docker-repo/znzt2024qyzskv10cpg hxm/ckb/spark-knowledge:V1.0_1111
spark-ai-searchartifacts.iflytek.com/znfw-docker-repo/znzt2024qyzskv10cpg hxm/ckb/spark-ai-search:V1.0_1014
spark-userartifacts.iflytek.com/znfw-docker-repo/znzt2024qyzskv10cpg hxm/ckb/spark-user:V1.0_1013
spark-ai-collectartifacts.iflytek.com/znfw-docker-repo/znzt2024qyzskv10cpg hxm/ckb/spark-ai-collect:V1.0_1036
spark-elasticsearchartifacts.iflytek.com/znfw-docker-repo/znzt2024qyzskv10cpg hxm/ckb/spark-elasticsearch:V1.0_2
spark-gatewayartifacts.iflytek.com/znfw-docker-repo/znzt2024qyzskv10cpg hxm/ckb/spark-gateway:V1.0_7

三、各服務(wù)鏡像打包成tar包的正確命令(逐個說明)

通用規(guī)則:

docker save -o 【輸出的tar包路徑/名稱】 【完整鏡像名稱】

  • -o:指定打包后的tar包保存路徑和名稱(建議包含服務(wù)名+日期,方便區(qū)分);
  • 鏡像名稱必須和上面表格里的「完整鏡像名稱」完全一致(包括倉庫地址、版本標(biāo)簽)。

逐個服務(wù)的打包命令:

1. spark-knowledge 鏡像打包
# 打包后tar包名:spark-knowledge_20251203.tar(日期自動取當(dāng)天)
docker save -o ./spark-knowledge_$(date +%Y%m%d).tar artifacts.iflytek.com/znfw-docker-repo/znzt2024qyzskv10cpg hxm/ckb/spark-knowledge:V1.0_1111
2. spark-ai-search 鏡像打包
docker save -o ./spark-ai-search_$(date +%Y%m%d).tar artifacts.iflytek.com/znfw-docker-repo/znzt2024qyzskv10cpg hxm/ckb/spark-ai-search:V1.0_1014
3. spark-user 鏡像打包
docker save -o ./spark-user_$(date +%Y%m%d).tar artifacts.iflytek.com/znfw-docker-repo/znzt2024qyzskv10cpg hxm/ckb/spark-user:V1.0_1013
4. spark-ai-collect 鏡像打包
docker save -o ./spark-ai-collect_$(date +%Y%m%d).tar artifacts.iflytek.com/znfw-docker-repo/znzt2024qyzskv10cpg hxm/ckb/spark-ai-collect:V1.0_1036
5. spark-elasticsearch 鏡像打包
docker save -o ./spark-elasticsearch_$(date +%Y%m%d).tar artifacts.iflytek.com/znfw-docker-repo/znzt2024qyzskv10cpg hxm/ckb/spark-elasticsearch:V1.0_2
6. spark-gateway 鏡像打包
docker save -o ./spark-gateway_$(date +%Y%m%d).tar artifacts.iflytek.com/znfw-docker-repo/znzt2024qyzskv10cpg hxm/ckb/spark-gateway:V1.0_7

四、補(bǔ)充說明

  1. 為什么不能用容器名打包?
    docker save 只認(rèn)「鏡像名」,不認(rèn)「容器名」。比如你原命令里寫 spark-knowledge:backup_xxx,但 spark-knowledge 是容器名,不是鏡像名,執(zhí)行會報錯 no such image,必須替換成表格里的完整鏡像名。

  2. 打包后驗(yàn)證:
    執(zhí)行完打包命令后,用 ls -lh 查看當(dāng)前目錄,能看到對應(yīng)tar包(比如 spark-knowledge_20251203.tar),說明打包成功。

  3. 如果想打包容器(極少用,僅作補(bǔ)充):
    若非要打包容器(容器是運(yùn)行實(shí)例,打包后丟失鏡像的分層、歷史等信息),命令是:

    # 以spark-knowledge容器為例
    docker export -o ./spark-knowledge_container_$(date +%Y%m%d).tar spark-knowledge
    

    業(yè)務(wù)場景中優(yōu)先用 docker save 打包鏡像,因?yàn)殓R像可直接重新創(chuàng)建容器,而容器打包的文件僅能導(dǎo)入為鏡像(且不完整)。

  4. 批量打包(可選,簡化操作):
    若想一次性打包所有服務(wù),可寫個簡單腳本:

    #!/bin/bash
    # 定義所有服務(wù)的鏡像名和對應(yīng)輸出文件名
    declare -A images=(
      ["spark-knowledge"]="artifacts.iflytek.com/znfw-docker-repo/znzt2024qyzskv10cpg hxm/ckb/spark-knowledge:V1.0_1111"
      ["spark-ai-search"]="artifacts.iflytek.com/znfw-docker-repo/znzt2024qyzskv10cpg hxm/ckb/spark-ai-search:V1.0_1014"
      ["spark-user"]="artifacts.iflytek.com/znfw-docker-repo/znzt2024qyzskv10cpg hxm/ckb/spark-user:V1.0_1013"
      ["spark-ai-collect"]="artifacts.iflytek.com/znfw-docker-repo/znzt2024qyzskv10cpg hxm/ckb/spark-ai-collect:V1.0_1036"
      ["spark-elasticsearch"]="artifacts.iflytek.com/znfw-docker-repo/znzt2024qyzskv10cpg hxm/ckb/spark-elasticsearch:V1.0_2"
      ["spark-gateway"]="artifacts.iflytek.com/znfw-docker-repo/znzt2024qyzskv10cpg hxm/ckb/spark-gateway:V1.0_7"
    )
    
    # 循環(huán)打包
    for name in "${!images[@]}"; do
      docker save -o ./${name}_$(date +%Y%m%d).tar ${images[$name]}
      echo "? 已打包 ${name} 鏡像:./${name}_$(date +%Y%m%d).tar"
    done
    

    保存為 backup_spark_images.sh,執(zhí)行 chmod +x backup_spark_images.sh && ./backup_spark_images.sh 即可批量打包。

一、打包耗時:沒有固定值,核心看2個因素

Docker鏡像打包(docker save)的耗時主要取決于鏡像大小 + 服務(wù)器磁盤IO/網(wǎng)絡(luò)(如果鏡像有遠(yuǎn)程層)

  • 小鏡像(幾十MB):幾秒到十幾秒;
  • 中大型鏡像(幾百M(fèi)B幾GB):幾分鐘甚至更久(比如你的spark相關(guān)鏡像,大概率是幾百M(fèi)B級別,通常15分鐘居多)。

你可以先執(zhí)行 docker images --format "{{.Repository}}:{{.Tag}} {{.Size}}" | grep spark 查看每個鏡像的大小,能大致判斷耗時:

# 執(zhí)行這個命令看鏡像大小
docker images --format "{{.Repository}}:{{.Tag}} {{.Size}}" | grep spark

二、怎么看是否在打包?3種方法確認(rèn)狀態(tài)

docker save 命令執(zhí)行時默認(rèn)沒有實(shí)時輸出(屬于“靜默執(zhí)行”),但可以通過以下方式判斷是否在運(yùn)行:

方法1:新開終端,查進(jìn)程(最直接)

登錄服務(wù)器新開一個終端,執(zhí)行以下命令,能看到 docker save 進(jìn)程就說明還在打包:

# 查找docker save相關(guān)進(jìn)程
ps -ef | grep "docker save"
# 或更精準(zhǔn):只看正在運(yùn)行的docker save進(jìn)程(排除grep自身)
ps -ef | grep "docker save" | grep -v grep
  • 輸出類似這樣,說明進(jìn)程還在(打包中):
    root      12345  12000  2 10:00 pts/0    00:00:10 docker save -o ./spark-knowledge_20251203.tar artifacts.iflytek.com/znfw-docker-repo/znzt2024qyzskv10cpg hxm/ckb/spark-knowledge:V1.0_1111
    
  • 若沒有輸出,說明進(jìn)程已結(jié)束(要么打包完成,要么報錯退出)。

方法2:看磁盤寫入(判斷是否在干活)

docker save 會往本地寫tar文件,可通過 duls -lh 實(shí)時看文件大小變化:

  1. 先執(zhí)行 ls -lh | grep .tar 看目標(biāo)tar文件的大?。▌倛?zhí)行命令時,文件可能是0字節(jié)或很?。?/li>
  2. 隔幾秒再執(zhí)行一次,如果文件大小在持續(xù)增長,說明還在打包;
  3. 若大小長時間不變,且進(jìn)程也消失了,說明打包完成/失敗。

示例:

# 實(shí)時監(jiān)控tar包大?。ㄌ鎿Q成你的包名)
watch -n 1 "ls -lh spark-knowledge_$(date +%Y%m%d).tar"
  • watch -n 1 表示每秒刷新一次,能直觀看到文件從0→逐漸增大→停止增長(完成)。

方法3:查Docker守護(hù)進(jìn)程日志(可選)

如果懷疑命令卡住,可查看Docker日志(不同系統(tǒng)路徑略有差異):

# CentOS/RHEL系統(tǒng)
journalctl -fu docker.service | grep save
# Ubuntu系統(tǒng)
tail -f /var/log/docker.log | grep save
  • 若有 save 相關(guān)的日志輸出,能看到打包的進(jìn)度/錯誤;若無異常日志,說明命令在正常執(zhí)行。

三、關(guān)于“命令執(zhí)行完沒輸出”:必須等打包完成!

docker save阻塞式命令——執(zhí)行后會一直運(yùn)行,直到打包完成(或報錯)才會返回終端提示符(比如 [root@server ~]#):

  • 終端沒有回到提示符 → 還在打包中,千萬別中斷(Ctrl+C會導(dǎo)致打包失敗,tar包損壞);
  • 終端回到提示符 → 打包完成(無論成功/失敗,都會退出)。

四、打包完成/失敗的判斷

1. 打包成功

  • 終端回到提示符;
  • ls -lh 能看到tar包,且大小和鏡像大小匹配(比如鏡像500MB,tar包大概450~500MB,因?yàn)閠ar會輕微壓縮);
  • 執(zhí)行 docker load -i 你的tar包名.tar 能正常加載(可選驗(yàn)證,確保包沒問題)。

2. 打包失敗

  • 終端回到提示符,但tar包大小為0字節(jié)/遠(yuǎn)小于鏡像大?。?/li>
  • 終端會輸出錯誤提示(比如 no such image、權(quán)限不足、磁盤滿等);
  • 常見失敗原因:鏡像名寫錯、磁盤空間不足(執(zhí)行 df -h 看磁盤使用率)、權(quán)限不夠(加sudo)。

五、補(bǔ)充:避免打包卡住的小技巧

  1. 先檢查磁盤空間:df -h 確保當(dāng)前目錄所在磁盤有足夠空間(至少是鏡像大小的1.5倍);
  2. 打包時別做高IO操作(比如拷貝大文件、跑其他任務(wù)),避免拖慢速度;
  3. 若單個鏡像打包太久,可分批打包(比如先打1個,確認(rèn)耗時后再批量)。

如果等了很久(比如超過10分鐘)還沒完成,先通過方法1查進(jìn)程是否還在,再查磁盤IO(iostat -x 1)和Docker日志,大概率是磁盤慢或鏡像太大導(dǎo)致的,耐心等即可。

到此這篇關(guān)于docker打tar包命令使用小結(jié)的文章就介紹到這了,更多相關(guān)docker打tar包內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Docker Compose 輕松管理多容器應(yīng)用小結(jié)

    Docker Compose 輕松管理多容器應(yīng)用小結(jié)

    Docker Compose 是管理多容器應(yīng)用的利器,通過一個簡單的 YAML 文件,開發(fā)者可以輕松定義服務(wù)、網(wǎng)絡(luò)和數(shù)據(jù)卷的配置,這篇文章主要介紹了Docker Compose :輕松管理多容器應(yīng)用,需要的朋友可以參考下
    2024-12-12
  • Docker核心技術(shù)之Dockerfile指令詳解及綜合案例

    Docker核心技術(shù)之Dockerfile指令詳解及綜合案例

    Dockerfile是一個用來構(gòu)建鏡像的文本文件, 文本內(nèi)容包含了一條條構(gòu)建鏡像所需的指令和說明,這篇文章主要介紹了Docker核心技術(shù)之Dockerfile指令詳解及綜合案例的相關(guān)資料,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2026-05-05
  • docker快速搭建私有鏡像倉庫registry以及registryUI方式

    docker快速搭建私有鏡像倉庫registry以及registryUI方式

    本文詳細(xì)介紹了如何在Windows系統(tǒng)上使用Docker搭建私有鏡像倉庫,并通過registry-web界面進(jìn)行管理,內(nèi)容包括環(huán)境準(zhǔn)備、搭建步驟及上傳和下載鏡像的操作
    2024-12-12
  • docker運(yùn)行nginx不生效的解決辦法

    docker運(yùn)行nginx不生效的解決辦法

    當(dāng)docker運(yùn)行nginx鏡像時,設(shè)置端口映射,則只有該映射端口起作用,nginx配置的其他端口無效,接下來本文將給大家介紹docker運(yùn)行nginx不生效的解決辦法,文中有相關(guān)的代碼示例供大家參考,需要的朋友可以參考下
    2024-01-01
  • https的harbor部署與升級實(shí)現(xiàn)過程

    https的harbor部署與升級實(shí)現(xiàn)過程

    文章簡要介紹了Harbor的部署與升級流程:包括安裝Docker、配置HTTPS、部署Harbor及測試;小版本升級需備份后替換;大版本升級則需額外注意兼容性,同樣執(zhí)行備份、替換和測試操作
    2025-09-09
  • 使用Docker快速搭建Oracle開發(fā)環(huán)境的方法教程

    使用Docker快速搭建Oracle開發(fā)環(huán)境的方法教程

    這篇文章主要給大家介紹了使用Docker快速搭建Oracle開發(fā)環(huán)境的方法教程,文中給出了詳細(xì)的解決方法,對大家具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起看看吧。
    2017-06-06
  • 詳解Docker創(chuàng)建支持ssh服務(wù)的容器和鏡像

    詳解Docker創(chuàng)建支持ssh服務(wù)的容器和鏡像

    本篇文章主要介紹了詳解Docker創(chuàng)建支持ssh服務(wù)的容器和鏡像,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-05-05
  • 在Kubernetes環(huán)境下使用Docker實(shí)現(xiàn)GPU支持的完整方案

    在Kubernetes環(huán)境下使用Docker實(shí)現(xiàn)GPU支持的完整方案

    本文將介紹如何在?Kubernetes?環(huán)境下,使用?Docker?容器運(yùn)行時實(shí)現(xiàn)?NVIDIA?GPU?加速支持,包括環(huán)境準(zhǔn)備、安裝?nvidia-docker2、K8s?device?plugin?配置等內(nèi)容,需要的朋友可以參考下
    2025-05-05
  • zabbix監(jiān)控docker容器狀態(tài)【推薦】

    zabbix監(jiān)控docker容器狀態(tài)【推薦】

    這篇文章主要介紹了zabbix監(jiān)控docker容器狀態(tài)的相關(guān)資料,非常不錯,具有一定的參考借鑒價值,需要的朋友可以參考下
    2018-06-06
  • docker如何對已經(jīng)啟動的容器添加目錄映射(掛載目錄)

    docker如何對已經(jīng)啟動的容器添加目錄映射(掛載目錄)

    當(dāng)我們創(chuàng)建容器之后,不可避免會遇到修改配置文件的操作,下面這篇文章主要給大家介紹了關(guān)于docker如何對已經(jīng)啟動的容器添加目錄映射(掛載目錄)的相關(guān)資料,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2023-02-02

最新評論

宁化县| 康定县| 民乐县| 新兴县| 方山县| 嫩江县| 丹巴县| 香港| 灵台县| 从化市| 化德县| 和硕县| 西乌珠穆沁旗| 大埔区| 积石山| 孝义市| 滨海县| 墨竹工卡县| 乐清市| 台州市| 厦门市| 广州市| 昌乐县| 宣城市| 泰安市| 永新县| 高雄市| 库尔勒市| 蚌埠市| 丹东市| 万安县| 高安市| 鄂托克前旗| 萨嘎县| 彩票| 宝应县| 翼城县| 洪洞县| 象山县| 嘉鱼县| 伊宁县|