佳木斯湛栽影视文化发展公司

主頁 > 知識庫 > docker images本地遷移的實現(xiàn)

docker images本地遷移的實現(xiàn)

熱門標(biāo)簽:硅谷的囚徒呼叫中心 使用U盤裝系統(tǒng) 檢查注冊表項 美圖手機(jī) 百度競價點(diǎn)擊價格的計算公式 網(wǎng)站建設(shè) 阿里云 智能手機(jī)

最近在學(xué)習(xí)docker,經(jīng)常遇到的一個問題是,在下載docker image的時候,由于眾所周知的網(wǎng)絡(luò)原因?qū)е率?,雖然網(wǎng)上也有很多解決方案,比如使用Docker Hub Mirror 之類的國內(nèi)鏡像服務(wù),不過由于個人原因(僥幸有一臺國外的VM),我更傾向于不通過docker registry共享下載的image。

問題很明確:

不通過docker registry,將A機(jī)器上的docker image共享給其他機(jī)器,即docker鏡像本地遷移。

方案也很簡單:

使用docker的save 和 load命令, 具體步驟如下

1.在A機(jī)器上列出所有的docker image,并找到你要保存的image名

sudo docker images

2.在A機(jī)器上使用docker save命令,保存image為tar文件

sudo docker save image_name -o file_path

其中,image_name替換為第一步里找到的要保存的image名。file_path是導(dǎo)出的tar文件路徑,比如/home/tmp/image1.tar

3.將導(dǎo)出的image tar文件傳到其他機(jī)器,如機(jī)器B??梢允褂酶鞣N方式,比如scp之類的,在這里不詳述了。

4.在需要使用image的機(jī)器上(如B機(jī)器)使用docker load命令加載image tar文件

sudo docker load -i file_path 

注:另外,也可以使用docker 的export和import命令實現(xiàn)類似功能,關(guān)于export/save, import/load的區(qū)別,可以自己上網(wǎng)查,在此不做展開了。

基本區(qū)別就是export出來的是容器(無歷史和層信息),而save出來的是image(具有完整的歷史和層信息,支持層回滾)

補(bǔ)充:Docker的鏡像的備份與遷移

第一步:

使用docker ps -a命令查看所有的容器

[root@localhost ~]# docker ps -a 
CONTAINER ID  IMAGE    COMMAND     CREATED    STATUS      PORTS    NAMES
9505a10e6d29  nginx    "nginx -g 'daemon of…" 34 minutes ago  Exited (0) 8 minutes ago      mynginx
4c89fff9ac8c  mysql:5.6   "docker-entrypoint.s…" 11 days ago   Exited (0) 11 days ago       mymysql
0abefefe2592  centos    "/bin/bash"    2 months ago  Exited (255) 12 days ago      mycentos

第二步:

容器保存為對象,docker commit 容器名 要保存的名字

[root@localhost conf]# docker commit mynginx mynginx_backup
sha256:a6ca067596a2c319ddcdc9592afa9a7e9be4c157959c0327214d3e577333ed3a

第三步:

查看剛才保存的鏡像

[root@localhost conf]# docker images
REPOSITORY   TAG     IMAGE ID   CREATED    SIZE
mynginx_backup  latest    a6ca067596a2  19 seconds ago  109MB

第四步:

鏡像備份(保存為tar文件),docker save -o 容器名.tar 要保存的名字

[root@localhost ~]# docker save -o mynginx.tar mynginx_backup

第五步:

查看當(dāng)前目錄

[root@localhost ~]# ls
anaconda-ks.cfg conf data initial-setup-ks.cfg java logs mynginx.tar original-ks.cfg

第六步:

刪除原來的鏡像并查看

[root@localhost ~]# docker rmi mynginx_backup
Untagged: mynginx_backup:latest
Deleted: sha256:a6ca067596a2c319ddcdc9592afa9a7e9be4c157959c0327214d3e577333ed3a
Deleted: sha256:facd3b28655186bdc7349bc017557ed80f94155831a8a3ed936f498e2f5b6b1c
[root@localhost ~]# docker images
REPOSITORY   TAG     IMAGE ID   CREATED    SIZE

第七步:

鏡像恢復(fù),docker load -i 打包好的容器的文件名.tar

[root@localhost ~]# docker load -i mynginx.tar 
ea4399e4dbe6: Loading layer [==================================================>] 6.656kB/6.656kB
Loaded image: mynginx_backup:latest
[root@localhost ~]# docker images
REPOSITORY   TAG     IMAGE ID   CREATED    SIZE
mynginx_backup  latest    a6ca067596a2  7 minutes ago  109MB

第八步:

使用該鏡像創(chuàng)建容器

[root@localhost ~]# docker run --name mynginx2 -p 80:80 -d mynginx_backup
a4809747f3c233d5a8f0c35542449adda10c06305f32c32a55e4842630212760

第九步:

瀏覽器輸入ip地址,看是否成功

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。如有錯誤或未考慮完全的地方,望不吝賜教。

標(biāo)簽:懷化 湖北 煙臺 通遼 湘潭 賀州 山南 黃山

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《docker images本地遷移的實現(xiàn)》,本文關(guān)鍵詞  ;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 收縮
    • 微信客服
    • 微信二維碼
    • 電話咨詢

    • 400-1100-266
    渭源县| 聂荣县| 太湖县| 塔城市| 拉萨市| 洛扎县| 饶平县| 麻城市| 乐亭县| 共和县| 石家庄市| 三原县| 牟定县| 河东区| 孝义市| 乌兰察布市| 安西县| 田阳县| 门头沟区| 湟源县| 鱼台县| 本溪市| 崇礼县| 报价| 方城县| 土默特左旗| 义马市| 信宜市| 永春县| 额尔古纳市| 东乌珠穆沁旗| 明光市| 怀集县| 多伦县| 泰州市| 台州市| 秭归县| 铜鼓县| 买车| 石城县| 东山县|