如何使用 docker checkpoint ls 命令列出容器检查点

DockerDockerBeginner
立即练习

💡 本教程由 AI 辅助翻译自英文原版。如需查看原文,您可以 切换至英文原版

简介

在本实验中,你将学习如何使用 docker checkpoint ls 命令列出 Docker 容器的检查点(checkpoint)。我们将首先创建一个容器,然后为其创建检查点。

在创建检查点后,你将探索如何使用标准的 docker checkpoint ls 命令列出与该容器关联的检查点。最后,你将学习在指定了自定义检查点目录时如何列出检查点。


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL docker(("Docker")) -.-> docker/ImageOperationsGroup(["Image Operations"]) docker(("Docker")) -.-> docker/ContainerOperationsGroup(["Container Operations"]) docker/ContainerOperationsGroup -.-> docker/run("Run a Container") docker/ContainerOperationsGroup -.-> docker/ps("List Running Containers") docker/ContainerOperationsGroup -.-> docker/stop("Stop Container") docker/ContainerOperationsGroup -.-> docker/rm("Remove Container") docker/ImageOperationsGroup -.-> docker/pull("Pull Image from Repository") subgraph Lab Skills docker/run -.-> lab-555067{{"如何使用 docker checkpoint ls 命令列出容器检查点"}} docker/ps -.-> lab-555067{{"如何使用 docker checkpoint ls 命令列出容器检查点"}} docker/stop -.-> lab-555067{{"如何使用 docker checkpoint ls 命令列出容器检查点"}} docker/rm -.-> lab-555067{{"如何使用 docker checkpoint ls 命令列出容器检查点"}} docker/pull -.-> lab-555067{{"如何使用 docker checkpoint ls 命令列出容器检查点"}} end

创建容器与检查点

在本步骤中,我们将学习如何创建 Docker 容器并为其创建检查点(checkpoint)。检查点功能允许你保存运行中容器的状态,并在之后进行恢复。这对于调试、迁移或创建应用快照非常有用。

首先,让我们拉取一个简单的镜像用于运行容器。我们将使用 ubuntu 镜像。

docker pull ubuntu:latest

你将看到镜像下载进度的输出信息。

latest: Pulling from library/ubuntu
...
Status: Downloaded newer image for ubuntu:latest
docker.io/library/ubuntu:latest

现在,让我们基于这个镜像运行一个容器。我们将执行一个让容器持续运行一段时间的简单命令。

docker run -d --name mycontainer ubuntu:latest sleep 3600

以下是命令解析:

  • docker run:用于运行新容器的命令
  • -d:以后台模式(detached)运行容器
  • --name mycontainer:为容器指定名称 mycontainer
  • ubuntu:latest:指定容器使用的镜像
  • sleep 3600:在容器内执行的命令,将使容器保持运行 3600 秒(1 小时)

你可以使用 docker ps 命令验证容器是否正在运行。

docker ps

你将看到类似以下的输出,显示你的 mycontainer 正在运行:

CONTAINER ID   IMAGE          COMMAND         CREATED         STATUS         PORTS     NAMES
<container_id>   ubuntu:latest   "sleep 3600"   About a minute ago   Up About a minute             mycontainer

现在我们已经有了运行中的容器,让我们为其创建检查点。创建检查点需要使用 docker checkpoint create 命令。

docker checkpoint create mycontainer mycheckpoint1

以下是命令解析:

  • docker checkpoint create:用于为容器创建检查点的命令
  • mycontainer:需要创建检查点的容器名称
  • mycheckpoint1:你为检查点指定的名称

如果命令执行成功,你将不会看到任何输出。这表示名为 mycheckpoint1 的检查点已成功为容器 mycontainer 创建。

列出容器的检查点

在上一步中,我们为容器 mycontainer 创建了名为 mycheckpoint1 的检查点。现在,让我们学习如何列出特定容器的所有检查点。

要列出容器的检查点,你需要使用 docker checkpoint ls 命令并指定容器名称。

docker checkpoint ls mycontainer

该命令将显示与 mycontainer 关联的所有检查点列表。

你应该会看到类似以下的输出,展示我们在上一步创建的检查点:

CHECKPOINT ID
mycheckpoint1

此输出确认了容器 mycontainer 存在名为 mycheckpoint1 的检查点。

你可以为同一个容器创建多个检查点。让我们再创建一个检查点来观察列表变化。

docker checkpoint create mycontainer mycheckpoint2

现在再次列出检查点:

docker checkpoint ls mycontainer

这次输出应该会显示两个检查点:

CHECKPOINT ID
mycheckpoint1
mycheckpoint2

以上演示了如何列出特定容器关联的所有检查点。

使用自定义检查点目录列出检查点

在前面的步骤中,我们为容器 mycontainer 创建了检查点,并使用默认检查点目录列出了它们。Docker 默认会将检查点存储在特定位置,但你也可以指定自定义目录来存储检查点。这对于组织检查点或将它们存储在不同卷上很有帮助。

要在自定义目录中创建检查点,你需要在 docker checkpoint create 命令中使用 --checkpoint-dir 标志。首先,让我们创建一个目录来存储自定义检查点。我们将在主目录下创建名为 mycheckpoints 的目录。

mkdir ~/project/mycheckpoints

现在,让我们为 mycontainer 创建一个新检查点,并将其存储在 ~/project/mycheckpoints 目录中。

docker checkpoint create --checkpoint-dir ~/project/mycheckpoints mycontainer mycheckpoint3

以下是命令解析:

  • docker checkpoint create:用于创建检查点的命令
  • --checkpoint-dir ~/project/mycheckpoints:指定存储检查点的自定义目录
  • mycontainer:需要创建检查点的容器名称
  • mycheckpoint3:为新检查点指定的名称

如果命令执行成功,你将不会看到任何输出。这表示检查点 mycheckpoint3 已成功创建在 ~/project/mycheckpoints 目录中。

要列出存储在自定义目录中的检查点,你需要在 docker checkpoint ls 命令中使用 --checkpoint-dir 标志,并指定自定义目录。

docker checkpoint ls --checkpoint-dir ~/project/mycheckpoints mycontainer

该命令将列出容器 mycontainer 在指定自定义目录中的检查点。

你应该会看到类似以下的输出,仅显示我们在自定义目录中创建的检查点:

CHECKPOINT ID
mycheckpoint3

请注意,此命令仅列出指定自定义目录中的检查点(mycheckpoint3),而不会显示存储在默认位置的检查点(mycheckpoint1mycheckpoint2)。

要查看容器的所有检查点(无论存储在何处),你需要分别从每个目录列出检查点,或使用能聚合这些信息的工具。但对于列出特定自定义目录中的检查点,--checkpoint-dir 标志是必不可少的。

最后,让我们清理创建的容器。

docker stop mycontainer
docker rm mycontainer

这将停止并移除容器 mycontainer

总结

在本实验中,我们学习了如何使用 docker checkpoint ls 命令列出 Docker 容器的检查点。我们首先创建了一个容器,然后使用 docker checkpoint create 命令为其创建检查点。

接着,我们探索了如何使用 docker checkpoint ls 命令列出该容器已创建的检查点。最后,我们学习了如何列出位于自定义检查点目录中的检查点,展示了在不同位置管理检查点的灵活性。