您好,登錄后才能下訂單哦!
這篇文章將為大家詳細講解有關docker images本地遷移的案例,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。
最近在學習docker,經常遇到的一個問題是,在下載docker image的時候,由于眾所周知的網絡原因導致失敗,雖然網上也有很多解決方案,比如使用Docker Hub Mirror 之類的國內鏡像服務,不過由于個人原因(僥幸有一臺國外的VM),我更傾向于不通過docker registry共享下載的image。
不通過docker registry,將A機器上的docker image共享給其他機器,即docker鏡像本地遷移。
使用docker的save 和 load命令, 具體步驟如下
1.在A機器上列出所有的docker image,并找到你要保存的image名
sudo docker images
2.在A機器上使用docker save命令,保存image為tar文件
sudo docker save image_name -o file_path
其中,image_name替換為第一步里找到的要保存的image名。file_path是導出的tar文件路徑,比如/home/tmp/image1.tar
3.將導出的image tar文件傳到其他機器,如機器B。可以使用各種方式,比如scp之類的,在這里不詳述了。
4.在需要使用image的機器上(如B機器)使用docker load命令加載image tar文件
sudo docker load -i file_path
注:另外,也可以使用docker 的export和import命令實現類似功能,關于export/save, import/load的區別,可以自己上網查,在此不做展開了。
基本區別就是export出來的是容器(無歷史和層信息),而save出來的是image(具有完整的歷史和層信息,支持層回滾)
補充: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
查看當前目錄
[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
鏡像恢復,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
使用該鏡像創建容器
[root@localhost ~]# docker run --name mynginx2 -p 80:80 -d mynginx_backup a4809747f3c233d5a8f0c35542449adda10c06305f32c32a55e4842630212760
瀏覽器輸入ip地址,看是否成功
關于“docker images本地遷移的案例”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,使各位可以學到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。