`docker commit` 和 `docker save`區別

理解 docker commitdocker save 之間的區別對于正確管理 Docker 鏡像非常重要。讓我們詳細解釋一下這兩個命令的作用及其區別。

1. docker commit

作用

  • docker commit roop-builder roop:v1 命令的作用是基于一個正在運行的容器 roop-builder 創建一個新的鏡像 roop:v1
  • 這個命令會捕獲容器在執行時的狀態,包括文件系統的更改、環境變量、用戶設置等,并將其保存為一個新的鏡像。

結果

  • 新的鏡像 roop:v1 會存儲在本地 Docker 的鏡像存儲目錄中。
  • 你可以使用 docker images 命令查看這個鏡像。

用途

  • 適用于在容器中進行了一些更改后,想要將這些更改保存為一個新的鏡像,以便后續使用或分享。

2. docker save

作用

  • docker save -o roop.tar roop:cuda118-py310 命令的作用是將本地的鏡像 roop:cuda118-py310 保存為一個 tar 歸檔文件 roop.tar
  • 這個命令不會基于容器創建新的鏡像,而是將已經存在的鏡像導出為文件。

結果

  • 生成的 roop.tar 文件包含了鏡像的所有層和元數據。
  • 你可以將這個 tar 文件傳輸到其他機器上,并使用 docker load 命令導入。

用途

  • 適用于備份鏡像、傳輸鏡像到其他機器或存儲鏡像以供后續使用。
  • 例如,你可以在沒有網絡連接的環境中,通過物理介質傳輸鏡像。

3. 二者之間的區別

特性docker commitdocker save
操作對象基于一個正在運行的容器創建一個新的鏡像將一個已經存在的鏡像保存為一個 tar 文件
用途捕獲容器的當前狀態并創建新的鏡像備份、傳輸或存儲鏡像
輸出新的鏡像存儲在本地 Docker 鏡像存儲中生成的 tar 文件可以存儲在任何地方
使用場景在容器中進行了一些更改后,想要保存這些更改需要將鏡像傳輸到其他機器或進行備份
命令示例docker commit container_name new_image:tagdocker save -o image_file.tar image:tag
反向操作docker images 查看新鏡像,docker run 使用新鏡像docker load -i image_file.tar 導入鏡像

4. 具體例子解釋

  • docker commit roop-builder roop:v1

    • 你在 roop-builder 容器中進行了一些更改(例如,安裝了軟件包、修改了配置文件等)。
    • 使用 docker commit 命令將這些更改保存為一個新的鏡像 roop:v1
    • 這個鏡像會存儲在本地 Docker 的鏡像存儲目錄中。
  • docker save -o roop.tar roop:cuda118-py310

    • 你已經有一個名為 roop:cuda118-py310 的鏡像。
    • 使用 docker save 命令將該鏡像保存為一個 tar 文件 roop.tar
    • 這個 tar 文件可以用于備份或傳輸到其他機器上。

5. 總結

  • docker commit 是基于一個容器創建一個新的鏡像,適用于捕獲容器的當前狀態。
  • docker save 是將一個已經存在的鏡像保存為一個 tar 文件,適用于備份或傳輸鏡像。

理解這兩者的區別可以幫助你更有效地管理和使用 Docker 鏡像。如果你需要將鏡像從一臺機器傳輸到另一臺機器,或者進行備份,使用 docker savedocker load 是合適的選擇。如果你只是想在容器中進行一些更改并保存這些更改,使用 docker commit 更為合適。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/907888.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/907888.shtml
英文地址,請注明出處:http://en.pswp.cn/news/907888.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Linux內核體系結構簡析

1.Linux內核 1.1 Linux內核的任務 從技術層面講,內核是硬件和軟件之間的一個中間層,作用是將應用層序的請求傳遞給硬件,并充當底層驅動程序,對系統中的各種設備和組件進行尋址。從應用程序的角度講,應用程序與硬件沒有…

python爬蟲:Ruia的詳細使用(一個基于asyncio和aiohttp的異步爬蟲框架)

