docker基于save保存镜像与基于load加载镜像

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

#以busybox镜像创建一个容器,在容器中创建一个hello.txt的文件。

#拉取busybox 最新镜像,实际生产中,docker pull 这一步可以省略,docker run的时候会自己去拉取。

docker pull busybox

docker run --name container1 busybox touch hello.txt

#将对容器container1做出的修改提交为一个新镜像,镜像名为busybox:v1

#********** Begin *********#

docker commit container1 busybox:v1

#********** End **********#
 

Docker提供了镜像备份和恢复的手段,这一节,我们将使用docker loaddocker save命令,实现镜像备份和修复。

将镜像保存到tar包

docker save用来将一个或者多个镜像保存为一个tar文件,默认标准输出流的方式输出,它的具体语法如下:

  1. docker save [OPTIONS] IMAGE [IMAGE...]

其中:

  • docker saveDocker将镜像保存到tar包的命令关键词;
  • OPTIIONS:命令选项,-o指定写到一个文件中,而不是标准输出流中;
  • IMAGE: 需要保存到tar包的镜像,可以指定多个,用空格隔开。

例如,将alpine:latest镜像保存到tar包,对应的语句如下:

  1. docker save alpine:latest > alpine.tar
  2. 或者
  3. docker save -o alpine:lateste alpine.tar

如果想要将多个镜像保存到tar包,例如将alpine:latestubuntu:latest保存到tar包,对应的语句如下:

  1. docker save alpine:latest ubuntu:latest > image.tar
从tar包加载镜像

docker load使用docker save保存的tar文件加载镜像,它的具体语法如下:

  1. docker load [OPTIONS]

其中:

  • docker load:Dockertar包加载镜像的命令关键词;
  • OPTIIONS: 命令选项,-i指定从一个tar文件中读取,而不是标准输入流中。

例如,从alpine.tar中加载镜像,对应的语句如下:

  1. docker load < alpine.tar
  2. 或者
  3. docker load -i alpine.tar

如果一个tar包中包含多个镜像,那么会将这些镜像全部到加载进来。

实例

假设想要将本机的alpine镜像传到另一台机器,首先,在本机执行docker save alpine > alpine-latest.taralpine镜像保存成一个tar文件。

  1. [root@localhost dir1]# docker save alpine > alpine-latest.tar
  2. [root@localhost dir1]# ls
  3. alpine-latest.tar

然后我们将alpine-latest.tar文件复制到了到了另一个机器上,然后在该机器上执行docker load < alpine-latest.tar,这样就可以使用tar包将镜像加载进来了。如下图所示,可以通过docker images alpine查看到alpine:latest镜像。

  1. [root@localhost tempdir]# docker load < alpine-latest.tar
  2. 5bef08742407: Loading layer 4.221 MB/4.221 MB
  3. Loaded image: alpine:latest
  4. [root@localhost tempdir]#docker images alpine
  5. REPOSITORY TAG IMAGE ID CREATED SIZE
  6. alpine latest 7328f6f8b418 5 weeks ago 3.96 MB

如果我们结合这两个命令以及ssh甚至pv的话,利用 Linux强大的管道,我们可以写一个命令完成从一个机器将镜像迁移到另一个机器,并且带进度条的功能: docker save <镜像名> | bzip2 | pv | ssh <用户名>@<主机名> 'cat | docker load'

#!/bin/bash

#首先拉取一个busybox镜像

docker pull busybox:latest

#1.将busybox:latest镜像保存到tar包

#********** Begin *********#

docker save busybox:latest > busybox.tar

#********** End **********#文章来源地址https://www.toymoban.com/news/detail-760513.html

#删除busybox:latest镜像

docker rmi busybox:latest

#2.从tar包加载busybox:latest镜像

#********** Begin *********#

docker load < busybox.tar

#********** End **********#

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

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

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

相关文章

  • dockers镜像传输:docker save和docker load命令的使用

    docker save 和 docker load 是用于导出和导入Docker镜像的命令。这对于在不同的Docker环境之间共享和迁移镜像非常有用。下面是这两个命令的使用方法: docker save 命令用于将一个或多个Docker镜像保存到一个压缩的tar文件中: 其中, OPTIONS 是一些可选参数, IMAGE 是要保存的镜像的名

    2024年04月29日
    浏览(40)
  • docker 本地保存镜像方法--docker export 和docker save 使用介绍

    在很多环境中,由于网络问题,无法docker pull 镜像,就需要tar包方式获取镜像,以下就制作tar包的方式和区别加以介绍: 如果要定义tag,如下操作 三、异常情况 3.1、docker import docker save的包 3.2、docker load docker export 的包 1、https://blog.csdn.net/Wqr_18390921824/article/details/123083151 2、

    2024年02月08日
    浏览(47)
  • Docker打包容器并跨服务器传输重建加载load镜像Unable to find image :latest问题解决 及 Docker在容器未启动的情况下如何修改容器中文件

        使用docker就是因为docker可以快速进行多服务器部署,所以需要对部署好的环境进行打包复制并快速在其它的服务器上进行重建。     其实使用起来非常简单,使用docker export从运行的容器中导出文件,,使用import命令生成镜像批量传至目标服务器然后在目标服务器上进行

    2024年04月17日
    浏览(51)
  • docker 保存镜像、容器与导入镜像容器

    可以通过以下步骤将Docker镜像导出到另一台计算机上: 在本地计算机上使用以下命令将Docker镜像保存为tar文件: 其中,image-name是要导出的Docker镜像的名称。 将保存的tar文件传输到另一台计算机上,可以使用scp命令或其他文件传输工具。 在目标计算机上使用以下命令将tar文

    2024年02月13日
    浏览(46)
  • docker使用load加载tar镜像时报错no such file or directory

    解决docker在使用load加载tar镜像时报错 open /var/lib/docker/tmp/docker-import-xxxxxxxxx/repositories: no such file or directory 在使用docker进行部署时,使用docker save指令对镜像打包成tar文件,在部署机器上使用docker load部署时报错,显示open /var/lib/docker/tmp/docker-import-xxxxxxxxx/repositories: no such file

    2024年02月12日
    浏览(50)
  • 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教程1(Docker安装部署+Docker镜像管理+容器管理常用命令+搭建docker的本地yum源+windows系统安装docker环境)

    本篇文章开始给大家介绍Docker,这个是我非常喜欢的一个服务,介绍给大家,希望大家也能喜欢! 目录 何为容器 Docker环境安装部署 一、yum安装(CentOS7.9) 二、rpm包安装(CentOS) 三、卸载docker环境 四、安装指定的docker版本 五、Ubuntu安装docker环境 六、使用deb安装docker 七、

    2024年01月18日
    浏览(110)
  • 【docker】把镜像save出来

    先把要commit的容器停止。 为了确保提交的镜像反映容器某一精确时刻的稳定状态,应在提交Docker容器为新镜像前先停止该容器。这样生成的新镜像将更可靠、易于管理和重现。 sudo docker commit 容器名 镜像名:tag docker save 镜像名:版本号 -o /路径/保存的包名.tar  sudo docker run -

    2024年04月23日
    浏览(35)
  • docker基础3——制作镜像(基于容器)

    镜像可以理解为应用程序的集装箱,而docker用来装卸集装箱。 docker镜像含有启动容器所需要的文件系统及其内容,所以镜像是用于创建并启动容器。 docker镜像采用分层构建机制,最底层为bootfs,其上为rootfs。 bootfs:用于系统引导的文件系统,包括bootloader和kernel,容器启动完

    2024年02月07日
    浏览(56)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包