Создание и уничтожение контейнеров в Podman
В этой статье о Podman давайте рассмотрим создание и удаление контейнеров. Если вы еще не знали, Podman — это альтернатива Docker для управления контейнерами. Он имеет ту же структуру команд, что и Docker.
Предварительно извлекаем изображения
Для существования каждого контейнера необходимо изображение (image). Без изображения ничего не выполняется. Следовательно, изображение необходимо «вытащить» из реестра изображений.
Некоторые из популярных реестров изображений:
Синтаксис получения изображения с помощью Podman следующий:
podman pull [OPTIONS] FULLY_QUALIFIED_IMAGE_NAME[:tag|@digest]
Если вам интересно, что FULLY_QUALIFIED_IMAGE_NAME
значит, посмотрите на две команды ниже:
# with FQIN podman pull docker.io/library/debian # without FQIN podman pull debian
Как вы могли заметить, полное имя изображения имеет следующий формат: registry/username/image-name
. Адрес реестра hub.docker.com
для docker.io
.
Чтобы получить определенный тег, примените его после имени изображения, после чего поставьте двоеточие ( :
). Ниже приведена команда для извлечения stable-slim
тега образа Debian:
podman pull docker.io/library/debian:stable-slim
Список доступных изображений
После извлечения одного или нескольких изображений вы можете проверить, какие изображения доступны локально, с помощью этой podman images
команды. Поскольку я вытащил debian:stable-slim
изображение, мой вывод выглядит следующим образом:
$ podman images REPOSITORY TAG IMAGE ID CREATED SIZE docker.io/library/debian stable-slim 86f9b934c377 2 days ago 77.8 MB
Теперь, когда у вас есть изображение, вы можете создать новый контейнер.
Создание контейнера
Чтобы создать контейнер с Podman, используйте podman run
команду следующим образом:
podman run [OPTIONS] image [COMMAND [ARGS]]
Я буду использовать -d
опцию, чтобы контейнер работал в фоновом режиме. Мы также воспользуемся -t
возможностью назначить псевдо-TTY для образа Debian, чтобы он продолжал работать. Полный список доступных опций вы можете найти здесь.
Сейчас я создам простой контейнер на основе stable-slim
образа Debian, который вы извлекли ранее.
podman run -d -t debian:stable-slim
Если создание контейнера прошло успешно, в качестве вывода команды вы получите случайную строку буквенно-цифровых символов. Это уникальный идентификатор контейнера.
61d1b10b5818f397c6fd8f1fc542a83810d21f81825bbfb9603b7d99f6322845
Получение списка контейнеров
Чтобы просмотреть все запущенные контейнеры, используйте podman ps
команду. Это похоже на команду ps в Linux. Вместо отображения системных процессов он показывает запущенные контейнеры и их детали.
Поскольку мы использовали эту опцию в качестве хака, чтобы поддерживать работу контейнера Debian, давайте посмотрим, как выглядит -t
вывод команды podman ps
.
$ podman ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 61d1b10b5818 docker.io/library/debian:stable-slim bash 44 seconds ago Up 44 seconds ago gallant_mahavira
Отсюда вы можете получить различную информацию о названии нашего контейнера. Некоторые детали — это более короткий, но уникальный идентификатор контейнера, изображение, использованное для создания этого контейнера, время его создания, какие порты хост-компьютера сопоставляются с какими портами контейнера и имя контейнера.
Здесь вы можете видеть, что использованное изображение было debian:stable-slim
создано 44 секунды назад и имя контейнера — gallant_mahavira
. Если имя контейнера не указано, оно генерируется случайным образом. Вы можете передать имя контейнера при создании контейнера, используя эту --name CONTAINER_NAME
опцию.
Контейнер может либо работать, либо не работать (остановлен). Остановленные контейнеры можно перечислить следующим образом:
podman container list -a
У меня пока нет остановленных контейнеров, поэтому давайте сначала научимся их останавливать.
Остановка контейнеров
Чтобы остановить контейнер, используйте podman stop
команду, указав либо идентификатор контейнера, либо имя контейнера.
Ниже приведен синтаксис команды podman stop
:
podman stop [CONTAINER_NAME|CONTAINER_ID]
Позвольте нам остановить работающий контейнер, используя его имя:
$ podman stop gallant_mahavira gallant_mahavira
Теперь вы можете использовать вышеупомянутую команду для вывода списка всех контейнеров, включая остановленные:
$ podman container list -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 61d1b10b5818 docker.io/library/debian:stable-slim bash 14 minutes ago Exited (137) 3 minutes ago gallant_mahavira
Командыpodman ps
,podman container ps
,podman container list
иpodman container ls
все связаны с однимpodman container ps
и тем же двоичным файлом, и эти команды могут использоваться взаимозаменяемо . т. е. вы можете запустить командуpodman ps -a
вместо командыpodman container list -a
и получить тот же результат.
Запуск контейнера, который был остановлен
Чтобы запустить контейнер, который был остановлен или вышел из строя, используйте podman start
команду.
Предположим, что контейнер, созданный вами из образа Debian, по какой-либо причине не удался, вы можете запустить его снова, используя имя или идентификатор контейнера, например:
$ podman start 61d1b10b5818f397c6fd8f1fc542a83810d21f81825bbfb9603b7d99f6322845
Уничтожение контейнера
Чтобы полностью удалить или уничтожить контейнер, вы используете podman rm
команду.
Обязательно остановите контейнер перед его удалением.
После удаления контейнера он больше не будет существовать. Итак, когда вы проверите вывод команды podman container list -a
, контейнера не будет в списке.
Вот пример остановки и удаления контейнера с помощью Podman. В примере мы использовали имя контейнера, и его идентификатор.
$ podman ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 61d1b10b5818 docker.io/library/debian:stable-slim bash 44 minutes ago Up 1 second ago gallant_mahavira $ podman stop gallant_mahavira gallant_mahavira $ podman rm 61d1b10b5818 61d1b10b5818f397c6fd8f1fc542a83810d21f81825bbfb9603b7d99f6322845 $ podman container list -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
Как вы можете видеть сейчас, контейнер полностью исчез. Если хотите, вы можете создать новый контейнер, используя любое изображение.
Заключение
В этом руководстве рассматриваются основы управления контейнерами с помощью Podman. Вы узнали о создании контейнеров, их перечислении, остановке и удалении.