Docker系列--镜像和容器备份与恢复的方法

原文网址:Docker系列--镜像和容器备份与恢复的方法_IT利刃出鞘的博客-CSDN博客

简介

说明

本文介绍备份和恢复Docker镜像与容器的方法。

命令对比

保存与导出

  • docker save:保存的是镜像(image)。(保存的是分层的文件系统,比export的文件大)
  • docker export:保存的是容器(container)。(保存的只是Linux系统的文件目录)

载入与导入(两者都会恢复为镜像)

  • docker load:载入镜像包(不能对载入的镜像重命名)
  • docker import:载入容器包(可以为镜像指定新名称)

镜像备份与恢复(save+load)

导出镜像

命令

docker save 镜像ID或镜像名称[:版本号] > 镜像导出文件(格式为tar压缩文件)
或
docker save -o 镜像导出文件(格式为tar压缩文件) 镜像ID或镜像名称[:版本号]

示例

docker save newtomcat:v1.0 > mytomcat.tar
或
docker save -o mytomcat.tar newtomcat:v1.0

Docker系列--镜像和容器备份与恢复的方法_第1张图片

导入镜像

命令

docker load -i 镜像导出文件(格式为tar压缩文件)
或
docker load < 镜像导出文件(格式为tar压缩文件)

示例

docker load -i mytomcat.tar
或
docker load < mytomcat.tar

Docker系列--镜像和容器备份与恢复的方法_第2张图片

容器备份与恢复(export+import)

导出容器

命令

docker export -o 容器导出文件(格式为tar压缩文件) 容器ID或容器名称
或
docker export 容器ID或容器名称 > 容器导出文件(格式为tar压缩文件) 

示例

docker export -o newtomcat.tar mytomcat
或
docker export mytomcat > newtomcat.tar 

Docker系列--镜像和容器备份与恢复的方法_第3张图片

导入容器(导入为镜像)

命令

docker import 容器导出文件(格式为tar压缩文件) 新镜像名称[:版本号]
或
docker import /URL 新镜像名称[:版本号]

示例

docker import newtomcat.tar newtomcat:v1.0
或
docker import http://example.com/exampleimage.tgz example/imagerepo

Docker系列--镜像和容器备份与恢复的方法_第4张图片

将容器导出为镜像

        运行一个容器时(如果没使用卷),我们任何文件修改都会被记录到容器存储层里。docker commit 可以将容器的存储层保存下来成为镜像。即:原有镜像+容器的存储层=新的镜像,以后运行这个新镜像的时候,就会拥有原有容器最后的文件变化。

实际环境中并不会这样使用。原因有:

  • 可能会有大量的无关内容被添加进来,导致镜像很大。
  • docker commit 生成的镜像也被称为黑箱镜像。只有制定镜像的人知道执行过什么命令,怎么生成的镜像。

docker commit特殊的应用场合:被入侵后保存现场等。

生成镜像

命令

docker commit [容器名称|ID] 生成新的镜像名字

示例

[root@localhost ~]# docker commit nginxweb nginx_test:v1
sha256:a06b16b343036bcbf424c499022ca635bf90740aa7d76acbe0c271a731aba2ef

[root@localhost ~]# docker images
REPOSITORY    TAG   IMAGE ID       CREATED        SIZE
nginx_test    v1    a06b16b34303   4 seconds ago  127MB

选项

-a:提交的镜像作者
-c:使用dockerfile指令来创建镜像
-m:提交时的说明文字
-p:在commit的时候,将正在运行的容器暂停

备份与恢复镜像

见前边:“镜像备份与恢复(save+load)”

你可能感兴趣的:(docker,docker,容器,运维)