Как использовать команду docker container unpause для возобновления работы контейнеров

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

💡 Этот учебник переведен с английского с помощью ИИ. Чтобы просмотреть оригинал, вы можете перейти на английский оригинал

Введение

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

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


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL docker(("Docker")) -.-> docker/ContainerOperationsGroup(["Container Operations"]) docker(("Docker")) -.-> docker/ImageOperationsGroup(["Image Operations"]) docker/ContainerOperationsGroup -.-> docker/run("Run a Container") docker/ContainerOperationsGroup -.-> docker/ps("List Running Containers") docker/ContainerOperationsGroup -.-> docker/start("Start Container") 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-555126{{"Как использовать команду docker container unpause для возобновления работы контейнеров"}} docker/ps -.-> lab-555126{{"Как использовать команду docker container unpause для возобновления работы контейнеров"}} docker/start -.-> lab-555126{{"Как использовать команду docker container unpause для возобновления работы контейнеров"}} docker/stop -.-> lab-555126{{"Как использовать команду docker container unpause для возобновления работы контейнеров"}} docker/rm -.-> lab-555126{{"Как использовать команду docker container unpause для возобновления работы контейнеров"}} docker/pull -.-> lab-555126{{"Как использовать команду docker container unpause для возобновления работы контейнеров"}} end

Создание и запуск контейнера

На этом шаге вы узнаете, как создать и запустить контейнер Docker. Контейнер — это стандартная единица программного обеспечения, которая упаковывает код и все его зависимости, чтобы приложение могло быстро и надежно работать в различных вычислительных средах.

Сначала загрузим простой образ из Docker Hub. Мы будем использовать образ hello-world, который представляет собой очень маленький образ для тестирования установки Docker.

docker pull hello-world

Вы должны увидеть вывод, указывающий на загрузку и извлечение образа.

Using default tag: latest
latest: Pulling from library/hello-world
...
Status: Downloaded newer image for hello-world:latest
docker.io/library/hello-world:latest

Теперь, когда у нас есть образ, мы можем запустить контейнер на его основе. При запуске контейнера из образа hello-world Docker просто выведет сообщение в терминал и завершит работу.

docker run hello-world

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

Hello from Docker!
This message shows that your installation appears to be working correctly.

To generate this message, Docker took the following steps:
 1. The Docker client contacted the Docker daemon.
 2. The Docker daemon pulled the "hello-world" image from the Docker Hub.
    (If you already had the image locally, skipped the pull step.)
 3. The Docker daemon created a new container from that image which runs the
    executable that produces the output you are currently reading.
 4. The Docker daemon streamed that output to the Docker client, which sent it
    to your terminal.

To try something more ambitious, you can run an Ubuntu container with:
 $ docker run -it ubuntu bash

Эта команда создала и запустила контейнер из образа hello-world. Поскольку задача контейнера заключалась только в выводе сообщения и завершении работы, он больше не выполняется.

Приостановка работающего контейнера

На предыдущем шаге мы запустили простой контейнер, который сразу завершил работу. Чтобы продемонстрировать приостановку и возобновление, нам нужен контейнер, который продолжает работать. Мы будем использовать простой контейнер ubuntu и поддерживать его работу в фоновом режиме.

Сначала загрузим образ ubuntu.

docker pull ubuntu

Вы должны увидеть вывод, указывающий на загрузку и извлечение образа.

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

Теперь запустим контейнер ubuntu в отсоединённом режиме (-d), чтобы он работал в фоне. Мы также присвоим ему имя (my-ubuntu) для удобства. Используем команду tail -f /dev/null, чтобы контейнер работал бесконечно.

docker run -d --name my-ubuntu ubuntu tail -f /dev/null

Эта команда выведет идентификатор контейнера.

<container_id>

Вы можете проверить, что контейнер работает, с помощью команды docker ps.

docker ps

