在使用docker的時候我們都會用到鏡像,而有些鏡像是非常難下載的,或者在一臺主機上拉取鏡像後,能不能通過導入導出的功能把docker images遷移到其他主機上呢?(不考慮用私服的情況下)
答案是肯定的。
一、docker鏡像的導出(docker images鏡像保存)
docker save -o <要保存的文件名.tar> <要保存的源鏡像id>
例如:
1-1.查詢所有鏡像,找到你想要保存的源鏡像,比如我們要保存nginx/nginx-ingress 的鏡像,那麼執行命令docker images後可以看到它的鏡像id是b68fb03da1ee
[root@master ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
nginx/nginx-ingress 1.6.3 b68fb03da1ee 5 days ago 165MB
1-2.保存鏡像(導出鏡像)
[root@master ~]# docker save -o nginx-ingress.tar b68fb03da1ee
註釋:
nginx-ingress.tar是你導出的鏡像的文件名,名字你可以隨意命名(最好以.tar結尾)
b68fb03da1ee是用docker images查出來的你想要導出的鏡像的id
1-3.然後在你的當前目錄下就會發現多出來個nginx-ingress.tar文件。
二、docker鏡像的導入(docker images鏡像加載)
想辦法把剛纔保存的鏡像弄到目標服務器上去(略)
1.導入鏡像到新服務器上
docker load -i <導出好的鏡像文件完整文件名>
例如:
1-1.導入docker鏡像
[root@client ~]# docker load -i nginx-ingress.tar
1-2.查看所有鏡像
[root@client ~]# docker images
此時你會發現本機docker鏡像庫多出來個沒有鏡像名,又沒有鏡像id的一個神奇鏡像,沒錯,這個就是剛纔你導入的那個鏡像。記住它的id(比如鏡像標籤是imageidqq37213690),馬上要用到它。
1-3.給鏡像打標籤
[root@client ~]# docker tag imageidqq37213690 nginx/nginx-ingress:1.6.3
(囉嗦:你未必必須將鏡像標籤名命名和導出前一樣,完全可以改成你想要的,如:harbor.hiibm.com/nginx-ingress-image:1.6.3)
如果沒有報錯,ok,那至此docker鏡像就導出成功並導入成功了。
---------------------------------END------------------------2020年3月12日14:42:02---------------------------------
老鐵隨手點個贊吧,雙擊666666666666666666666