Как использовать команду docker checkpoint ls для просмотра контрольных точек контейнера

DockerBeginner
Практиковаться сейчас

Введение

В этой лабораторной работе вы научитесь использовать команду docker checkpoint ls для вывода списка контрольных точек (checkpoints) контейнера Docker. Мы начнём с создания контейнера, а затем создадим для него контрольную точку.

После создания контрольной точки вы изучите, как вывести список контрольных точек, связанных с контейнером, с помощью стандартной команды 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 mode (фоновом режиме).
  • --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.

Просмотр контрольных точек контейнера

На предыдущем шаге мы создали контрольную точку mycheckpoint1 для нашего контейнера mycontainer. Теперь давайте узнаем, как просмотреть список контрольных точек для конкретного контейнера.

Для вывода списка контрольных точек контейнера используется команда docker checkpoint ls, за которой следует имя контейнера.

docker checkpoint ls mycontainer

Эта команда отобразит список всех контрольных точек, связанных с контейнером mycontainer.

Вы должны увидеть вывод, подобный этому, показывающий контрольную точку, созданную на предыдущем шаге:

CHECKPOINT ID
mycheckpoint1

Этот вывод подтверждает, что контрольная точка mycheckpoint1 существует для контейнера mycontainer.

Вы можете создавать несколько контрольных точек для одного контейнера. Давайте создадим ещё одну контрольную точку, чтобы увидеть изменения в списке.

docker checkpoint create mycontainer mycheckpoint2

Теперь снова выведем список контрольных точек:

docker checkpoint ls mycontainer

На этот раз вывод должен отображать обе контрольные точки:

CHECKPOINT ID
mycheckpoint1
mycheckpoint2

Это демонстрирует, как просмотреть все контрольные точки, связанные с определённым контейнером.

Просмотр контрольных точек с использованием пользовательской директории

На предыдущих шагах мы создавали контрольные точки для контейнера mycontainer и просматривали их, используя стандартную директорию хранения. По умолчанию Docker сохраняет контрольные точки в системном расположении, но вы также можете указать пользовательскую директорию для их хранения. Это может быть полезно для организации контрольных точек или их хранения на отдельном томе.

Для создания контрольной точки в пользовательской директории используется флаг --checkpoint-dir с командой docker checkpoint create. Сначала создадим директорию для хранения наших контрольных точек. Мы создадим директорию с именем 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. В завершение мы научились просматривать контрольные точки, расположенные в пользовательской директории, что демонстрирует гибкость управления контрольными точками в различных расположениях.