• Docker技术入门与实战 第二版-学习笔记-4-Dockerfile外其他生成镜像的方法


    其它生成镜像的方法

    即除了标准地使用Dockerfile来生成镜像外,还有一些其他的方法

    1)从 rootfs 压缩包导入

    格式:docker import [选项] <文件>|<URL>|- [<仓库名>[:<标签>]]

    压缩包可以是本地文件、远程 Web 文件,甚至是从标准输入中得到。压缩包将会在镜像 / 目录展开,并直接作为镜像第一层提交。

    比如我们想要创建一个 OpenVZ Ubuntu 14.04 模板的镜像:

    docker import http://download.openvz.org/template/precreated/ubuntu-14.04-x86_64-minimal.tar.gz openvz/ubuntu:14.04

    2)docker save 和 docker load ——不推荐使用

    用以将镜像保存(docker)为一个tar文件,然后传输到另一个位置上,在加载(docker load)进来

    ⚠️不推荐,现在镜像迁移应该直接使用Docker Registry,无论是直接使用Docker Hub还是使用内网私有Registry都可以

    1> 保存镜像

    使用docker save命令可以将镜像保存为归档文件。

    比如我们希望保存这个alpine镜像

    userdeMBP:~ user$ docker images alpine
    REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
    alpine              latest              196d12cf6ab1        3 months ago        4.41MB

    保存镜像的命令为:

    userdeMBP:~ user$ docker save alpine | gzip > alpine-latest.tar.gz

    这个命令的意思就是先保存alpine镜像 ,然后再使用gzip进行压缩

    最后就在~目录下生成了一个alpine-latest.tar.gz压缩文件

    2> 加载镜像

    然后我们将 alpine-latest.tar.gz文件复制到了到了另一个机器上,可以用下面这个命令加载镜像:

    $ docker load -i alpine-latest.tar.gz

    -i, --input string   Read from tar archive file, instead of STDIN  从tar归档文件中读入,替代STDIN输入

    3>结合

    如果我们结合这两个命令以及 ssh甚至 pv的话,利用 Linux 强大的管道,我 们可以写一个命令完成从一个机器将镜像迁移到另一个机器,并且带进度条的功 能:

    docker save <镜像名> | bzip2 | pv | ssh <用户名>@<主机名> 'cat | docker load'
  • 相关阅读:
    Java实现分页
    研发技能列表
    shell 函数
    养生
    再谈创新
    写代码注意事项
    排查问题方法
    简历撰写
    jenkins
    架构
  • 原文地址:https://www.cnblogs.com/wanghui-garcia/p/10120839.html
Copyright © 2020-2023  润新知