在 docker 之間導出導入鏡像的方法
很喜歡玩docker,但最新遇到一個問題,公司給的新機器的dns有問題,導致pull不下來鏡像。
沒辦法了,沒有鏡像什么神馬都干不了,又不能花很多時間去搭建私有的鏡像庫,只有另尋辦法了。
廢話少說,經(jīng)過探究,發(fā)現(xiàn) docker 提供把鏡像導出export
(保存save
)為文件的機制,這樣就可以把鏡像copy到任意地方了。
1. 導出 export - 導入 import
格式:docker export CONTAINER(容器)
使用 docker ps -a 查看本機已有的容器,如:
我們使用容器 furious_bell,現(xiàn)在要將這個容器保存為一個文件 myunbuntu-export-1204.tar
docker export furious_bell > /home/myubuntu-export-1204.tar
導出完成后,就可以使用 import 導入了
docker import - /home/myubuntu-export-1204.tar
2.保存save - 加載 load
格式:docker save IMAGE(鏡像)
使用 docker images 查看本機已有的鏡像(也可以使用 docker commit <CONTAIN-ID> <IMAGE-NAME>命令把一個正在運行的容器保存為鏡像),如:
這里有個基礎鏡像:ubuntu:12.04,現(xiàn)在要將這個鏡像保存為一個文件myubuntu-save-1204.tar
docker save 9610cfc68e8d > /home/myubuntu-save-1204.tar
有點慢,稍微等待一下,沒有任何warn信息就表示保存OK。9610cfc68e8d 是鏡像ID
現(xiàn)在就可以在任何裝 docker 的地方加載 剛保存的鏡像了
docker load < /home/myubuntu-save-1204.tar
3.導出 export 與 保存 save 的區(qū)別
(1).export導出的鏡像文件大小 小于 save保存的鏡像
(2).export 導出(import導入)是根據(jù)容器拿到的鏡像,再導入時會丟失鏡像所有的歷史,所以無法進行回滾操作(docker tag <LAYER ID> <IMAGE NAME>);而save保存(load加載)的鏡像,沒有丟失鏡像的歷史,可以回滾到之前的層(layer)。(查看方式:docker images --tree)
注:導入加載進來覺得不合適可以使用 docker rm 容器ID 、 docker rmi 鏡像ID 來刪掉。
移除所有的容器和鏡像(大掃除):
docker kill $(docker ps -q) ; docker rm $(docker ps -a -q) ; docker rmi $(docker images -q -a)
參考:
http://www.tuicool.com/articles/emYVRzv
http://my.oschina.net/zjzhai/blog/225112
以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
相關文章
Docker?Compose搭建Wordpress服務實現(xiàn)詳解
這篇文章主要為大家介紹了Docker?Compose搭建Wordpress服務實現(xiàn)詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2023-03-03jenkins+gitlab+nginx部署前端應用實現(xiàn)
在日常開發(fā)中,往往可能同時多個項目并行進行開發(fā),本文介紹了jenkins+gitlab+nginx部署前端應用實現(xiàn),感興趣的可以了解一下2021-05-05Docker 教程之存出和載入鏡像,移除及鏡像實現(xiàn)原理
這篇文章主要介紹了Docker 教程之存出和載入鏡像,移除及鏡像實現(xiàn)原理的相關資料,需要的朋友可以參考下2016-12-12docker環(huán)境下分布式運行jmeter的教程詳解
這篇文章主要介紹了docker環(huán)境下分布式運行jmeter的教程,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-10-10