Docker保存鏡像和導入鏡像文件完整圖文教程
前言
Docker 保存和導入鏡像文件是 Docker 鏡像管理中的兩個關鍵操作,它們在不同的場景下有著各自的意義和用途。以下是對這兩個操作的詳細說明:
1 基本命令介紹
1.1 Docker 保存鏡像(docker save)
命令格式:
docker save -o <輸出文件路徑> <鏡像名稱>:<標簽>
意義與用途:
歸檔與備份:
docker save
命令用于將本地的 Docker 鏡像導出為一個 tar 文件。這個文件包含了鏡像的所有層以及元數(shù)據(jù),如標簽、配置信息等。通過這種方式,可以對重要的鏡像進行歸檔或備份,防止因為意外刪除或系統(tǒng)故障導致的數(shù)據(jù)丟失。遷移與分發(fā):當需要將鏡像從一臺機器遷移到另一臺機器時,尤其是在沒有直接網(wǎng)絡連接的情況下,可以使用
docker save
將鏡像導出為文件,然后通過其他方式(如USB驅(qū)動器、FTP傳輸?shù)龋⒃撐募椭频侥繕藱C器上。這在離線環(huán)境中特別有用。版本控制:在某些情況下,你可能希望保留特定版本的鏡像,以便在未來能夠回滾到該版本。通過
docker save
可以創(chuàng)建這些版本的快照,確保任何時候都可以恢復到某個已知的良好狀態(tài)。審計與合規(guī)性:對于企業(yè)級應用,有時需要對使用的鏡像進行審計或驗證其來源。通過保存鏡像文件,可以在必要時檢查鏡像的內(nèi)容,確保符合安全策略和法規(guī)要求。
1.2 Docker 導入鏡像(docker load)
命令格式:
docker load -i <輸入文件路徑>
意義與用途:
恢復備份:
docker load
命令用于將之前使用docker save
創(chuàng)建的 tar 文件重新加載到 Docker 中,使其成為可用的鏡像。這對于從備份中恢復鏡像非常有用,特別是在發(fā)生災難恢復時。接收遷移的鏡像:當從其他機器接收到鏡像文件后,可以使用
docker load
將其導入本地 Docker 環(huán)境。這使得跨機器或跨環(huán)境的鏡像共享變得簡單易行。定制化鏡像部署:如果你有一個經(jīng)過特殊定制的鏡像,并且希望將其部署到多個環(huán)境中,可以通過
docker save
和docker load
組合來實現(xiàn)。例如,在開發(fā)完成后,可以將開發(fā)環(huán)境中的鏡像導出,然后在測試或生產(chǎn)環(huán)境中導入,從而保證各個環(huán)境的一致性。繞過鏡像倉庫限制:有時候,由于網(wǎng)絡問題或者鏡像倉庫的訪問權限限制,無法直接從遠程倉庫拉取鏡像。此時,可以先在有訪問權限的環(huán)境中獲取鏡像并保存為文件,再通過
docker load
在受限環(huán)境中導入鏡像。私有鏡像的安全分發(fā):對于包含敏感信息或?qū)S屑夹g的鏡像,直接上傳到公共鏡像倉庫可能存在安全風險。通過
docker save
和docker load
,可以在不公開鏡像內(nèi)容的前提下,安全地在受信任的合作伙伴之間分發(fā)鏡像。
2 實際操作演示
2.1 準備環(huán)境
兩臺Ubuntu22.04 Server服務器或虛擬機,其中一臺IP地址為:192.168.88.171,一臺IP地址為192.168.3.228,且同時兩臺都已經(jīng)安裝好了docker環(huán)境。
假設模擬只有IP為192.168.88.171的服務器可對外連接互聯(lián)網(wǎng),192.168.3.228的服務器不能連接互聯(lián)網(wǎng),只跟192.168.88.171互聯(lián)組成局域網(wǎng)。
服務器地址 | 網(wǎng)絡情況-外網(wǎng) | 網(wǎng)絡情況-內(nèi)網(wǎng) | 實際操作 |
---|---|---|---|
192.168.88.171 | 允許 | 允許 | 通過互聯(lián)網(wǎng)下載并保存mysql8.0.34鏡像 |
192.168.3.228 | 否 | 允許 | 通過內(nèi)網(wǎng)其他服務器鏡像源導入mysql8.0.34鏡像 |
2.2 互聯(lián)網(wǎng)拉取鏡像源
在192.168.88.171拉取mysql8.0.34鏡像
docker pull mysql:8.0.34
查看當前docker的所有鏡像源,可以看到已經(jīng)下載了mysql8.0.34
docker images
2.3 保存鏡像源
1.單個鏡像保存在 Docker 中,保存鏡像的命令是 docker save
。這個命令可以將一個或多個鏡像保存到一個 tar 歸檔文件中。以下是如何使用該命令的基本語法:
docker save -o <輸出文件路徑> <鏡像名稱>[:<標簽>]
保存192.168.88.171的mysql8.0.34鏡像至根目錄下的home文件夾
docker save -o /home/mysql8.0.34.tar mysql:8.0.34
進入home文件夾可以看到已經(jīng)保存了mysql8.0.34.tar
2.多個鏡像保存查看當前鏡像文件,例如我們需要保存nacos和mysql8鏡像(保存到同一個tar文件)
docker save -o /home/mysql_nacos_images.tar mysql:8.0.34 nacos/nacos-server:v2.1.1
查看home目錄下是否生成對應的tar文件
2.4 導入鏡像源
1.鏡像源傳輸scp
是一種基于 SSH 的安全文件復制協(xié)議,適用于 Linux、macOS 和 Windows(通過 WSL 或 Git Bash 等工具)。
從源服務器傳輸?shù)侥繕朔掌鳎?/strong>
在源服務器上執(zhí)行以下命令:
scp /path/to/nacos-server-v2.1.1.tar user@target-server:/path/to/destination/
/path/to/nacos-server-v2.1.1.tar
是源服務器上的文件路徑。user
是目標服務器的用戶名。target-server
是目標服務器的 IP 地址或主機名。/path/to/destination/
是目標服務器上的保存路徑。
在192.168.88.171服務器上執(zhí)行傳輸文件mysql_nacos_images.tar至192.168.3.228上
scp /home/mysql_nacos_images.tar root@192.168.3.228:/home/
輸入目標服務器對應的用戶名密碼后即可開始傳輸
傳輸完成后在192.168.3.228服務器上即可看到對應鏡像源
2.導入鏡像源
在192.168.3.228服務器上使用 docker load
命令來加載鏡像文件。如果你有一個未壓縮的 .tar
文件,可以運行以下命令:
cd /home docker load -i mysql_nacos_images.tar
加載完畢后,會顯示已經(jīng)導入nacos與mysql8
查看鏡像源
docker images
至此所有的演示過程已經(jīng)完成
注意事項
- 鏡像大小:保存的鏡像文件可能會非常大,特別是當鏡像包含大量依賴項或數(shù)據(jù)時。因此,在導出和導入鏡像時應考慮存儲空間和傳輸帶寬的問題。
- 兼容性:雖然 Docker 的鏡像格式具有良好的向后兼容性,但在不同版本的 Docker 之間遷移鏡像時,仍需注意可能存在的兼容性問題。
- 鏡像優(yōu)化:為了減少鏡像文件的體積,可以在構(gòu)建鏡像時采用多階段構(gòu)建、清理不必要的文件等方式來優(yōu)化鏡像,使導出的文件更小,便于管理和傳輸。
總結(jié)
到此這篇關于Docker保存鏡像和導入鏡像文件的文章就介紹到這了,更多相關Docker保存鏡像和導入鏡像文件內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
docker 安裝ElasticSearch 6.x的教程詳解
這篇文章主要介紹了docker 安裝ElasticSearch 6.x的教程,非常不錯,具有一定的參考借鑒價值 ,需要的朋友可以參考下2019-04-04maven構(gòu)建docker鏡像push到鏡像倉庫方式
這篇文章主要介紹了maven構(gòu)建docker鏡像push到鏡像倉庫方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2023-11-11