您的位置:首页 > 运维架构 > Docker

在节点之间导出和导入 DOCKER 镜像

2016-10-09 19:59 555 查看
注:本文由 JAMES.COYLE 在 2014-6-16 编写,原文地址为 EXPORT
AND IMPORT A DOCKER IMAGE BETWEEN NODES

Docker 背后的驱动力之一就是通过所有的 Docker 使服务器 能创建一个一致的环境,并且能创建一个能运行在任何 Docker 服务器上的合适的模板或是镜像。

因此,Docker 能非常完美的支持,能非常容易的导出一个正在运行的容器,并且重新导入另外一台 Docker 服务器。

让我们假设一下,例如这个示例,你有一个你将移动到另外一台服务器去的正在运行的容器。这个进程的功能就是把这个容器保存为一个镜像,保存成 一个 tar 文件,把它移动到新的服务器,并且把这个镜像加载进新的 docker 服务器。

找到你想移动的 Docker 容器的 ID。
docker ps -a
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
f4b0d7285fec        ubuntu:14.04        /bin/bash           38 minutes ago      Exit 0                                  hungry_thompson
8ae64c0faa34        ubuntu:14.04        /bin/bash           41 minutes ago      Exit 0                                  jovial_hawking
3a09b2588478        ubuntu:14.04        /bin/bash           45 minutes ago      Exit 0                                  kickass_lovelace


我将使用 
3a09b2588478
 这个 ID 作为示例演示。

提交你的变更,并且把容器保存成镜像,命名为 
mynewimage

$ docker commit 3a09b2588478 mynewimage
4d2eab1c0b9a13c83abd72b38e5d4b4315de3c9967165f78a7b817ca99bf191e


把 
mynewimage
 镜像保存成 tar 文件,我将使用 
/tmp
 目录保存这个镜像,但是你可以使用 
NFS
 来共享,使得非常容易的移动完成
tar 文件。
$ docker save mynewimage > /tmp/mynewimage.tar


把 
mynewimage.tar
 拷贝到新的 Docker 实例中,使用任何工作在你环境中的方法,比如 FTP、SCP 等等。

在你的新的 Docker 实例中运行 
docker load
命令,并且指定 tar 镜像文件的位置。
$ docker load < /tmp/mynewimage.tar


最后,运行 
docker images
 命令检查镜像现在是否可用。

$ docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             VIRTUAL SIZE
mynewimage          latest              4d2eab1c0b9a        5 minutes ago       278.1 MB
ubuntu              14.04               ad892dd21d60        11 days ago         275.5 MB
<none>              <none>              6b0a59aa7c48        11 days ago         169.4 MB
<none>              <none>              6cfa4d1f33fb        7 weeks ago         0 B
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  docker 运维 虚拟化