Docker 的备份和恢复
以下是几种常见的 Docker 容器备份与恢复方法:
容器备份方法
通过提交容器创建新镜像
- 操作步骤:
- 查看运行中的容器:
docker ps - 提交容器创建新镜像:
docker commit -m "备份描述" -a "作者信息" <容器名或 ID> 备份镜像名:标签。例如:docker commit -m "2023 年 10 月数据库备份" -a "运维团队" mysql_container mysql_backup:v20231001 - 将镜像保存为 tar 文件:
docker save -o /path/to/backup/mysql_backup_v20231001.tar mysql_backup:v20231001。也可以使用 gzip 压缩以减少空间占用:docker save mysql_backup:v20231001 | gzip > mysql_backup_v20231001.tar.gz
- 查看运行中的容器:
- 优缺点:
- 优点:完整保存容器状态,包括运行内存中的变化。
- 缺点:备份文件较大;可能包含临时文件和冗余数据。
docker commit 创建的镜像默认存储在本地的 Docker 镜像仓库中。你可以通过 docker images 命令查看所有本地存储的镜像。如果只是在本地使用这个备份镜像,或者在本地的不同 Docker 环境中使用它,可以直接使用 docker commit 创建的镜像,而不需要将其保存为 .tar 文件。例如直接使用镜像创建新容器:docker run -d --name 新容器名 备份镜像名:标签。
如果需要将镜像迁移到其他机器,或者需要将镜像存储在文件系统中以便进行备份,建议将其保存为 .tar 文件。这样做有以下好处:
- 便于迁移:你可以将
.tar文件复制到其他机器上,然后使用docker load命令加载镜像。 - 便于存储:
.tar文件可以存储在文件系统中,便于进行备份和归档。 - 便于共享:你可以将
.tar文件上传到文件服务器或云存储中,方便其他用户下载和使用。
保存为 .tar 文件的命令如下:
docker save -o /path/to/backup/备份镜像名_备份日期.tar 备份镜像名:标签
提交容器为镜像,并上传到镜像仓库
如果你已经有一个正在运行的容器,并希望将其提交为镜像,然后推送到镜像仓库,可以按照以下步骤操作:
-
提交容器为镜像
使用docker commit命令。假设你的容器名称或 ID 是your_container:docker commit your_container your_new_image:tagyour_container:要提交的容器名称或 ID。your_new_image:想要创建的新镜像名称。tag:镜像的标签,可以是版本号或其他标识符。
-
验证镜像
提交完成后,使用docker images命令查看本地镜像列表:docker images -
登录到镜像仓库 在推送镜像之前,需登录到 Docker Hub 或其他私有镜像仓库。如果是 Docker Hub:

