容器的迁移,可以用导入和导出命令来实现(docker export | docker import)
1、导出容器
导出容器是指导出一个已经创建的容器到一个文件,不管此时这个容器是否处于运行状态,可以使用docker export命令。命令格式为:
docker export ID > filename.tar
2、导入容器
导出的文件可以使用docker import命令来导入一个容器快照到本地镜像库,成为镜像。导入容器还有一个命令(docker load),用来导入一个镜像存储文件到镜像库。命令格式为:
cat filename.tar | docker import - imagesname:tag
这两个命令的区别在于,容器快照文件将丢失所有的历史记录和元数据信息(仅保存容器当时的快照状态),镜像存储文件将保存完整记录,体积会比较大。从容器快照文件导入时可以重新指定标签等元数据信息。
例:迁移“10.128.222.245:5000/sgrio/java-oracle:jdk_7”容器
a、docker ps查看容器
docker@docker-ubuntu:~$ docker ps
CONTAINER ID IMAGE COMMAND PORTS NAMES
4c38c661221f 12212-oradb-medrec "startSample.sh" 0.0.0.0:9011->7011/tcp weblogic
b、docker export 导出容器
docker@docker-ubuntu:~$ docker export 4c38c661221f > weblogic.tar
docker@docker-ubuntu:~$ ls
12212-oradb-medrec index.html oracle Templates
weblogic.tar
c、 docker import 导入容器快照
docker@docker-ubuntu:~$ cat weblogic.tar | docker import - test/weblogic:v1.0
sha256:366ba93fdb15148c9d6223372c594037969f9206c8bc6c5047a2e7ec2c89756d
docker@docker-ubuntu:~$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
test/weblogic v1.0 366ba93fdb15 About a minute ago 1.31GB