备份 Docker 到本地
引言
Docker 是一种开源的容器化平台,可以将应用程序及其依赖项封装到一个独立的容器中,从而实现轻松部署和移植。但是,在某些情况下,我们可能需要将 Docker 镜像和容器备份到本地,以便在需要时能够快速恢复或迁移。
本文将介绍如何备份 Docker 镜像和容器到本地,并提供相应的代码示例。我们首先将介绍如何备份镜像,然后是容器的备份。
备份 Docker 镜像
备份 Docker 镜像可以通过将镜像保存为 tar 归档文件来实现。以下是备份 Docker 镜像的步骤:
1. 查找要备份的镜像
首先,我们需要找到要备份的镜像的名称或 ID。可以使用以下命令列出所有的镜像:
docker image ls
2. 保存镜像为 tar 文件
使用以下命令将镜像保存为 tar 归档文件:
docker save -o <保存路径/镜像名称.tar> <镜像名称/镜像ID>
例如,要将名为 nginx
的镜像保存为 /tmp/nginx.tar
:
docker save -o /tmp/nginx.tar nginx
3. 验证备份文件
备份完成后,可以通过以下命令验证备份文件的正确性:
tar -tvf <保存路径/镜像名称.tar>
该命令将显示 tar 文件中的内容列表。
4. 恢复备份的镜像
要恢复备份的镜像,可以使用以下命令:
docker load -i <保存路径/镜像名称.tar>
例如,要恢复 /tmp/nginx.tar
中的镜像:
docker load -i /tmp/nginx.tar
备份 Docker 容器
备份 Docker 容器是将容器的状态和数据保存到本地,以便以后重新创建或迁移容器。以下是备份 Docker 容器的步骤:
1. 查找要备份的容器
首先,我们需要找到要备份的容器的名称或 ID。可以使用以下命令列出所有的容器:
docker container ls -a
2. 备份容器数据
通过将容器的数据复制到本地文件夹来备份容器。首先,创建一个本地文件夹用于保存容器数据:
mkdir <本地路径/容器名称>
然后,使用以下命令将容器数据复制到本地文件夹中:
docker cp <容器名称或 ID>:<容器路径> <本地路径/容器名称>
例如,要备份名为 my-container
的容器的 /usr/src/app/data
文件夹到本地 /backup/my-container
文件夹:
docker cp my-container:/usr/src/app/data /backup/my-container
3. 备份容器状态
备份容器状态需要停止容器,并将其保存为镜像。首先,停止容器:
docker container stop <容器名称或 ID>
然后,使用以下命令将容器保存为镜像:
docker commit <容器名称或 ID> <镜像名称>
例如,将名为 my-container
的容器保存为 my-container-image
镜像:
docker commit my-container my-container-image
4. 验证备份文件
备份完成后,可以使用之前介绍的方法验证备份文件的正确性。
5. 恢复备份的容器
要恢复备份的容器,首先使用之前创建的容器镜像创建一个新容器:
docker run -d --name <新容器名称> <镜像名称>
例如,使用 my-container-image
镜像创建名为 my-container-restore
的新容器:
docker run -d --name my-container-restore my-container-image
然后,将之前备份的容器数据复制到新容器:
docker cp <本地