如何备份和还原Docker容器?

Docker使我们能够自动化构建和部署应用程序的过程。它还允许我们创建一个打包的环境来运行该应用程序,从而使其易于移植且轻巧,同时还可以跟踪版本。所有这些都可以通过Docker容器实现。它有助于使应用程序平台独立。

假设我们的计算机中运行着一个docker容器,我们想要对该容器进行快照或保留该容器的备份,以便在紧急情况下,如果我们要回滚更改或执行具有先前时间戳记的容器,可以借助存储的备份轻松地做到这一点。因此,备份docker容器并还原可能成为项目的重要组成部分。

在本文中,我们将看到如何在某些命令的帮助下备份和还原Docker容器。我们还需要注意的是,如果容器使用单独的数据卷,则本文中用于备份Docker容器的过程将不起作用。要备份使用单独数据卷的Docker容器,我们需要为每个数据卷创建一个单独的备份。

  • 备份Docker容器

首先,为了备份docker容器,我们需要该特定容器的容器ID。我们将使用ps命令获取所有正在运行的容器的容器ID,并复制需要备份的容器ID。

请查看以下命令。

sudo docker ps −a

之后,复制要为其创建备份的Docker容器的容器ID。要创建Docker容器的快照,我们使用docker commit命令。Docker commit命令的格式为-

sudo docker commit −p <CONTAINER_ID> <BACKUP_NAME>

示例

sudo docker commit −p 5c2f44fbb535 backup-ubuntu

要将映像另存为本地计算机中的tar文件,可以使用此命令。

sudo docker save −o ∽/backup−ubuntu.tar backup−ubuntu

使用此命令检查保存的tar文件。

sudo ls −l ∽/backup−ubuntu.tar

您还可以选择将映像备份直接推送到docker注册表。使用此命令可以这样做。用您的docker hub用户名替换用户名。

sudo docker login
sudo docker push backup−ubuntu:tag
  • 恢复Docker容器

创建Docker容器的备份后,如果要还原容器以使用它,可以按照以下方法进行操作。

如果您已将tar文件保存在主机中,则只需使用docker load命令将其还原即可。请使用以下命令进行操作。

sudo docker load −i ∽/backup-ubuntu.tar

要确认映像是否已成功还原,可以使用以下命令列出所有映像。

sudo docker images

如果已将备份的映像推送到docker注册表,则可以使用以下命令将其备份

sudo docker pull backup-ubuntu:tag

将还原的映像放置在本地计算机上之后,可以使用docker run命令运行还原的docker映像的新实例。您可以使用以下命令进行操作。

sudo docker run −ti backup−ubuntu:tag

在以上文章中,我们已经了解了如何备份和还原Docker容器。如果要将要在主机上运行的docker容器迁移到另一台计算机上,可以使用这两个过程(备份和还原)的组合来进行迁移。如果创建了映像的备份并将其推送到docker注册表中,则只需登录目标计算机并提取备份的映像即可。如果您已经创建了用于备份容器的tar文件,则可以将tar文件复制并粘贴到目标计算机上,并使用docker load命令加载映像,然后运行docker run命令来执行容器。