zoukankan      html  css  js  c++  java
  • Docker之导出容器export与导入容器import

    导出容器

    我们可以使用docker export CONTAINER命令导出一个容器到文件,不管此时该容器是否处于运行中的状态。导出容器前我们先进入容器,创建一个文件,过程如下。

    首先创建容器busybox2,(注意:不加-it选项的话,容器会立刻停止)

    docker run  -itd --name=busybox2 busybox

    进入容器创建文件

    docker exec -it busybox2 sh
    cd /tmp && touch test

    使用Ctrl+D退出容器终端后,在命令行执行导出命令

    docker export -o busybox2.tar busybox2

    执行以上命令后会在当前文件夹下生成 busybox2.tar 文件,我们可以将该文件拷贝到其他机器上,通过导入命令实现容器的迁移。

    导入容器

    通过docker export命令导出的文件,可以使用docker import命令导入,执行完docker import后会变为本地镜像,最后再使用docker run命令启动该镜像,这样我们就实现了容器的迁移。

    导入容器的命令格式为 docker import [OPTIONS] file|URL [REPOSITORY[:TAG]]。接下来我们一步步将上一步导出的镜像文件导入到其他机器的 Docker 中并启动它。

    首先,使用docker import命令导入上一步导出的容器

    docker import busybox2.tar busybox2:test

    此时,busybox.tar 被导入成为新的镜像,镜像名称为 busybox:test 。下面,我们使用docker run命令启动并进入容器,查看上一步创建的临时文件

    docker run -it busybox2:test sh
    / # ls /tmp/
    test

    可以看到我们之前在 /tmp 目录下创建的 test 文件也被迁移过来了。这样我们就通过docker export和docker import命令配合实现了容器的迁移。

    补充

    load 和 save 是搭配使用的,主要用来直接操作镜像,而 import 是和 export 搭配使用的,主要是用来操作容器的。具体可以参考这里 https://www.cnblogs.com/Cherry-Linux/p/8025777.html

    docker save    :将一个镜像导出为文件,再使用docker load命令将文件导入为一个镜像,会保存该镜像的的所有历史记录。比docker export命令导出的文件大,很好理解,因为会保存镜像的所有历史记录。
    docker export :将一个容器导出为文件,再使用docker import 命令将容器导入成为一个新的镜像,但是相比docker save命令,容器文件会丢失所有元数据和历史记录,仅保存容器当时的状态,相当于虚拟机快照。

    本文源自:拉勾教育课程:由浅入深吃透 Docker,讲师:郭少 前 360 高级容器技术专家

  • 相关阅读:
    js变量的作用域问题
    HTML网页公用头部与尾部的一些方法
    拖动对象ondrag
    子div设置float后导致父div无法自动撑开的问题
    js像素运算问题
    js自动轮播图片的两种循环方法(原创)
    display:none显示和隐藏
    Linux shell脚本基础学习详细介绍(完整版)一
    java技术思维导图(转载)
    VIM编辑命令的技巧
  • 原文地址:https://www.cnblogs.com/FengZeng666/p/14158424.html
Copyright © 2011-2022 走看看