如何导出和导入Docker镜像/容器

时间:2020-02-23 14:31:33  来源:igfitidea点击:

在本教程中,我们将研究如何导出和导入Docker镜像和容器。在导出Docker容器之前,我们需要将更改提交到镜像中并进行适当的标记。 Docker有一个export命令,使我们可以将Docker镜像/容器从一个Docker主机系统迁移到另一个节点。

在我的本地Docker系统中,我具有以下Docker镜像。

$sudo docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
rook/ceph           master              d55319cc22f8        12 hours ago        852MB
ceph/ceph           v14.2.2-20190826    9bd6baa6e20a        7 days ago          774MB

导出Docker镜像

在第一个练习中,我们将按原样导出Docker镜像,并将其移动到运行Docker引擎的第二个Node。

sudo docker save rook/ceph:master > rook-ceph.tar
sudo docker save ceph/ceph:v14.2.2-20190826 > ceph.tar

docker save标志用于将一个或者多个图像保存到tar存档中。

为了运行Docker容器,首先要根据容器的变化创建一个新镜像。

sudo docker commit --change "Added something" webapp webapp:v2
sudo docker save webapp:v2 > webapp_v2.tar

其中webapp是运行容器的名称。

导入保存的Docker镜像

将导出的Docker镜像存档复制到目标服务器,然后使用docker import命令导入它们。

$sudo docker import rook-ceph.tar
Getting image source signatures
Copying blob 5f91d4a491de: 829.12 MiB/834.23 MiB [===========================]
Copying blob 5f91d4a491de: 834.23 MiB/834.23 MiB [=======================] 11s
Copying config dd85e44a0f8b: 419 B/419 B [================================] 0s
Writing manifest to image destination
Storing signatures
dd85e44a0f8bcf876749eabaeae5924ab6778b5ce191b37e08d4874982d8a601

复制镜像ID并正确标记它。

sudo docker tag 4e1a2b349b09 rook/ceph:master