首页 > 生活服务 > 视频技巧

视频技巧

docker 镜像/容器的打包、导出、导入

管理员 1年前 90浏览

常用场景:

当容器有了私有的设置,想把这个容器打包到别的机子上使用

一、将变动过的容器打包生成新的镜像

docker commit -m  "install nginx" -a "lwj"  lwjubuntu  nginx_ubuntu:1.0

lwjubuntu是容器NAMES ,也可换为容器ID。  nginx_ubuntu:1.0 是新镜像的 repository:tag 

打包后会生成新的镜像,镜像ID自然也不一样。

但内容是一样的,包括原有的镜像层数等。

二、对镜像进行导出导入

1、将镜像导出为一个镜像img文件

docker  save  redis  -o  redis.img

2、将img镜像文件导入,复制出一个完全一样镜像

docker load  --input  redis.img

通过镜像文件导入的镜像会和它导出时候保持完全一样信息,比如镜像ID、创建时间、镜像层数等。

三、对容器进行导入导出

1、将容器导出为一个镜像tar文件

 docker export  lwjubuntu >  lwjubuntu.tar

lwjubuntu是容器的NAMES

2、将镜像tar文件导入,生成一个新镜像

导入后是生成一个新镜像而不是直接生成容器。

docker import  - lwjubuntu_new < lwjubuntu.tar

注意:export导出后导入的镜像只有一层,不像用commit打包的能保持原有镜像层数,在此有差别。

docker import - ava/vsftpd:version:latest  < ava-vsftpd_ssl.tar.gz 中 import后 - 的意思:

docker import命令中,-是一个特殊的标志,用于从标准输入(stdin)读取tar文件。在这种情况下,<符号用于将ava-vsftpd_ssl.tar.gz文件的内容重定向到标准输入。

因此,- ava/vsftpd:version < ava-vsftpd_ssl.tar.gz命令的意思是,从ava-vsftpd_ssl.tar.gz文件中导入内容,并将新创建的镜像命名为ava/vsftpd:version

四、2种导入导出差异简单说明

docker  save 导出的对象是镜像。生成文件用.img标识。

docker  export 导出的对象是容器。生成文件用.tar标识。

但生成的文件导入后皆会恢复为镜像。

docker save 会保留镜像所有的历史记录。

docker  export 不会,即没有commot历史,不会保留镜像层数。

docker load 会完全保留原本镜像内容,包括名字。

docker  import 会生成新的镜像,导入时可指定新的名字。


版权声明:本文为原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
关注微信公众号:"cq_xifan";

评论

收藏

评论列表

  • 这篇文章还没有收到评论,赶紧来抢沙发吧~

Powered By 重庆饭哥 © 2014-2022 教学资源分享站 渝ICP备20005643号-1

相信有一天,理想主义终将所向披靡.

Design by © 2021 XIFAN. Powered by 重庆饭哥

站点声明: 本站转载作品版权归原作者及来源网站所有,原创内容作品版权归作者所有,任何内容转载、商业用途等均须联系原作者并注明来源。

友情链接: 官方网站 饭哥在线工具 饭哥导航 在线运行 博客交流社区 重庆艺术工程职业学院