简介
在本实验中,你将学习如何使用 docker checkpoint ls
命令列出 Docker 容器的检查点(checkpoint)。我们将首先创建一个容器,然后为其创建检查点。
在创建检查点后,你将探索如何使用标准的 docker checkpoint ls
命令列出与该容器关联的检查点。最后,你将学习在指定了自定义检查点目录时如何列出检查点。
在本实验中,你将学习如何使用 docker checkpoint ls
命令列出 Docker 容器的检查点(checkpoint)。我们将首先创建一个容器,然后为其创建检查点。
在创建检查点后,你将探索如何使用标准的 docker checkpoint ls
命令列出与该容器关联的检查点。最后,你将学习在指定了自定义检查点目录时如何列出检查点。
在本步骤中,我们将学习如何创建 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
),而不会显示存储在默认位置的检查点(mycheckpoint1
和 mycheckpoint2
)。
要查看容器的所有检查点(无论存储在何处),你需要分别从每个目录列出检查点,或使用能聚合这些信息的工具。但对于列出特定自定义目录中的检查点,--checkpoint-dir
标志是必不可少的。
最后,让我们清理创建的容器。
docker stop mycontainer
docker rm mycontainer
这将停止并移除容器 mycontainer
。
在本实验中,我们学习了如何使用 docker checkpoint ls
命令列出 Docker 容器的检查点。我们首先创建了一个容器,然后使用 docker checkpoint create
命令为其创建检查点。
接着,我们探索了如何使用 docker checkpoint ls
命令列出该容器已创建的检查点。最后,我们学习了如何列出位于自定义检查点目录中的检查点,展示了在不同位置管理检查点的灵活性。