Вы должны увидеть вывод, подобный этому, где контейнер my-ubuntu будет иметь статус Up.

CONTAINER ID   IMAGE          COMMAND               CREATED         STATUS         PORTS     NAMES
<container_id>   ubuntu         "tail -f /dev/null"   X seconds ago   Up X seconds             my-ubuntu

Теперь, когда у нас есть работающий контейнер, мы можем приостановить его с помощью команды docker pause, указав имя или идентификатор контейнера.

docker pause my-ubuntu

Если команда выполнена успешно, вывода не будет. Контейнер теперь приостановлен.

Проверка состояния приостановленного контейнера

На предыдущем шаге мы приостановили контейнер my-ubuntu. Теперь давайте убедимся, что контейнер действительно находится в приостановленном состоянии.

Мы можем снова использовать команду docker ps для проверки статуса работающих контейнеров.

docker ps

Эта команда покажет только активные контейнеры. Поскольку мы приостановили контейнер my-ubuntu, он не должен отображаться в выводе docker ps.

CONTAINER ID   IMAGE     COMMAND    CREATED    STATUS    PORTS     NAMES

Чтобы увидеть все контейнеры, включая остановленные, завершённые или приостановленные, мы можем использовать флаг -a с командой docker ps.

docker ps -a

Теперь вы должны увидеть контейнер my-ubuntu в списке, и его статус должен указывать на приостановленное состояние. Ищите слово Paused в колонке STATUS.

CONTAINER ID   IMAGE          COMMAND               CREATED         STATUS                   PORTS     NAMES
<container_id>   ubuntu         "tail -f /dev/null"   X minutes ago   Up X minutes (Paused)             my-ubuntu

Статус (Paused) подтверждает, что контейнер не активен, но остаётся в памяти и готов к возобновлению работы.

Возобновление работы контейнера

На предыдущем шаге мы убедились, что контейнер my-ubuntu был приостановлен. Теперь давайте возобновим его работу.

Для возобновления работы контейнера используем команду docker unpause, указав имя или идентификатор контейнера.

docker unpause my-ubuntu

При успешном выполнении команды вывод отсутствует. Контейнер должен продолжить работу с момента приостановки.

Проверка возобновления работы контейнера

На предыдущем шаге мы возобновили работу контейнера my-ubuntu. Теперь убедимся, что он снова активен.

Для вывода списка работающих контейнеров используем команду docker ps:

docker ps

Теперь контейнер my-ubuntu должен отображаться в выводе со статусом Up:

CONTAINER ID   IMAGE          COMMAND               CREATED         STATUS         PORTS     NAMES
<container_id>   ubuntu         "tail -f /dev/null"   X minutes ago   Up X seconds             my-ubuntu

Статус Up означает, что контейнер работает и его процессы активны.

Для дополнительной проверки можно использовать docker ps -a - статус должен отображаться как Up без пометки (Paused):

docker ps -a
CONTAINER ID   IMAGE          COMMAND               CREATED         STATUS         PORTS     NAMES
<container_id>   ubuntu         "tail -f /dev/null"   X minutes ago   Up X seconds             my-ubuntu

Это подтверждает успешное возобновление работы контейнера после приостановки.

Наконец, удалим созданный контейнер. Сначала остановим его:

docker stop my-ubuntu

Команда остановит контейнер и выведет его имя или ID:

my-ubuntu

Теперь удалим контейнер командой docker rm:

docker rm my-ubuntu

Команда удалит контейнер и выведет его имя или ID:

my-ubuntu

Итоги

В этой лабораторной работе вы научились создавать и запускать Docker-контейнер, скачав образ hello-world и выполнив его. Это продемонстрировало базовый процесс получения образа и запуска контейнера на его основе. Затем вы узнали, как приостановить работающий контейнер, фактически заморозив его процессы, и проверить его состояние. Наконец, вы попрактиковались в возобновлении работы контейнера и убедились, что он снова запущен.