简介
在本实验中,你将学习如何管理 Docker 容器检查点(checkpoint)。我们将从创建一个 Docker 容器开始,然后为其当前状态创建检查点,这允许你保存和恢复容器的状态。
创建检查点后,你将学习如何列出已有的检查点以验证它们的存在。最后,你将练习使用 docker checkpoint rm
命令移除特定检查点,并验证它是否已被成功删除。本实验提供了 Docker 检查点基础操作的实践机会。
在本实验中,你将学习如何管理 Docker 容器检查点(checkpoint)。我们将从创建一个 Docker 容器开始,然后为其当前状态创建检查点,这允许你保存和恢复容器的状态。
创建检查点后,你将学习如何列出已有的检查点以验证它们的存在。最后,你将练习使用 docker checkpoint rm
命令移除特定检查点,并验证它是否已被成功删除。本实验提供了 Docker 检查点基础操作的实践机会。
在这一步骤中,我们将学习如何创建 Docker 容器并为其当前状态创建检查点(checkpoint)。检查点功能允许你保存运行中容器的状态,并在之后进行恢复。这对于调试、迁移或创建应用快照非常有用。
首先,我们需要一个基础镜像来运行容器。我们将使用 ubuntu
镜像。由于 LabEx 虚拟机环境并未预拉取所有镜像,我们需要先拉取 ubuntu
镜像。
docker pull ubuntu
你将看到表明正在拉取 ubuntu
镜像的输出信息。
Using default tag: latest
latest: Pulling from library/ubuntu
...
Status: Downloaded newer image for ubuntu:latest
docker.io/library/ubuntu:latest
现在,让我们基于 ubuntu
镜像运行一个简单容器。我们将以分离模式(-d
)运行它,并为其命名(--name checkpoint-test
)。同时我们会运行一个保持容器持续运行的命令,例如 sleep infinity
。
docker run -d --name checkpoint-test ubuntu sleep infinity
你将看到一个长字符串,这是容器的 ID。
<container_id>
要验证容器是否正在运行,可以使用 docker ps
命令。
docker ps
你应该能看到 checkpoint-test
容器被列出,状态显示为 Up
。
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
<container_id> ubuntu "sleep infinity" X seconds ago Up X seconds checkpoint-test
现在我们有了一个运行中的容器,可以为其状态创建检查点。我们将使用 docker checkpoint create
命令,后接容器名称和检查点名称。让我们将检查点命名为 my-checkpoint
。
docker checkpoint create checkpoint-test my-checkpoint
如果命令执行成功,你将不会看到任何输出。这表示检查点已成功创建。
在上一步骤中,我们为容器 checkpoint-test
创建了一个名为 my-checkpoint
的检查点。本步骤将学习如何列出容器已有的检查点。
要列出特定容器的检查点,我们使用 docker checkpoint ls
命令后接容器名称。
docker checkpoint ls checkpoint-test
你将在输出中看到我们上一步创建的检查点名称。
CHECKPOINT ID
my-checkpoint
此命令会显示为指定容器创建的所有检查点。如果你创建了多个检查点,它们都会在此列出。
在前面的步骤中,我们创建了一个容器及其检查点,并列出了现有的检查点。本步骤将学习如何删除特定的检查点。
要删除检查点,我们使用 docker checkpoint rm
命令,后接容器名称和要删除的检查点名称。我们将从 checkpoint-test
容器中删除 my-checkpoint
检查点。
docker checkpoint rm checkpoint-test my-checkpoint
如果命令执行成功,你将不会看到任何输出。这表明检查点已被成功删除。
删除检查点不会影响正在运行的容器。容器将继续保持当前状态运行。
在上一步骤中,我们从 checkpoint-test
容器中移除了 my-checkpoint
检查点。本步骤将通过再次列出检查点来验证该检查点是否已成功删除。
要验证检查点是否已移除,我们将像步骤 2 那样对 checkpoint-test
容器使用 docker checkpoint ls
命令。
docker checkpoint ls checkpoint-test
这次,你应该看不到任何输出,或者会显示一条错误信息表明该容器没有检查点。这确认了 my-checkpoint
检查点已被移除。
如果你仍然看到 my-checkpoint
被列出,请返回上一步并确保你正确执行了 docker checkpoint rm
命令。
验证检查点已删除后,我们可以清理创建的容器。我们将先停止然后移除 checkpoint-test
容器。
首先,停止容器:
docker stop checkpoint-test
你应该会看到容器名称作为输出打印出来。
checkpoint-test
然后,移除容器:
docker rm checkpoint-test
你应该会再次看到容器名称作为输出打印出来。
checkpoint-test
现在,如果你运行 docker ps
,应该不会看到 checkpoint-test
容器被列出。
docker ps
此命令应该只显示正在运行的容器。如果没有其他容器在运行,输出将只显示标题行。
在本实验中,我们学习了如何创建 Docker 容器,并使用 docker checkpoint create
命令为其当前状态创建检查点。我们首先拉取了 ubuntu
镜像,并以分离模式运行了一个名为 checkpoint-test
的容器,执行命令为 sleep infinity
。通过 docker ps
我们验证了容器正在运行。最后,我们为 checkpoint-test
容器创建了一个名为 my-checkpoint
的检查点。