Podman · 7 min read · Feb 11, 2026

Начало работы с Podman: управление образами, контейнерами и томами

Podman — это среда выполнения контейнеров, которая предоставляет функции, аналогичные Docker. Она является частью библиотеки libpod и может использоваться для управления подами, контейнерами, образами контейнеров и томами контейнеров. Podman очень отличается от Docker, который использует архитектуру клиент-сервер и требует наличия демона docker для работы, в то время как Podman не требует никакого демона для работы и также может работать без прав root.

В этом руководстве мы покажем вам основные возможности Podman для управления контейнерами, образами и томами, а также создания образов контейнеров. Чтобы завершить это руководство, вы должны установить podman. Вот руководства для различных операционных систем:

  • Как установить Podman на Ubuntu 22.04
  • Начало работы с Podman (альтернатива Docker) на Rocky Linux
  • Как установить и использовать Podman (альтернатива Docker) на Ubuntu 20.04
  • Как установить Podman как альтернативу Docker на Debian 11

Предварительные требования

  • Сервер Ubuntu с установленным Podman
  • Базовые знания Docker упростят задачу

1. Основная команда Podman

После установки Podman на систему Ubuntu, мы должны знать, как проверить сам Podman. Нам нужно проверить версию, которая уже установлена на системе, системную среду Podman и основные команды помощи.

Чтобы получить установленную версию Podman на машине, используйте следующую команду.

podman version

Любая версия Podman > 1.0.1 подойдет для этого руководства.

Теперь проверьте настройку окружения Podman.

podman info

И вам будет показана системная среда установки Podman. Включая информацию о пакетах хоста, реестрах и хранилище.

Podman environment

Далее выполните следующую команду, чтобы показать все доступные параметры команд Podman.

podman --help

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

podman pod help

Podman help

2. Управление образами контейнеров с помощью Podman

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

Запустите команду ниже, чтобы найти образ.

podman search nginx

Команда будет искать образы, содержащие слово ‘nginx’, во всех доступных репозиториях, которые уже определены в конфигурационном файле ‘/etc/containers/repositories.conf’.

Search for Podman image

Теперь загрузите несколько образов, используя команды ‘podman pull’ ниже.

podman pull docker.io/library/nginx  
podman pull docker.io/library/alpine

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

podman images

Теперь у вас будут образы nginx и alpine на системе.

get images with podman pull command

Чтобы удалить образ alpine, вы можете использовать опцию ‘rmi’ следующим образом.

podman rmi alpine

remove podman image

В результате у вас останется только образ контейнера nginx на системе.

3. Управление контейнерами

На этом этапе мы узнали о управлении образами контейнеров. А на следующем шаге мы узнаем, как создавать и управлять контейнерами с помощью Podman.

Чтобы создать новый контейнер, мы можем использовать команду ‘podman run’ следующим образом.

podman run -d -p 8000:80 --name hakase-nginx docker.io/library/nginx

Команда создаст новый контейнер с именем ‘hakase-nginx’ на основе образа nginx и откроет порт 8000 на хост-машине.

Подробности опций команды:

-d - держит контейнер работающим в фоновом режиме и просто выводит ID контейнера в результате.
-p 8000:80 - сопоставление портов для контейнера и хост-системы. Порт 8000 на хост-машине и порт 80 на контейнере.
–name hakase-nginx - указывает имя контейнера как ‘hakase-nginx’.

Теперь отобразите все работающие контейнеры на системе.

podman ps

И вам будет показан контейнер с именем ‘hakase-nginx’, который работает.

Если вы хотите проверить все доступные контейнеры, вы можете использовать опцию ‘-a’.

podman ps -a

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

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

Чтобы проверить процесс внутри работающего контейнера, используйте следующую команду.

podman top hakase-nginx

Теперь, чтобы подключиться и получить доступ к работающему контейнеру, вы можете использовать команду ‘exec’ следующим образом.

podman exec -it hakase-nginx /bin/bash

Внутри контейнера ‘hakase-nginx’ проверьте версию nginx.

nginx -V

Вы получите результат, как показано ниже.

Manage Podman containers

Теперь введите ‘exit’, чтобы выйти из контейнера.

Далее остановите контейнер ‘hakase-nginx’.

podman stop hakase-nginx

Затем удалите контейнер.

podman rm hakase-nginx

Podman start and stop

Если вы хотите принудительно остановить и удалить работающий контейнер, вы можете использовать ‘-f’ для опции.

podman rm hakase-nginx -f

4. Управление томами

С версии 0.12 Podman поддерживает создание и управление локальными томами. Поэтому, если вы используете более старую версию, вы не получите команду ‘podman volume’.

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

podman volume create hakase-volume

После этого отобразите все доступные тома на системе.

podman volume ls

И вы получите ‘hakase-volume’ в списке.

Чтобы проверить детали о томе ‘hakase-volume’, мы можем использовать опцию ‘inspect’ следующим образом.

podman volume inspect hakase-volume

И вы увидите, что ‘mountPoint’ тома указывает на локальный каталог ‘/var/lib/containers/storage/hakase-volume/_data’.

