Docker镜像导出/导入

这篇具有很好参考价值的文章主要介绍了Docker镜像导出/导入。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Docker镜像导出/导入

一、前言

在实际操作中,为了便于docker镜像环境和服务配置的迁移,我们有时需要将已在测试环境主机上完成一系列配置的docker镜像或运行中的容器镜像导出,并传输到生产或其他目标环境主机上运行。为此,本文主要聚焦于如何实现docker镜像的导出和导入操作。

二、镜像导出/导入

docker镜像的导出/导入,可以用2种方进行操作,但需要注意的是这2种方法不可以混用,以免造成启动容器时失败,下面会以2种不同方进行导出/导入。

2.1、方法一(利用仓库镜像导出/导入)

该方法是通过仓库中的镜像进行导出/导入,也是比较推荐的方法,操作如下:

2.1.1、导出

首先要先确认要导出仓库中的哪些镜像之后再进行导出,如下图查看docker仓库中所有镜像:

docker导出镜像,随手杂记,docker

图中标红的部分就是要导出的镜像。

可利用docker sava命令进行镜像导出,如下:

(base) [root@milvus ~]# docker save -o quay_io_coreos_etcd.tar quay.io/coreos/etcd

quay_io_coreos_etcd.tar:代表导出镜像后的压缩名字,可以任意命名。

-o:指定输出文件名,可以任意命名。

quay.io/coreos/etcd:代表仓库中要导出的镜像名称。按仓库中实际名字为主。

2.1.2、导入

把2.1.1小节中导出的镜像tar包,利用ftp、sftp或是scp命令传到生产或其他目标环境主机上,执行docker load命令进行导入。如下:

传包到生产或其他目标环境主机上:

(base) [root@milvus ~]# scp quay_io_coreos_etcd.tar root@192.168.20.4:/app/docker

生产或其他目标环境主机上导入:

[root@Bert docker]# docker load < quay_io_coreos_etcd.tar

导入过程或导入成功,如下图所示:

docker导出镜像,随手杂记,docker

利用docker images查看仓库中的镜像,如下图所示:

[root@Bert docker ]#docker images

docker导出镜像,随手杂记,docker

依次类推把剩下的镜像按照2.1.1和2.1.2小节的方法重复执行即可。

导入完成的所有镜像,如下图所示:

docker导出镜像,随手杂记,docker

注:如果在某一个容器里安装了某些命令或配置,导出镜像时,一定要先把容器提交到镜像,否则导出的镜像再次导入新的docker中,你安装命令或配置会丢失。

如下所示,我在某一个容器里安装了查看网络的命令,但没有提交容器到镜像,导出后再次导入到其它docker环境后,执行ifconfig时报命令换不到:

[root@Bert milvus]# docker exec -it 33f6015462ea /bin/bash

root@33f6015462ea:/milvus/configs# ifconfig -a

bash: ifconfig: command not found

这里就需要重新再次这装,所以在需要在导出前提交一下容器到镜像,如下使用docker commit命令进行操作:

[root@Bert milvus]# docker commit 33f6015462ea milvusdb/milvus:v2.3.4

sha256:095d810e7bbcc8a663c2b93922a1dad7164d43b675702291f8079392e691b7f6

33f6015462ea:代表容器ID,根据实际情况进行选择。

milvusdb/milvus:v2.3.4:代表镜像名称和镜像标签,可以利用docker images进行查看。

提交完之后,利用docker images命令查看时,你会发现所提交的某一个镜像的大小会发生成变化,如下图所示:

提交前:

docker导出镜像,随手杂记,docker

提交后:

docker导出镜像,随手杂记,docker

2.2、方法二(利用容器中镜像导出/导入)

此方法是通过容器中镜像的ID进行导出的。

2.2.1、导出

利用docker ps -a命令查看要导出的镜像。

(base) [root@milvus ~]#docker ps -a

docker导出镜像,随手杂记,docker

图中标红的部分就是要导出的镜像。

