zoukankan      html  css  js  c++  java
  • 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'
  • 相关阅读:
    深度之眼PyTorch训练营第二期 --- 8、权值初始化
    深度之眼PyTorch训练营第二期 ---7、nn网络层--卷积层
    深度之眼PyTorch训练营第二期 ---6、nn.Module与网络模型构建
    C#数据库部分复习
    【jzoj1481】偷懒的西西
    【2020.12.03提高组模拟】黎明卿 (bondorudo)
    【2020.11.30提高组模拟】剪辣椒(chilli)
    引流
    【高精度】加减乘+组合数+比较大小(结构体)
    【易懂】费用流【SDOI2009】晨跑
  • 原文地址:https://www.cnblogs.com/wanghui-garcia/p/10120839.html
Copyright © 2011-2022 走看看