zoukankan      html  css  js  c++  java
  • Docker:镜像的迁移

    从202将现有镜像搬到207的过程。

    先说导出,两种方法:Docker save 和 docker export,前者保存镜像,后者导出容器。

    docker save docker.io/java:7-jre > img_java_7_jre.tar

    而导出容器则需要先启动一个容器。

    docker run -it docker.io/java:7-jre
    docker export 7e8a0dc1cb88 > java_7_jre.tar

    注意,这里的 7e8a0dc1cb88是容器的ID。
    然后我们会得到两个tar文件,大小略有不同,一个来自镜像的备份,一个来自容器的备份。

    -rw-r--r--. 1  354796032 3月  25 09:10 img_java_7_jre.tar
    -rw-r--r--. 1  350644224 3月  25 09:09 java_7_jre.tar

    这里我们可以重新命名了,原来202上的名字太罗嗦了。
    测试一下,执行时会发现报错,必须加上入口命令才能运行。

    # docker run -it java:7-jre
    Error response from daemon: No command specified
    # docker run -it java:7-jre /bin/bash
    root@5ce0c4d8c896:/# ls
    bin  boot  dev  etc  home  lib  lib64  media  mnt  opt  proc  root  run  sbin  srv  sys  tmp  usr  var
    root@5ce0c4d8c896:/# java -version
    java version "1.7.0_95"
    OpenJDK Runtime Environment (IcedTea 2.6.4) (7u95-2.6.4-1~deb8u1)
    OpenJDK 64-Bit Server VM (build 24.95-b01, mixed mode)
    root@5ce0c4d8c896:/#
    root@5ce0c4d8c896:/#
    root@5ce0c4d8c896:/# exit
    exit

    与我们原来的行为略有不同。

    再试一下从镜像备份的恢复,先把刚才启动的这个容器删除,再加载备份即可。

    docker rm -f 5ce0c4d8c
    docker load < img_java_7_jre.tar

    现在用 docker images 就可以看到新的镜像了。
    同样执行一下,会发现它带有一个入口。

    # docker run -it java:7-jre
    root@f6feabb7ebb7:/# 

  • 相关阅读:
    git修改远程仓库地址
    Result Maps collection already contains value for com.miniprogram.meirong.user.dao.UserMapper.BaseResultMap
    查看微信小程序的appID和secret
    Springboot配置fastjson开发
    本地仓库上传码云
    总结分析Java常见的四种引用
    equals和hashcode 和 ==方法说明
    关于Class.forName(className).newInstance()介绍
    Java枚举
    抽象工厂模式-与-工厂方法模式区别
  • 原文地址:https://www.cnblogs.com/MarchThree/p/6352164.html
Copyright © 2011-2022 走看看