Создание и остановка контейнеров
На этом шаге мы научимся создавать и останавливать Docker-контейнеры. Docker-контейнеры — это легковесные, переносимые и самодостаточные единицы, содержащие всё необходимое для запуска приложения.
Сначала загрузим Docker-образ, который будем использовать для создания контейнеров. Мы воспользуемся образом 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
Теперь создадим и запустим контейнер из этого образа с помощью команды docker run
. Флаг -d
запускает контейнер в detached mode (в фоновом режиме), а флаг --name
задаёт имя контейнера.
docker run -d --name my-ubuntu-container ubuntu sleep infinity
Эта команда создаёт контейнер с именем my-ubuntu-container
из образа ubuntu
и выполняет внутри него команду sleep infinity
, которая поддерживает работу контейнера бесконечно.
В выводе вы увидите длинную строку символов — идентификатор контейнера.
<container_id>
Чтобы убедиться, что контейнер работает, используем команду docker ps
.
docker ps
Эта команда выводит список всех запущенных контейнеров. Вы должны увидеть my-ubuntu-container
в списке.
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
<container_id> ubuntu "sleep infinity" X seconds ago Up X seconds my-ubuntu-container
Теперь создадим ещё один контейнер, но без указания имени. Docker автоматически сгенерирует имя для него.
docker run -d ubuntu sleep infinity
Снова вы увидите идентификатор контейнера в выводе.
<container_id>
Запустим docker ps
снова, чтобы увидеть оба работающих контейнера.
docker ps
Теперь в списке должно быть два контейнера.
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
<container_id> ubuntu "sleep infinity" X seconds ago Up X seconds my-ubuntu-container
<container_id> ubuntu "sleep infinity" X seconds ago Up X seconds <random_name>
Остановим контейнер с именем my-ubuntu-container
с помощью команды docker stop
, указав имя или ID контейнера.
docker stop my-ubuntu-container
В выводе вы увидите имя контейнера, подтверждающее его остановку.
my-ubuntu-container
Снова выполним docker ps
. Контейнер my-ubuntu-container
больше не будет отображаться, так как docker ps
показывает только работающие контейнеры.
docker ps
Чтобы увидеть все контейнеры, включая остановленные, используем команду docker ps -a
.
docker ps -a
Теперь вы увидите оба контейнера, причём у my-ubuntu-container
будет статус Exited
.
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
<container_id> ubuntu "sleep infinity" X minutes ago Exited (0) X seconds ago my-ubuntu-container
<container_id> ubuntu "sleep infinity" X minutes ago Up X minutes <random_name>
Наконец, остановим второй контейнер, используя его ID (возьмите его из вывода docker ps -a
). Замените <container_id>
на фактический ID второго контейнера.
docker stop <container_id>
В выводе вы увидите ID контейнера.
<container_id>
Выполним docker ps -a
в последний раз, чтобы убедиться, что оба контейнера остановлены.
docker ps -a
Теперь у обоих контейнеров должен быть статус Exited
.
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
<container_id> ubuntu "sleep infinity" X minutes ago Exited (0) X seconds ago my-ubuntu-container
<container_id> ubuntu "sleep infinity" X minutes ago Exited (0) X seconds ago <random_name>