方法一:容器的导出和导入
containerName或containerId导出:
docker export jovial_elion > /home/myubuntu-export-1204.tar
导入:docker import filename targetImagemy (如:Depository/ununtu:v1)
docker import /home/myubuntu-export-1204.tar ununtu:v1
方法二:镜像的导出和导入
1.根据容器创建镜像。
docker ps查看要导出的容器ID或容器名。然后导出镜像。
例:创建名为mynginx,标签为v1(默认latest)的本地镜像
docker commit -p -a "catmes" -m "my nginx from blog" a404c6c174a2 mynginx:v1
- -a :提交的镜像作者;
- -m :提交时的说明文字;
- -p :在commit时,将容器暂停。
- -c :使用Dockerfile指令来创建镜像;
2.Docker云仓库或本地文件的导出导出
Docker云仓库方式:
2-1登录
docker login [--username=yourhubusername] [--email=youremail@company.com]
2-2添加镜像TAG(3种示例)。docker tag SOURCE_IMAGE[:TAG] TARGET_IMAGE[:TAG]
docker tag ubuntu:15.10 runoob/ubuntu:v3
docker tag 7d9495d03763 dockeraccount/docker-whale:latest
docker tag java:8-jdk localregistry.example:6666/library/java:8-jdk-v1
2-3推送到docker仓库中心
docker push arunpyasi/container-backup
2-4从仓库中心拉取镜像到本地
docker pull localregistry.example:6666/testing/test-image
本地文件方式:
2-1.导出本地文件(指定导出文件用-o参数或>符号):
docker save cd6d8154f1e1 > /home/myubuntu-save-1204.tar
docker save -o mynginx.tar mynginx
2-2.导入本地文件:
docker load -i mynginx.tar
docker import:丢弃所有历史记录和元数据信息,仅保存容器当时快照状态。导入时可重新制定标签等元数据信息。
docker load:将保存完整记录,体积较大。
导出镜像的大小:export命令方式小于save命令方式。
export 导出/import导入,是根据容器拿到的镜像,再导入时会丢失镜像所有的历史。所以无法进行回滚操作(docker tag
save保存(load加载)的镜像,没有丢失镜像的历史,可以回滚到之前的层(layer)。(查看方式:docker images --tree)
镜像创建:
docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]]
CONTAINER:容器名或容器ID
-a :提交的镜像作者
-c :使用Dockerfile指令来创建镜像
-m :提交时的说明文字
-p :在commit时,将容器暂停。
标记本地镜像到仓库:
docker tag [OPTIONS] IMAGE[:TAG] [REGISTRYHOST/][USERNAME/]NAME[:TAG]
导出容器快照到本地文件(指定导出文件用-o参数或>符号):
docker export [-o|--output[=""]] CONTATINER
docker export 容器id/name >文件名.tar
导入文件到本地镜像:
docker import [-c|--change[=[]]] [-m|--message[=MESSAGE]] file|URL|-[REPOSITORY[:YAG]]
Docker容器迁移 https://blog.csdn.net/LEoe_/article/details/78685156
无忧之道:Docker中容器的备份、恢复和迁移 https://linux.cn/article-5967-1.html