Docker 容器的导入和导出操作

Docker 容器的导入和导出操作

导出容器:
导出容器是指 导出一个已经创建的容器到一个文件,不管此时这个容器是否处于运行状态,可以使用docker export 命令,该命令格式为 docker export CONTAINER。

查看所有容器如下:

# docker ps -a
CONTAINER ID        IMAGE                COMMAND             CREATED             STATUS                          PORTS               NAMES
8bb3cfcec07b        wdzj/docker:latest   “/bin/bash”         3 weeks ago         Up 4 days                                           yuqing-dev
6b873a3013eb        wdzj/docker:latest   “/bin/bash”         4 weeks ago         Up 4 days                                           passport-test
4f38d0f2cc41        wdzj/docker:latest   “/bin/bash”          6 weeks ago         Exited (0) 4 days ago                                   yingcan-test

分别导出8bb3cfcec07b容器和6b873a3013eb容器到yunqing-dev.tar和passport-test.tar 文件:

# docker export 8bb >yuqing-dev.tar (也可以指定路径)
# ls
yuqing-dev.tar
# docker export 6b8 >passport-test.tar
# ls
passport-test.tar

可以将这些文件传输到其他机器上,在其他机器上通过导入命令实现容器迁移。

导入容器:
导出的文件又可以使用docker import 命令导入,成为镜像,例如:

# cat yuqing-dev.tar | docker import – yuqing  (横杠前后要有空格,横杠后面为新的镜像名称而且不能出现重复的镜像名)
# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             VIRTUAL SIZE
yuqing           latest                6216f8914843          About a minute ago        2.61 GB

实际上,既可以使用docker load命令来导入镜像存储文件到本地的镜像库,又可以使用docker import命令来导入一个容器的快照到本地镜像库。这两者的区别在于容器快照文件将丢弃所有的历史记录和元数据信息(即仅保存容器当时的快照状态),而镜像存储文件将保存完整记录,体积也要大。此外,容器快照文件导入可以重新指定标签等元数据信息。

分享