Docker导出镜像为压缩包,在另一台机器导入压缩包为镜像,即Docker镜像得导入导出

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

具体步骤

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

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

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

比如现有容器:

可以看到,我有多个容器正在运行中,接下来我们使用以下命令把指定一个容器导出为镜像:

# 导出容器为镜像
docker commit php wjd_php:latest

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

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

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

# wjd_php.tar.gz 文件名前面可以加上绝对路径,不加的话就是当前目录
docker save -o wjd_php.tar.gz wjd_php:latest

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

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

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

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

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

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

# 查看所有镜像
docker images

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

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

最简单的方法是:

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

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

docker ps


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

暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