导出容器
导出容器是指 导出一个已经创建的容器到一个文件,不管此时这个容器是否处于运行状态,可以使用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命令来导入一个容器的快照到本地镜像库。这两者的区别在于容器快照文件将丢弃所有的历史记录和元数据信息(即仅保存容器当时的快照状态),而镜像存储文件将保存完整记录,体积也要大。此外,容器快照文件导入可以重新指定标签等元数据信息。