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

目录

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

二、对镜像进行导出导入

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

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

三、对容器进行导入导出

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

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

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


常用场景:

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

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

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 会生成新的镜像,导入时可指定新的名字。

  • 3
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在Windows系统中,可以使用以下步骤导出Docker镜像: 1. 首先,使用命令`docker ps -a`查看本机所有的容器,找到需要导出镜像容器ID。 2. 使用命令`docker export 容器ID > 文件名.tar`将镜像导出为一个文件,例如`docker export f299f501774c > hangger_server.tar`。导出的文件将保存在当前的Docker终端目录下。 3. 完成导出后,可以通过`docker import 文件名.tar 新镜像名`命令将导出镜像文件导入进来,例如`docker import - new_hangger_server < hangger_server.tar`。使用命令`docker images`可以验证导入镜像是否成功。 总结来说,Docker的`export`命令用于将容器导出为一个镜像文件,`import`命令用于将镜像文件导入为一个新的镜像。这样可以在不同的环境中共享和使用镜像。 请注意,在使用`export`命令导出镜像时,会丢失镜像的所有历史记录和元数据信息,只会保存容器当时的快照状态。而使用`save`命令保存和加载镜像可以保留镜像的历史记录,可以进行回滚操作。 在Windows系统中,导出Docker镜像的场景可以包括制作基础镜像和部署到无法连外网的客户服务器。比如,可以从一个Ubuntu镜像启动一个容器,安装软件和进行设置后,使用`export`命令将其保存为一个基础镜像。然后,可以将该镜像分发给其他人使用,作为基础的开发环境。另外,如果应用是使用Docker Compose编排的多个镜像组合,但要部署的客户服务器无法连外网,可以使用`save`命令将所需镜像打包,并在客户服务器上使用`load`命令加载。 总结来说,在Windows系统中,可以通过`docker export`命令将Docker镜像导出为一个文件,再通过`docker import`命令将文件导入为一个新的镜像。这样可以实现镜像导入导出,方便在不同环境下使用和共享镜像。同时,还可以使用`docker save`命令将多个镜像打包到一个文件中,并使用`docker load`命令加载。不同命令的应用场景根据需求和具体情况选择合适的操作。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [Docker - 实现本地镜像导出导入(export、import、save、load)](https://blog.csdn.net/wozaizhe56/article/details/127642845)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *2* [windows10下安装的docker 导出镜像到另一个电脑](https://blog.csdn.net/yangyong1250/article/details/128356749)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值