这篇文章将为大家详细讲解有关Docker images本地迁移的案例,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。最近在学习docker,经常遇到的一个问题是,在下载docker image的时候,由于众
这篇文章将为大家详细讲解有关Docker images本地迁移的案例,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。
最近在学习docker,经常遇到的一个问题是,在下载docker image的时候,由于众所周知的网络原因导致失败,虽然网上也有很多解决方案,比如使用Docker Hub Mirror 之类的国内镜像服务,不过由于个人原因(侥幸有一台国外的VM),我更倾向于不通过docker reGIStry共享下载的image。
不通过docker registry,将A机器上的docker image共享给其他机器,即docker镜像本地迁移。
使用docker的save 和 load命令, 具体步骤如下
在A机器上列出所有的docker image,并找到你要保存的image名
sudo docker images
在A机器上使用docker save命令,保存image为tar文件
sudo docker save image_name -o file_path
其中,image_name替换为第一步里找到的要保存的image名。file_path是导出的tar文件路径,比如/home/tmp/image1.tar
将导出的image tar文件传到其他机器,如机器B。可以使用各种方式,比如scp之类的,在这里不详述了。
在需要使用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 NAMES9505a10e6d29 Nginx "nginx -g 'daemon of…" 34 minutes aGo Exited (0) 8 minutes ago mynginx4c89fff9ac8c mysql:5.6 "docker-entrypoint.s…" 11 days ago Exited (0) 11 days ago myMysql0abefefe2592 Centos "/bin/bash" 2 months ago Exited (255) 12 days ago mycentos
容器保存为对象,docker commit 容器名 要保存的名字
[root@localhost conf]# docker commit mynginx mynginx_backupsha256:a6ca067596a2c319ddcdc9592afa9a7e9be4c157959c0327214d3e577333ed3a
查看刚才保存的镜像
[root@localhost conf]# docker imagesREPOSITORY TAG IMAGE ID CREATED SIZEmynginx_backup latest a6ca067596a2 19 seconds ago 109MB
镜像备份(保存为tar文件),docker save -o 容器名.tar 要保存的名字
[root@localhost ~]# docker save -o mynginx.tar mynginx_backup
查看当前目录
[root@localhost ~]# lsanaconda-ks.cfg conf data initial-setup-ks.cfg java logs mynginx.tar original-ks.cfg
删除原来的镜像并查看
[root@localhost ~]# docker rmi mynginx_backupUntagged: mynginx_backup:latestDeleted: sha256:a6ca067596a2c319ddcdc9592afa9a7e9be4c157959c0327214d3e577333ed3aDeleted: sha256:facd3b28655186bdc7349bc017557ed80f94155831a8a3ed936f498e2f5b6b1c[root@localhost ~]# docker imagesREPOSITORY TAG IMAGE ID CREATED SIZE
镜像恢复,docker load -i 打包好的容器的文件名.tar
[root@localhost ~]# docker load -i mynginx.tar ea4399e4dbe6: Loading layer [==================================================>] 6.656kB/6.656kBLoaded image: mynginx_backup:latest[root@localhost ~]# docker imagesREPOSITORY TAG IMAGE ID CREATED SIZEmynginx_backup latest a6ca067596a2 7 minutes ago 109MB
使用该镜像创建容器
[root@localhost ~]# docker run --name mynginx2 -p 80:80 -d mynginx_backupa4809747f3c233D5a8f0c35542449adda10c06305f32c32a55e4842630212760
浏览器输入ip地址,看是否成功
关于“docker images本地迁移的案例”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。
--结束END--
本文标题: docker images本地迁移的案例
本文链接: https://www.lsjlt.com/news/268660.html(转载时请注明来源链接)
有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
下载Word文档到电脑,方便收藏和打印~
2024-05-21
2024-05-21
2024-05-21
2024-05-21
2024-05-21
2024-05-21
2024-05-21
2024-05-21
2024-05-21
2024-05-21
回答
回答
回答
回答
回答
回答
回答
回答
回答
回答
0