Podman manage volumes

Перейдите в этот каталог и создайте новый файл index.html.

cd /var/lib/containers/storage/hakase-volume/_data  
echo "

Это пользовательский индекс и том - Привет Podman

" > index.html

Теперь создайте новый контейнер и смонтируйте ‘hakase-volume’ в контейнер.

podman run -d -p 8000:80 -v hakase-volume:/usr/share/nginx/html --name hakase-nginx docker.io/library/nginx

После создания контейнера проверьте доступные тома в контейнере, используя следующую команду.

podman inspect -f '{{ json .Mounts }}' hakase-nginx | jq

Внизу результата вы получите ‘hakase-volume’ в контейнере.

Volume mounts

Далее проверьте IP-адрес контейнера.

podman inspect -f '{{ .NetworkSettings.IPAddress }}' hakase-nginx

Получите доступ к контейнеру на HTTP-порту, используя httpie.

http http://10.88.0.4/

И вы получите пользовательский файл index.html, который был создан на ‘hakase-volume’.

access container volume

Теперь, если вы хотите удалить том, вы можете использовать опцию ‘rm’.

podman volume rm hakase-volume

И ‘hakase-volume’ будет удален.

5. Создание пользовательских образов с помощью Commit

Теперь мы собираемся создать пользовательские образы контейнеров с помощью Podman. В основном, Podman позволяет вам создавать пользовательские образы на основе измененного контейнера или создавать новые пользовательские образы с помощью ‘Dockerfile’.

В этом разделе мы собираемся создать новые пользовательские образы на основе измененного контейнера с помощью команды ‘podman commit’.

Загрузите/вытащите основной образ ‘ubuntu’.

podman pull docker.io/library/ubuntu

Теперь запустите контейнер на основе образа ubuntu. И внутри контейнера выполните команду ‘bash’, которая обновит репозитории и установит пакет nginx.

podman run --name container-temp ubuntu bash -c "apt update && apt install -y nginx"

Подождите, пока установка nginx завершится внутри контейнера.

Use commit to create custom images

После завершения создайте новый пользовательский образ на основе ‘container-temp’ с помощью следующей команды.

podman commit container-temp my-nginx

Далее проверьте доступные образы на системе.

podman images

И вы получите новый образ под названием ‘my-nginx’ в списке.

Custom image created

Если вы хотите запустить контейнер на основе образа ‘my-nginx’, выполните следующую команду.

podman run -dt -p 8001:80 --name nginx01 my-nginx /usr/sbin/nginx -g 'daemon off;'

Теперь проверьте работающий контейнер и его IP-адрес.

podman ps  
podman inspect --format '{{ .NetworkSettings.IPAddress }}' nginx01

И вам будет показано, что контейнер ‘nginx01’ работает. После этого получите доступ к HTTP-порту на контейнере ‘nginx01’.

http -p h 10.88.0.19

В результате вы получите HTTP-заголовок ответа, как показано ниже.

nginx test

6. Создание пользовательских образов с помощью Dockerfile

Теперь мы собираемся создать новый пользовательский образ контейнера с помощью Dockerfile.

Создайте новый проектный каталог и создайте новый ‘Dockerfile’ внутри.

mkdir project; cd project/  
vim Dockerfile

Вставьте следующую конфигурацию.

FROM ubuntu  

# Установка Nginx  
RUN \  
  apt-get update && \  
  apt-get install -y nginx && \  
  rm -rf /var/lib/apt/lists/* && \  
  echo "\ndaemon off;" >> /etc/nginx/nginx.conf && \  
chown -R www-data:www-data /var/lib/nginx  

# Определите монтируемые каталоги.  
VOLUME ["/etc/nginx/sites-enabled", "/etc/nginx/certs", "/etc/nginx/conf.d", "/var/log/nginx", "/var/www/html"]  

# Определите рабочий каталог.  
WORKDIR /etc/nginx  

# Определите команду по умолчанию.  
CMD ["nginx"]  

# Откройте порты.  
EXPOSE 80  
EXPOSE 443

Сохраните и закройте.

Теперь запустите podman ниже, чтобы создать новый пользовательский образ с помощью Dockerfile.

podman build -t hakase-image .

Use Dockerfiles to create images

После завершения проверьте новый образ на машине.

podman images

И вы получите ‘hakase-image’.

List podman images

Далее создайте новый контейнер на основе ‘hakase-image’, выполнив следующую команду.

podman run -d -p 8002:80 --name nginx02 hakase-image

После этого проверьте контейнер ‘nginx02’ и его IP-адрес.

podman ps  
podman inspect --format '{{ .NetworkSettings.IPAddress }}' nginx02

Убедитесь, что контейнер ‘nginx02’ работает.

Теперь проверьте контейнер с помощью инструмента httpie.

http 10.88.0.21

И вам будет показана страница по умолчанию Nginx и его HTTP-заголовок.

access test image

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

Share: X/Twitter LinkedIn

Get new posts in your inbox

No spam. Unsubscribe anytime.