Docker本地鏡像的導(dǎo)出導(dǎo)入兩種方案介紹
前言
Docker中的導(dǎo)入和導(dǎo)出,提供兩種方案,下面分別介紹。
- 對(duì)于容器(container)的導(dǎo)入和導(dǎo)出,使用export和import。
- 對(duì)于鏡像(image)的導(dǎo)入和導(dǎo)出,使用save和load。
1. 容器(container)的導(dǎo)入和導(dǎo)出
如果需要導(dǎo)出和導(dǎo)入容器(container),則使用export和import命令。
1)查看本機(jī)的容器(container)
通過命令docker ps -a來(lái)查詢本機(jī)所有的容器。
示例如下 :
$ docker ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 6d2304b6a8e2 registry "/entrypoint.sh /etc…" 2 hours ago Up 2 hours 0.0.0.0:5000->5000/tcp, :::5000->5000/tcp registry $
2)導(dǎo)出容器(container)
導(dǎo)出容器(container)命令格式:
docker export <容器ID> > <生成容器文件>.tar
示例如下:
$ docker export 6d2304b6a8e2 > registry_container.tar $ $ ls -la -rw-rw-r-- 1 wrs wrs 25727488 Oct 24 23:24 registry.tar
3)導(dǎo)入容器(container)
導(dǎo)入容器(container)命令格式:
docker import - <新鏡像名稱> < <容器文件>.tar
示例如下:
$ docker import - registry-new < registry_container.tar sha256:b8f4b29755a2fcc3e82e33895e911cb2b151195561f257e6baa8f4caec31612b $ $ docker images REPOSITORY TAG IMAGE ID CREATED SIZE registry-new latest b8f4b29755a2 13 seconds ago 25.2MB registry latest 75ef5b734af4 12 months ago 25.4MB
2. 鏡像(image)的導(dǎo)入和導(dǎo)出
如果需要導(dǎo)出和導(dǎo)入鏡像(image),則使用save和load命令。
1)查看本機(jī)的鏡像(image)
通過命令docker images來(lái)查詢本機(jī)所有的鏡像。
示例如下:
$ docker images REPOSITORY TAG IMAGE ID CREATED SIZE registry-new latest b8f4b29755a2 5 minutes ago 25.2MB registry latest 75ef5b734af4 12 months ago 25.4MB
2)保存鏡像
使用docker save命令根據(jù)鏡像ID將鏡像保存成一個(gè)文件。命令格式:
docker save <鏡像ID> > <鏡像文件>.tar
示例如下:
$ docker save 75ef5b734af4 > registry_image.tar $ ls -l total 50576 -rw-rw-r-- 1 wrs wrs 26008064 Oct 24 23:43 registry_image.tar
還可以將多個(gè)鏡像打成一個(gè)文件。命令格式:
docker save -o <鏡像文件>.tar <鏡像1名稱>:<TAG> <鏡像2名稱>:<TAG> <鏡像3名稱>:<TAG>
示例如下:
$ docker images REPOSITORY TAG IMAGE ID CREATED SIZE registry-new latest b8f4b29755a2 17 minutes ago 25.2MB mysql latest be960704dfac 9 days ago 602MB mariadb latest 4b8711c6c639 7 weeks ago 407MB registry latest 75ef5b734af4 12 months ago 25.4MB $ $ docker save -o multi_images.tar mysql:latest mariadb:latest registry:latest wrs@wrs-VirtualBox:/tmp$ wrs@wrs-VirtualBox:/tmp$ ls -l total 1083696 -rw------- 1 wrs wrs 1057908736 Oct 24 23:49 multi_images.tar -rw-rw-r-- 1 wrs wrs 26008064 Oct 24 23:43 registry_image.tar -rw-rw-r-- 1 wrs wrs 25727488 Oct 24 23:24 registry.tar
3)載入鏡像
使用docker load命令將鏡像文件加載。命令格式:
docker load < <鏡像文件>.tar
示例如下:
$ docker images REPOSITORY TAG IMAGE ID CREATED SIZE registry-new latest b8f4b29755a2 26 minutes ago 25.2MB mariadb latest 4b8711c6c639 7 weeks ago 407MB registry latest 75ef5b734af4 12 months ago 25.4MB $ $ docker load < mysql_image.tar 664144bd1f24: Loading layer [==================================================>] 115.7MB/115.7MB d6b2e74ff5bc: Loading layer [==================================================>] 11.26kB/11.26kB e4b9aa8d7f77: Loading layer [==================================================>] 2.359MB/2.359MB 351aeade47c3: Loading layer [==================================================>] 16.94MB/16.94MB ba13a3d5fd83: Loading layer [==================================================>] 6.656kB/6.656kB a175988b08be: Loading layer [==================================================>] 3.072kB/3.072kB 46eea9ff66e1: Loading layer [==================================================>] 142.3MB/142.3MB 34e3dfece44b: Loading layer [==================================================>] 3.072kB/3.072kB 95debb10d09a: Loading layer [==================================================>] 342MB/342MB cf0628e5b340: Loading layer [==================================================>] 17.41kB/17.41kB Loaded image: mysql:latest $ $ docker images REPOSITORY TAG IMAGE ID CREATED SIZE registry-new latest b8f4b29755a2 27 minutes ago 25.2MB mysql latest be960704dfac 9 days ago 602MB mariadb latest 4b8711c6c639 7 weeks ago 407MB registry latest 75ef5b734af4 12 months ago 25.4MB
3. 兩種方案的差別
1)是否包含鏡像歷史
- export導(dǎo)出(import導(dǎo)入)是根據(jù)容器獲取的鏡像,再導(dǎo)入時(shí)會(huì)丟失鏡像所有的歷史記錄和元數(shù)據(jù)信息(即僅保存容器當(dāng)時(shí)的快照狀態(tài)),所以無(wú)法進(jìn)行回滾操作。
- save保存(load加載)的是鏡像,沒有丟失鏡像的歷史,可以回滾到之前的層(layer)。
2)是否可以對(duì)鏡像重命名
- 容器的import可以為鏡像指定新的名稱
- 鏡像的load不能對(duì)載入的鏡像重命名
3)是可以將多個(gè)鏡像/容器打包到一個(gè)文件
- export不支持
- save支持
4)應(yīng)用場(chǎng)景不同
- 容器的export導(dǎo)出的應(yīng)用場(chǎng)景:主要是用來(lái)制作基礎(chǔ)鏡像。比如從一個(gè)ubuntu鏡像啟動(dòng)一個(gè)容器,然后安裝一些軟件和進(jìn)行一些設(shè)置后,使用export保存為一個(gè)基礎(chǔ)鏡像。然后,把這個(gè)鏡像分發(fā)給他人使用,比如作為基礎(chǔ)的開發(fā)環(huán)境。
- 鏡像的save保存的應(yīng)用場(chǎng)景:如果應(yīng)用的是使用docker-compose.yml編排的多個(gè)鏡像組合,但要部署的客戶服務(wù)器并不能連外網(wǎng)。這時(shí)就可以使用save將用的鏡像打包,然后拷貝到客戶的服務(wù)器上使用load載入。
總結(jié)
到此這篇關(guān)于Docker本地鏡像的導(dǎo)出導(dǎo)入兩種方案的文章就介紹到這了,更多相關(guān)Docker本地鏡像導(dǎo)出導(dǎo)入內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
supervisor下的Dockerfile的多服務(wù)鏡像封裝操作
這篇文章主要介紹了supervisor下的Dockerfile的多服務(wù)鏡像封裝操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來(lái)看看吧2020-11-11
容器化技術(shù)架構(gòu)jenkins?docker?k8s腳本淺析
本篇博文不是詳細(xì)介紹容器技術(shù)的,而是具體的實(shí)踐。此篇博文分為兩個(gè)階段,分別是ci,cd。包含三部分內(nèi)容,分別是jenkins,docker,k8s的腳本淺析2022-03-03
詳解從 0 開始使用 Docker 快速搭建 Hadoop 集群環(huán)境
這篇文章主要介紹了詳解從 0 開始使用 Docker 快速搭建 Hadoop 集群環(huán)境,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下。2017-03-03
Docker?部署?OnlyOffice?文檔服務(wù)器的操作方法
本文詳細(xì)介紹了如何使用Docker部署OnlyOffice文檔服務(wù)器,包括準(zhǔn)備工作、設(shè)置變量和目錄結(jié)構(gòu)、創(chuàng)建并運(yùn)行OnlyOffice容器、訪問OnlyOffice文檔服務(wù)器以及配置和管理,通過這些步驟,你可以在本地快速搭建一個(gè)強(qiáng)大的文檔編輯平臺(tái),感興趣的朋友一起看看吧2025-02-02
Docker 網(wǎng)絡(luò)模式(四種)詳細(xì)介紹
這篇文章主要介紹了Docker 網(wǎng)絡(luò)模式詳細(xì)介紹的相關(guān)資料,這里提供了四種網(wǎng)絡(luò)模式的介紹,Docker 作為輕量級(jí)容器技術(shù),很多比較不錯(cuò)的功能,網(wǎng)絡(luò)不是多好,這里就整理下,需要的朋友可以參考下2016-11-11
centOS中安裝docker-composer時(shí)報(bào)錯(cuò)問題及解決
這篇文章主要介紹了centOS中安裝docker-composer時(shí)報(bào)錯(cuò)問題及解決,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2025-05-05
docker中run命令30個(gè)常用參數(shù)詳解和示例
這篇文章主要給大家介紹了關(guān)于docker中run命令30個(gè)常用參數(shù)的相關(guān)資料,docker?run命令是Docker中最常用的命令之一,用于創(chuàng)建并啟動(dòng)一個(gè)新的容器實(shí)例,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下2024-01-01

