docker打包镜像到本地_如何从虚拟机导出镜像

docker打包镜像到本地_如何从虚拟机导出镜像引言当我们在测试环境(本文特指docker容器)部署好自己得服务得时候,想在生产环境上部署我们得服务,又害怕环境不一样导致服务不能运行,那么这个时候就可以把我们得容器导出为镜像,然后再把镜像导出为压缩包,接下来把压缩包复制到我们的生产环境,然后在生产环境把压缩包导入为镜像,最后使用此镜像开一个容器,然后在容器内打开我们的服务,那么我们的服务就可以正常运行啦!环境简介系统环境:ubuntu18.04如果要在新的服务器使用我们的镜像,那么需要新的服务器和你测试环境的服务器的底层系统一致,即如果你测试环

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

引言

当我们在测试环境(本文特指docker容器)部署好自己得服务得时候,想在生产环境上部署我们得服务,又害怕环境不一样导致服务不能运行,那么这个时候就可以把我们得容器导出为镜像,然后再把镜像导出为压缩包,接下来把压缩包复制到我们的生产环境,然后在生产环境把压缩包导入为镜像,最后使用此镜像开一个容器,然后在容器内打开我们的服务,那么我们的服务就可以正常运行啦!

环境简介

系统环境:ubuntu18.04

如果要在新的服务器使用我们的镜像,那么需要新的服务器和你测试环境的服务器的底层系统一致,即如果你测试环境使用的底层系统是ubuntu18.04,那么你的生产环境也要是ubuntu18.04。

具体步骤

第一步:导出我们的容器为镜像

首先,查看正在运行的容器,使用以下命令:

# 查看正在运行中的容器
docker ps
# 查看所有的容器,包括没在运行中的容器
docker ps -a

比如我的容器:
在这里插入图片描述
可以看到,我有两个容器正在运行中,接下来我们使用以下命令把某个容器导出为镜像:

# 导出容器为镜像
docker commit ef5db5c6693b skj:latest

其中,ef5db5c6693b为容器的ID,或者换成容器的名称也可以,skj为我们导出的镜像名称,冒号后面的latest是我们导出的镜像的版本,表示最新版本,也可以给他其它的版本号比如18.04,导出后使用以下命令查看是否导出成功,如果有名为skj的镜像,说明导出成功,这里不做演示:

docker images

第二步:导出镜像为压缩包

使用以下命令,将我们刚才导出的镜像skj导出为.tar形式的压缩包,当然.zip也是可以的:

sudo docker save -o /home/skj.tar skj:latest

以上命令将我们的镜像 skj:latest 导出到/home/目录下,并保存为skj.tar的压缩包。

第三步:复制压缩包到新的服务器

这一步就自行操作啦,用sftp将文件上传到新的服务器指定目录下即可,这里假设我们上传到新的服务器的/home/目录下,然后我们开始进行下一步操作。

第四步:将skj.tar导入为镜像

假设你在新的服务器上已经安装好了docker,那么使用以下命令将我们刚才上传的压缩包导入为镜像:

# 导入方法一
docker load --input /home/skj.tar
# 导入方法二
$ docker load -i /home/skj.tar
# 导入方法三
$ docker load < /home/skj.tar

这样我们就把skj.tar压缩包导入为镜像了,导入之后,使用以下命令查看是否导入成功:

# 查看所有镜像
docker images

在镜像列表中,如果有名为skj,版本为latest的镜像,那么说明我们的镜像已经导入成功了。

第五步:使用我们新导入的镜像

最简单的方法是:

# 使用skj:latest镜像创建并启动一个容器,并以shell的交互模式进入容器内,使用exit退出容器后容器停止运行
docker run -it skj:latest
# 使用skj:latest镜像创建并启动一个容器,但是不进入容器内部,而是在后台运行
docker run -itd skj:latest

然后使用以下命令查看我们新创建的容器:

# 查看新建的容器
docker ps

结语

本文讲解了如何从一台服务器上将我们的容器导出为镜像,然后再将导出的镜像导出为指定目录下的压缩包,然后将压缩包上传到新的服务器,接下来将压缩包导入为新的服务器上的docker镜像,最后使用此镜像创建我们的容器,整个过程思路清晰,容易理解,且每一步基本都有语法解释,详细周到。

参考文章:

CSDN:

  • https://blog.csdn.net/weixin_40816738/article/details/90280644

博客园:

  • https://www.cnblogs.com/gcgc/p/10496059.html
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/196736.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 普罗米修斯监控系统搭建(MAC环境基于Docker)「建议收藏」

    普罗米修斯监控系统搭建(MAC环境基于Docker)「建议收藏」采用Docker环境搭建方式可以快速搭建起测试学习环境第一步:下载docker镜像dockerpullprom/node-exporterdockerpullprom/prometheusdockerpullgrafana/grafana第二步:启动exporter(理解为内置好的监控埋点)dockerrun-d-p9100:9100\-v”/proc:/host/proc:ro”\-v”/sys:/host/sys:ro”\-v”/:/roo

    2022年7月19日
    53
  • CentOS8 Docker 端口映射

    CentOS8 Docker 端口映射概念端口映射:端口映射就是将内网中的主机的一个端口映射到外网主机的一个端口,提供相应的服务。当用户访问外网IP的这个端口时,服务器自动将请求映射到对应局域网内部的机器上。例:我们在内网中有一台Web服务器,但是外网中的用户是没有办法直接访问该服务器的。于是我们可以在路由器上设置一个端口映射,只要外网用户访问路由器ip的80端口,那么路由器会把自动把流量转到内网Web服务器的80端口上。使用使用:dockerrun–namecontainer-name:tag-d-p服务器端口:Doc

    2022年10月18日
    3
  • docker 安装rabbitmq 3.8.9

    docker 安装rabbitmq 3.8.9docker配置加速镜像https://www.runoob.com/docker/docker-mirror-acceleration.htmldockerhub仓库查找官方镜像https://registry.hub.docker.com/_/rabbitmq/获取镜像:dockerpullrabbitmq:3.8.9-management查看镜像dockerimages启动镜像dockerrun-d-it–namerabbit…

    2022年5月23日
    63
  • docker 上传本地镜像_不同docker仓库镜像同步

    docker 上传本地镜像_不同docker仓库镜像同步前言之前通过docker搭建过jenkins+python3环境,如果想要在不同的机器上搭建一样的环境,就可以将之前搭建的镜像上传到镜像仓库,这样方便在不同的机器上快速搭建同一套环境。如果公开的话

    2022年7月31日
    8
  • pve安装docker图形化_怎么安装docker

    pve安装docker图形化_怎么安装docker基本相当于转载,但我光贴图也不行啊,还是把步骤加上去年年底这NUC到手时,就装PVE练手,然而最后做主力挂机的是那会买的个1037U小主机当时就尝试过装LibreELEC,结果是接显示器黑屏不过后来我直接在宿主机上装桌面和Kodi,但是吧那源里的Kodi是17的对于x265是软解。。。怎么装当然是看的值得买上的这个人家是OMV咱这是PVE都是装桌面再装KODI,但是为了保持纯净的PVE所以才想直通…

    2025年6月23日
    3
  • Docker部署Swarm集群

    Docker部署Swarm集群

    2021年6月2日
    113

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号