docker本地项目生成镜像(docker images本地迁移的实现)
docker本地项目生成镜像
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安装详细教程linux(linux中docker的安装教程)
- 安全进入docker容器的方法(使用docker部署一个简单的c/c++程序的方法)
- docker常用命令详解(docker常用命令总结推荐)
- springboot docker 部署(详解docker部署SpringBoot及替换jar包的方法)
- docker怎么创建mysql服务(Docker部署MySQL8集群一主二从的实现步骤)
- docker显示容器的gc日志(解决docker使用GDB,无法进入断点的问题)
- centos7docker部署(CentOS 7下设置Docker代理Linux下Systemd服务的环境变量配置)
- docker配置和管理(Docker 容器监控原理及 cAdvisor的安装与使用说明)
- docker部署mysql多实例(Docker部署mysql一主一从的操作方法)
- docker怎么增加端口(docker 添加端口及获取dockerfile的方法)
- linux搭建nacos(docker搭建nacos1.3.0的实现)
- centos装docker稳定吗(Centos8无法安装docker问题的解决方法)
- docker 重置容器的映射端口(运行中的docker容器端口映射如何修改详解)
- docker端口配置(docker 无法释放端口的解决方案)
- docker运行镜像端口(docker镜像访问本地elasticsearch端口操作)
- docker测试环境搭建(docker环境搭建JMeter+Grafana+influxdb可视化性能监控平台的教程)
- 泪目 这位 刷屏 的英雄,是全椒人的骄傲(泪目这位刷屏)
- 人从众 火炎焱 全椒再现 正月十六走太平 的魅力(人从众火炎焱全椒再现)
- 官宣 全椒籍明星许海峰 奚秀兰 方芳 王璐瑶携手回家 走太平(全椒籍明星许海峰)
- 以前全椒人是怎么过冬的 满满都是回忆(以前全椒人是怎么过冬的)
- NVIDIA显卡份额冲上88 A饭发愁 游戏优化恐没A卡份了(NVIDIA显卡份额冲上88A饭发愁)
- AMD YES A卡还是N卡 A卡和N卡的区别(AMDYESA卡还是N卡)
热门推荐
- php探针哪个牌子好用(php探针使用原理和技巧讲解)
- linux如何执行绝对路径的脚本(Linux目录切换实现代码案例)
- 如何防止表单重复提交
- 组态王如何做按钮弹框(Ratchet 模态框的实现)
- navicat连接mysql1045解决方法(Navicat 连接服务器端中的docker数据库的方法)
- 将docker中的镜像打包教程(本地使用docker打包部署镜像的方法)
- mysql url连接参数配置(浅谈Mysql连接数据库时host和user的匹配规则)
- python 从入门到实践笔记(python基础梳理一推荐)
- pythonsocket编写web服务器(局域网内python socket实现windows与linux间的消息传送)
- python中如何定义带走参数的函数(Python函数定义及传参方式详解4种)
排行榜
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9