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