docker save
可以通過以下步驟將Docker鏡像導(dǎo)出到另一臺(tái)計(jì)算機(jī)上:
-
在本地計(jì)算機(jī)上使用以下命令將Docker鏡像保存為tar文件:
docker save -o <image-name>.tar <image-name>
其中,<image-name>是要導(dǎo)出的Docker鏡像的名稱。
-
將保存的tar文件傳輸?shù)搅硪慌_(tái)計(jì)算機(jī)上,可以使用scp命令或其他文件傳輸工具。
-
在目標(biāo)計(jì)算機(jī)上使用以下命令將tar文件加載為Docker鏡像:
docker load -i image-name.tar
其中,<image-name>是要導(dǎo)入的Docker鏡像的名稱。
-
確認(rèn)鏡像已成功導(dǎo)入,可以使用以下命令查看:
docker images
如果成功導(dǎo)入,將會(huì)看到導(dǎo)入的Docker鏡像的名稱和版本號(hào)。
注意:在導(dǎo)出和導(dǎo)入Docker鏡像時(shí),需要確保兩臺(tái)計(jì)算機(jī)上的Docker版本相同或兼容。
docker export
Docker可以使用docker export
命令來導(dǎo)出一個(gè)container。具體命令如下:
docker export container_id > file_name.tar
docker import - new_hangger_server < file_name.tar
這個(gè)命令會(huì)將container的文件系統(tǒng)打包成一個(gè)tar文件,并輸出到標(biāo)準(zhǔn)輸出流中。我們可以使用重定向符號(hào)將其保存到一個(gè)文件中。
導(dǎo)出的內(nèi)容與導(dǎo)出images有以下區(qū)別:
- 導(dǎo)出的是container,而不是image。導(dǎo)出的內(nèi)容包含了container的文件系統(tǒng),但不包含Docker鏡像的元數(shù)據(jù)和配置信息。
- 導(dǎo)出的內(nèi)容是一個(gè)tar文件,而不是Docker鏡像。導(dǎo)出的內(nèi)容可以被導(dǎo)入到其他Docker環(huán)境中,但需要手動(dòng)創(chuàng)建一個(gè)新的container。
- 導(dǎo)出的內(nèi)容不包含container的元數(shù)據(jù)和配置信息。如果需要導(dǎo)出container的元數(shù)據(jù)和配置信息,可以使用
docker inspect
命令。
因此,導(dǎo)出container和導(dǎo)出images的目的和使用場(chǎng)景是不同的。導(dǎo)出container主要用于備份和遷移container的文件系統(tǒng),而導(dǎo)出images主要用于分享和分發(fā)Docker鏡像。
附:兩種方案的差別
特別注意:兩種方法不可混用。
如果使用 import 導(dǎo)入 save 產(chǎn)生的文件,雖然導(dǎo)入不提示錯(cuò)誤,但是啟動(dòng)容器時(shí)會(huì)提示失敗,會(huì)出現(xiàn)類似"docker: Error response from daemon: Container command not found or does not exist"的錯(cuò)誤。文章來源:http://www.zghlxwxcb.cn/news/detail-535477.html
1,文件大小不同
export 導(dǎo)出的鏡像文件體積小于 save 保存的鏡像文章來源地址http://www.zghlxwxcb.cn/news/detail-535477.html
2,是否可以對(duì)鏡像重命名
- docker import 可以為鏡像指定新名稱
- docker load 不能對(duì)載入的鏡像重命名
3,是否可以同時(shí)將多個(gè)鏡像打包到一個(gè)文件中
- docker export 不支持
- docker save 支持
4,是否包含鏡像歷史
- export 導(dǎo)出(import 導(dǎo)入)是根據(jù)容器拿到的鏡像,再導(dǎo)入時(shí)會(huì)丟失鏡像所有的歷史記錄和元數(shù)據(jù)信息(即僅保存容器當(dāng)時(shí)的快照狀態(tài)),所以無法進(jìn)行回滾操作。
- 而 save 保存(load 加載)的鏡像,沒有丟失鏡像的歷史,可以回滾到之前的層(layer)。
5,應(yīng)用場(chǎng)景不同
- docker export 的應(yīng)用場(chǎng)景:主要用來制作基礎(chǔ)鏡像,比如我們從一個(gè) ubuntu 鏡像啟動(dòng)一個(gè)容器,然后安裝一些軟件和進(jìn)行一些設(shè)置后,使用 docker export 保存為一個(gè)基礎(chǔ)鏡像。然后,把這個(gè)鏡像分發(fā)給其他人使用,比如作為基礎(chǔ)的開發(fā)環(huán)境。
- docker save 的應(yīng)用場(chǎng)景:如果我們的應(yīng)用是使用 docker-compose.yml 編排的多個(gè)鏡像組合,但我們要部署的客戶服務(wù)器并不能連外網(wǎng)。這時(shí)就可以使用 docker save 將用到的鏡像打個(gè)包,然后拷貝到客戶服務(wù)器上使用 docker load 載入。
到了這里,關(guān)于docker 保存鏡像、容器與導(dǎo)入鏡像容器的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!