使用docker export命令进行镜像导出。

(base) [root@milvus ~]# docker export e45e6f82fc7f > milvus-etcd.tar

e45e6f82fc7f:代表的是镜像在容器中的ID,根据实际情况进行选择。

milvus-etcd.tar:代表导出镜像后的压缩名字,可以任意命名。

2.2.2、导入

把2.2.1小节中导出的镜像tar包,利用ftp、sftp或是scp命令传到生产或其他目标环境主机上,利用docker export命令导出的镜像可以使用2种方法进行导入。

2.2.2.1、导入方法一

执行docker import命令进行导入

传包到生产或其他目标环境主机上:

(base) [root@milvus ~]# scp milvus-etcd.tar root@192.168.20.4:/app/docker

生产或其他目标环境主机上导入:

[root@Bert docker]# docker import milvus-etcd.tar

导入过程或导入成功,如下所示:

[root@Bert docker]# docker import milvus-etcd.tar

sha256:16313b41937f899ccfcd03c87307e82fa336d876263f6f75b4384c8191c30341

利用docker images查看仓库中的镜像,如下图所示:

[root@Bert docker ]#docker images

docker导出镜像,随手杂记,docker

利用docker import命令导入的镜像,镜像在仓中是没有镜像名称和标签的,可以使用docker tag命令进行修改。

[root@Bert docker]# docker tag 6de761d89694 quay.io/coreos/etcd:v3.5.5

6de761d89694:代表仓库中镜像的ID,根据实际情况进行选择。

quay.io/coreos/etcd:v3.5.5:代表仓库中镜像名称和标签。其中“:”前代表镜像名称,“:”后代表镜像标签,名称和标签可以任意命令,但个人建议名称和标签尽量和原镜像保持一致,以保证镜你的统一,如果做了某些修改,为了和原镜像名称进行区分,可以根据自己的实际情况进行命名。

查看命名后结果。

[root@Bert docker]#docker images

docker导出镜像,随手杂记,docker

2.2.2.2、导入方法二

利用cat image.tar|docker import – image_name:tag命令进行导入。

image.tar:代表2.2.1小节导入的镜像压缩包名称,根据实际导入的包进行选择。

image_name:tag:代表导入镜像时,对镜像的命名和镜像标签,其中“:”前代表镜像名称,“:”后代表镜像标签,名称和标签可以任意命令,但个人建议名称和标签尽量和原镜像保持一致,以保证镜你的统一,如果做了某些修改,为了和原镜像名称进行区分,可以根据自己的实际情况进行命名。

如下操作:

[root@Bert docker]# cat milvus-etcd.tar | docker import  - quay.io/coreos/etcd:v3.5.5

sha256:c861cf7bb555ec93c20e1cf6f01e2104ffff6d1dfd3531fd0634f89c2d12e193

利用docker images查看仓库中的镜像,如下图所示:

[root@Bert docker]#docker images

docker导出镜像,随手杂记,docker

注:如果导入的镜像启动之后,之前在容器里安装的命令不能使用,可以参照2.1.2小节中的“注”进行操作。文章来源地址https://www.toymoban.com/news/detail-845029.html

