首頁 運維 Docker docker save和docker export有什麼差別

docker save和docker export有什麼差別

Jun 17, 2020 pm 05:44 PM

docker save和docker export有什麼差別

首先,我們來分別說明docker save和docker export:

docker save

docker的命令列接口設計得很優雅,很多指令的幫助直接在後面加上--help就可以查看。

docker save的幫助如下:

>docker save --help
Usage:  docker save [OPTIONS] IMAGE [IMAGE...]
Save one or more images to a tar archive (streamed to STDOUT by default)
Options:
      --help            Print usage
  -o, --output string   Write to a file, instead of STDOUT
登入後複製

從命令列說明可以看出,docker save是用來將一個或多個image打包保存的工具。

例如我們想要將鏡像庫中的postgres和mongo打包,那麼可以執行:

docker save -o images.tar postgres:9.6 mongo:3.4
登入後複製

打包之後的images.tar包含postgres:9.6和mongo:3.4這兩個鏡像。

雖然命令列參數要求指定image,實際上也可以對container進行打包,例如:

>docker ps
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS               NAMES
3623943d369f        postgres:9.6        "docker-entrypoint..."   3 hours ago         Up 3 hours          5432/tcp            postgres
>docker save -o b.tar postgres
>docker save -o c.tar postgres:9.6
>ls -al
-rwxrwxrwx 1 root root 277886464 8月  26 14:40 b.tar
-rwxrwxrwx 1 root root 277886464 8月  26 14:41 c.tar
登入後複製

透過以上指令可以看到,b.tar和c.tar是完全一模一樣的。這說明,docker save如果指定的是container,docker save將保存的是容器背後的image。

將打包後的映像載入進來使用docker load,例如:

docker load -i images.tar
登入後複製

上述指令將會把postgres:9.6和mongo:3.4載入進來,如果本地映像庫已經存在這兩個鏡像,將會被覆蓋。

docker save的應用程式場景是,如果你的應用程式是使用docker-compose.yml編排的多個映像組合,但你要部署的客戶伺服器並不能連外網。這時,你可以使用docker save將用到的映像打個包,然後拷貝到客戶伺服器上使用docker load載入。

docker export

照例查看下docker export的幫助:

>docker export --help
Usage:  docker export [OPTIONS] CONTAINER
Export a container's filesystem as a tar archive
Options:
      --help            Print usage
  -o, --output string   Write to a file, instead of STDOUT
登入後複製

從幫助可以看出,docker export是用來將container的文件系統進行打包的。例如:

docker export -o postgres-export.tar postgres
登入後複製

docker export需要指定container,不能像docker save那樣指定image或container都可以。

將打包的container載入進來使用docker import,例如:

docker import postgres-export.tar postgres:latest
登入後複製

從上面的命令可以看出,docker import將container導入後會變成一個image,而不是恢復為一個container。

另外一點是,docker import可以指定IMAGE[:TAG],說明我們可以為映像指定新名稱。如果本地鏡像庫中已經存在同名的鏡像,則原有鏡像的名稱將會被剝奪,並賦給新的鏡像。原有鏡像將成為孤魂野鬼,只能透過IMAGE ID進行操作。

docker export的應用場景主要用來製作基礎映像,例如你從ubuntu映像啟動一個容器,然後安裝一些軟體和進行一些設定後,使用docker export儲存為一個基礎映像。然後,把這個鏡像分發給其他人使用,例如作為基礎的開發環境。

docker save和docker export的區別

  • docker save保存的是映像(image),docker export保存的是容器(container) ;

  • docker load用來載入映像包,docker import用來載入容器包,但兩者都會恢復為映像;

  • docker load不能對載入的映像重新命名,而docker import可以為映像指定新名稱。

推薦教學:docker

以上是docker save和docker export有什麼差別的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
1 個月前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳圖形設置
1 個月前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您聽不到任何人,如何修復音頻
1 個月前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.聊天命令以及如何使用它們
1 個月前 By 尊渡假赌尊渡假赌尊渡假赌

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

如何將應用程序部署到Docker群集群集? 如何將應用程序部署到Docker群集群集? Mar 17, 2025 pm 04:20 PM

本文詳細介紹了將應用程序部署到Docker Swarm,涵蓋了過程中的準備,部署步驟和安全措施。

哪些Kubernetes Pod,部署和服務是什麼? 哪些Kubernetes Pod,部署和服務是什麼? Mar 17, 2025 pm 04:25 PM

本文解釋了Kubernetes的吊艙,部署和服務,詳細說明了它們在管理容器化應用程序中的作用。它討論了這些組件如何增強應用程序內的可擴展性,穩定性和通信。(159個字符)

如何在Kubernetes中擴展應用程序? 如何在Kubernetes中擴展應用程序? Mar 17, 2025 pm 04:28 PM

本文使用手動縮放,HPA,VPA和集群Autoscaler討論了Kubernetes中的擴展應用程序,並提供了監視和自動化縮放的最佳實踐和工具。

如何管理Docker群中的服務? 如何管理Docker群中的服務? Mar 17, 2025 pm 04:22 PM

文章討論了Docker Swarm中的管理服務,專注於創建,擴展,監視和更新而無需停機。

如何在Docker群中實現滾動更新? 如何在Docker群中實現滾動更新? Mar 17, 2025 pm 04:23 PM

本文討論了Docker Swarm中實施滾動更新以更新服務而無需停機。它涵蓋更新服務,設置更新參數,監視進度並確保更新。

如何管理Kubernetes的部署? 如何管理Kubernetes的部署? Mar 17, 2025 pm 04:27 PM

本文討論了管理Kubernetes部署,專注於使用各種工具和最佳實踐的創建,更新,擴展,監視和自動化。

如何創建Docker群集? 如何創建Docker群集? Mar 17, 2025 pm 04:19 PM

文章討論了創建和管理Docker群集群,包括設置,擴展服務和安全性最佳實踐。

Docker面試問題:Ace您的DevOps工程採訪 Docker面試問題:Ace您的DevOps工程採訪 Apr 06, 2025 am 12:01 AM

Docker是DevOps工程師必備的技能。 1.Docker是開源的容器化平台,通過將應用程序及其依賴打包到容器中,實現隔離和可移植性。 2.Docker的工作原理包括命名空間、控制組和聯合文件系統。 3.基本用法包括創建、運行和管理容器。 4.高級用法包括使用DockerCompose管理多容器應用。 5.常見錯誤有容器無法啟動、端口映射問題和數據持久化問題,調試技巧包括查看日誌、進入容器和查看詳細信息。 6.性能優化和最佳實踐包括鏡像優化、資源限制、網絡優化和使用Dockerfile的最佳實踐。

See all articles