更多內容請見: 爬蟲和逆向教程-專欄介紹和目錄 文章目錄 一、Ruia概述1.1 Ruia介紹1.2 Ruia特點1.3 安裝Ruia1.4 使用案例二、基本使用2.1 Request 請求2.2 Response - 響應2.3 Item - 數據提取2.4 Field 提取數據2.5 Spider - 爬蟲類2.6 Middleware - 中間件三、高級功能3.1 …

網絡攻防技術二:密碼學分析

文章目錄 一、傳統密碼分析方法1、根據明文、密文等信息的掌握情況分類 2、從密碼分析途徑分類二、密碼旁路分析1、概念2、旁路分析方法三、現代密碼系統1、對稱密碼(單密鑰)2、公開密碼(成對密鑰) 四、典型對稱密碼(單…

Linux --TCP協議實現簡單的網絡通信(中英翻譯)

一、什么是TCP協議 1.1 、TCP是傳輸層的協議,TCP需要連接,TCP是一種可靠性傳輸協議,TCP是面向字節流的傳輸協議; 二、TCPserver端的搭建 2.1、我們最終好實現的效果是 客戶端在任何時候都能連接到服務端,然后向服務…

pc端小卡片功能-原生JavaScript金融信息與節日日歷

代碼如下 <!DOCTYPE html> <html lang"zh-CN"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>金融信息與節日日歷</title><…

C語言——獲取變量所在地址(uint8和uint32的區別)

前言&#xff1a; 1.使用uint8 *的原因 在C語言中&#xff0c;獲取或操作一個4字節地址&#xff08;指針&#xff09;時使用uint8_t*&#xff08;即unsigned char*&#xff09;而不是uint32_t*&#xff0c;主要基于以下關鍵原因&#xff1a; 1.1. 避免違反嚴格別名規則&…

Python----目標檢測(《YOLOv3:AnIncrementalImprovement》和YOLO-V3的原理與網絡結構)

一、《YOLOv3:AnIncrementalImprovement》 1.1、基本信息 標題&#xff1a;YOLOv3: An Incremental Improvement 作者&#xff1a;Joseph Redmon, Ali Farhadi 機構&#xff1a;華盛頓大學&#xff08;University of Washington&#xff09; 發表時間&#xff1a;2018年 代…

50天50個小項目 (Vue3 + Tailwindcss V4) ? | Form Wave(表單label波動效果)

&#x1f4c5; 我們繼續 50 個小項目挑戰&#xff01;—— FormWave組件 倉庫地址&#xff1a;https://github.com/SunACong/50-vue-projects 項目預覽地址&#xff1a;https://50-vue-projects.vercel.app/ &#x1f3af; 組件目標 構建一個美觀、動態的登錄表單&#xff0…

【數據結構】--二叉樹--堆(上)

一、樹的概念和結構 概念&#xff1a; 樹是一種非線性的數據結構&#xff0c;他是由n(n>0)個有限結點組成一個具有層次關系的集合。其叫做樹&#xff0c;是因為他倒過來看就和一棵樹差不多&#xff0c;其實際上是根在上&#xff0c;樹枝在下的。 樹的特點&#xff1a; 1…

linux有效裁剪視頻的方式(基于ffmpeg,不改變分辨率,幀率,視頻質量,不需要三方軟件)

就是在Linux上使用OBS Studio錄制一個講座或者其他視頻&#xff0c;可能總有些時候會多錄制一段時間&#xff0c;但是如果使用剪映或者PR這樣的工具在導出的時候總需要煩惱導出的格式和參數&#xff0c;比如剪映就不支持mkv格式的導出&#xff0c;導出成mp4格式的視頻就會變得很…

SystemVerilog—Interface語法(一)

SystemVerilog中的接口&#xff08;interface&#xff09;是一種用于封裝多模塊間通信信號和協議的復合結構&#xff0c;可顯著提升代碼復用性和維護效率。其核心語法和功能如下&#xff1a; 一、接口的基本定義 1. 聲明語法 接口通過interface關鍵字定義&#xff0c;支持信…

android binder(四)binder驅動詳解

ref&#xff1a; Android10.0 Binder通信原理(五)-Binder驅動分析_binder: 1203:1453 ioctl 40046210 77004d93f4 return-CSDN博客 https://juejin.cn/post/7214342319347712057#heading-0 第6課第1節_Binder系統_驅動情景分析_數據結構_嗶哩嗶哩_bilibili

QT/c++航空返修數據智能分析系統

簡介 1、區分普通用戶和管理員 2、界面精美 3、功能豐富 4、使用cppjieba分詞分析數據 5、支持數據導入導出 6、echarts展示圖表 效果展示 演示鏈接 源碼獲取 int main(){ //非白嫖 printf("&#x1f4e1;:%S","joyfelic"); return 0; }

ToolsSet之:數值提取及批處理

ToolsSet是微軟商店中的一款包含數十種實用工具數百種細分功能的工具集合應用&#xff0c;應用基本功能介紹可以查看以下文章&#xff1a; Windows應用ToolsSet介紹https://blog.csdn.net/BinField/article/details/145898264 ToolsSet中Number菜單下的Numeric Batch是一個數…

Ubuntu20.04 LTS 升級Ubuntu22.04LTS 依賴錯誤 系統崩潰重裝 Ubuntu22.04 LTS

服務器系統為PowerEdge R740 BIOS Version 2.10.2 DELL EMC 1、關機 開機時連續按鍵盤F2 2、System Setup選擇第一個 System BIOS 3、System BIOS Setting 選擇 Boot Setting 4、System BIOS Setting-Boot Setting 選擇 BIOS Boot Settings 5、重啟 開啟時連續按鍵盤F11 …

(javaSE)Java數組進階:數組初始化 數組訪問 數組中的jvm 空指針異常

數組的基礎 什么是數組呢? 數組指的是一種容器,可以用來存儲同種數據類型的多個值 數組的初始化 初始化&#xff1a;就是在內存中,為數組容器開辟空間,并將數據存入容器中的過程。 數組初始化的兩種方式&#xff1a;靜態初始化&#xff0c;動態初始化 數組的靜態初始化 初始化…

支持向量機(SVM)例題

對于圖中所示的線性可分的20個樣本數據&#xff0c;利用支持向量機進行預測分類&#xff0c;有三個支持向量 A ( 0 , 2 ) A\left(0, 2\right) A(0,2)、 B ( 2 , 0 ) B\left(2, 0\right) B(2,0) 和 C ( ? 1 , ? 1 ) C\left(-1, -1\right) C(?1,?1)。 求支持向量機分類器的線…

UE特效Niagara性能分析

開啟Niagara調試器 開啟顯示概覽 界面顯示 &#x1f7e9; 上方綠色面板&#xff1a;Niagara DebugHud 這是 HUD&#xff08;調試視圖&#xff09; 模式下的性能統計顯示&#xff0c;內容如下&#xff1a; 項目含義SystemFilter: ShockWave_01當前選中的 Niagara 粒子系統名稱…

碳中和新路徑:鐵電液晶屏如何破解高性能與節能矛盾?

一、顯示技術困局&#xff1a;當 “高刷” 遭遇 “高耗” 在元宇宙、電競產業蓬勃發展的當下&#xff0c;顯示設備的刷新率與能耗成為行業痛點。傳統液晶受 “邊緣場效應” 制約&#xff0c;刷新率長期停滯在 300Hz 以下&#xff0c;動態畫面拖影問題顯著&#xff1b;同時&…

Vue3+SpringBoot全棧開發:從零實現增刪改查與分頁功能

前言 在現代化Web應用開發中&#xff0c;前后端分離架構已成為主流。本文將詳細介紹如何使用Vue3作為前端框架&#xff0c;SpringBoot作為后端框架&#xff0c;實現一套完整的增刪改查(CRUD)功能&#xff0c;包含分頁查詢、條件篩選等企業級特性。 技術棧介紹 前端&#xff1…