到了这里,关于Docker镜像导出/导入的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

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

    目录 一、将变动过的容器打包生成新的镜像 二、对镜像进行导出导入 1、将镜像导出为一个镜像img文件 2、将img镜像文件导入,复制出一个完全一样镜像 三、对容器进行导入导出 1、将容器导出为一个镜像tar文件 2、将镜像tar文件导入,生成一个新镜像 四、2种导入导出差异简

    2024年02月03日
    浏览(48)
  • docker导入导出镜像、导入导出容器的命令详解以及使用的场景

    这是一对操作,用于处理 Docker 镜像。这个操作会将所有的镜像层以及元数据打包到一个 tar 文件中。然后,你可以使用 docker load 命令将这个 tar 文件导入到任何 Docker 环境中。例如: 这种方式主要用于分享或迁移整个镜像,包括所有版本、标签和历史。 这也是一对操作,用

    2024年02月16日
    浏览(47)
  • idea使用docker生成镜像(打包镜像,导入镜像,导出镜像)

    选着docker for windows 会出现connection successful,表示链接本地dockerdesktop应用成功 注意事项:注意数据库和redis安装的服务器,如果是宿主机安装需要指定宿主机IP地址如下 在dockerdesktop应用选择images可以看到构建的镜像 通过 docker save -o poiOne.tar 镜像id( 导出的镜像移值到linux导入可

    2024年02月12日
    浏览(52)
  • docker镜像导出保存为tar和tar包导入成docker镜像

    查看容器 查看镜像 导出容器 docker commit 命令,将容器生成新的镜像 docker export 命令,将容器打包成tar, 导出镜像 使用 docker save 同时将 多个 image 打包成一个文件,比如下面将镜像库中的 AAA 和 BBB 打包, 导入镜像 使用 docker import 命令将tar包的镜像文件导入进来 使用 docker l

    2024年02月11日
    浏览(45)
  • Docker 实用指南:本地镜像的导出和导入

    要在Docker中实现本地镜像的导出和导入,您可以按照以下步骤进行操作: 导出镜像: 使用以下命令列出您本地的镜像,以确定要导出的镜像名称和标签: 运行以下命令导出镜像: 例如: 导入镜像: 将导出的镜像文件(.tar 文件)复制到要导入镜像的目标机器上。 在目标机

    2024年02月16日
    浏览(47)
  • Docker环境离线安装教程,附docker容器镜像打包,导出,导入加载镜像等

    (此方式在某些环境下可能不支持,如果不支持 请参考方式2) 下载文件:https://dn-dao-get.daocloud.io/docker/docker-1.13.0-centos-7.2.1511.tar.gz 上传,解压文件, 进入目录 执行 :bash install.sh 启动docker服务:service docker restart 下载地址:https://download.docker.com/linux/static/stable/x86_64/ 验证:

    2024年02月15日
    浏览(60)
  • Docker基础入门:镜像、容器导入导出与私有仓库搭建

    💖The Begin💖点点关注,收藏不迷路💖 1.镜像导入 是复制的过程。 2.容器导入 是将当前容器 变成一个新的镜像。 save 和 export区别: 1)save 保存镜像所有的信息-包含历史信息。 2)export 只导出当前的信息。 首先,两者的操作对象不同。docker save是将一个镜像保存为一个tar包

    2024年02月12日
    浏览(53)
  • 【云原生】Docker镜像和容器的导入导出及常用命令

    大家好,本文是对 Docker 的镜像和容器的一些操作指令的汇总,比如镜像和容器的导入导出,以及一些在使用过程中的常用命令。希望对大家有所帮助~ 1.1、镜像的导入导出 1.1.1、镜像的保存 通过镜像ID保存 方式一: 例如: 方式二: 例如: 通过镜像 repository 和 tag 保存 例如

    2024年02月02日
    浏览(55)
  • 简单指令实现Docker构建镜像启动运行保存导出后再导入新环境完整全流程

    本文做一个简单Docker使用指令指南,可快速实现Docker构建镜像、启动、运行、保存、导出后再导入新环境完整全流程。具体每一个指令又有很多参数和学问,大家可自行查询更详细的解释,本文可用于小白快速构建镜像并使用。 首先,准备一个Dockerfile,包含你要使用的基础

    2024年02月11日
    浏览(46)
  • docker导出镜像、容器打镜像

    有两种方法,一种是通过容器,一种是通过镜像 1 首先使用 docker ps -a 查看本机上的所有容器 2 导出镜像 使用 docker export 命令根据容器 id 将镜像导成一个文件 上面命令执行之后,我们便可以通过 ls 命令在当前目录下发现 image.tar 3 导入镜像 使用 docker import 命令将这个镜像导

    2024年02月03日
    浏览(56)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包