很喜歡玩docker,但最新遇到一個(gè)問題,公司給的新機(jī)器的dns有問題,導(dǎo)致pull不下來鏡像。
沒辦法了,沒有鏡像什么神馬都干不了,又不能花很多時(shí)間去搭建私有的鏡像庫,只有另尋辦法了。
廢話少說,經(jīng)過探究,發(fā)現(xiàn) docker 提供把鏡像導(dǎo)出export
(保存save
)為文件的機(jī)制,這樣就可以把鏡像copy到任意地方了。
1. 導(dǎo)出 export - 導(dǎo)入 import
格式:docker export container(容器)
使用 docker ps -a 查看本機(jī)已有的容器,如:
我們使用容器 furious_bell,現(xiàn)在要將這個(gè)容器保存為一個(gè)文件 myunbuntu-export-1204.tar
1
|
docker export furious_bell > /home/myubuntu-export-1204 . tar |
導(dǎo)出完成后,就可以使用 import 導(dǎo)入了
1
|
docker import - /home/myubuntu-export-1204 . tar |
2.保存save - 加載 load
格式:docker save image(鏡像)
使用 docker images 查看本機(jī)已有的鏡像(也可以使用 docker commit <contain-id> <image-name>命令把一個(gè)正在運(yùn)行的容器保存為鏡像),如:
這里有個(gè)基礎(chǔ)鏡像:ubuntu:12.04,現(xiàn)在要將這個(gè)鏡像保存為一個(gè)文件myubuntu-save-1204.tar
1
|
docker save 9610cfc68e8d > /home/myubuntu-save-1204 . tar |
有點(diǎn)慢,稍微等待一下,沒有任何warn信息就表示保存ok。9610cfc68e8d 是鏡像id
現(xiàn)在就可以在任何裝 docker 的地方加載 剛保存的鏡像了
1
|
docker load < /home/myubuntu-save-1204 . tar |
3.導(dǎo)出 export 與 保存 save 的區(qū)別
(1).export導(dǎo)出的鏡像文件大小 小于 save保存的鏡像
(2).export 導(dǎo)出(import導(dǎo)入)是根據(jù)容器拿到的鏡像,再導(dǎo)入時(shí)會丟失鏡像所有的歷史,所以無法進(jìn)行回滾操作(docker tag <layer id> <image name>);而save保存(load加載)的鏡像,沒有丟失鏡像的歷史,可以回滾到之前的層(layer)。(查看方式:docker images --tree)
注:導(dǎo)入加載進(jìn)來覺得不合適可以使用 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)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持服務(wù)器之家。
原文鏈接:http://blog.csdn.net/a906998248/article/details/46236687