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.
podman --helpЧтобы отобразить помощь для конкретной команды, вы можете использовать следующую команду.
podman pod help
2. Управление образами контейнеров с помощью Podman
Теперь мы переходим к управлению образами контейнеров с помощью Podman. Существуют некоторые основные команды, которые вы должны знать, связанные с управлением образами контейнеров, включая поиск образов, загрузку образов, отображение доступных образов на локальной системе и удаление образов.
Запустите команду ниже, чтобы найти образ.
podman search nginxКоманда будет искать образы, содержащие слово ‘nginx’, во всех доступных репозиториях, которые уже определены в конфигурационном файле ‘/etc/containers/repositories.conf’.

Теперь загрузите несколько образов, используя команды ‘podman pull’ ниже.
podman pull docker.io/library/nginx
podman pull docker.io/library/alpineПосле завершения проверьте все доступные образы на серверной машине.
podman imagesТеперь у вас будут образы nginx и alpine на системе.

Чтобы удалить образ alpine, вы можете использовать опцию ‘rmi’ следующим образом.
podman rmi alpine
В результате у вас останется только образ контейнера 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Вы получите результат, как показано ниже.

Теперь введите ‘exit’, чтобы выйти из контейнера.
Далее остановите контейнер ‘hakase-nginx’.
podman stop hakase-nginxЗатем удалите контейнер.
podman rm hakase-nginx
Если вы хотите принудительно остановить и удалить работающий контейнер, вы можете использовать ‘-f’ для опции.
podman rm hakase-nginx -f4. Управление томами
С версии 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’.

Перейдите в этот каталог и создайте новый файл 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’ в контейнере.

Далее проверьте IP-адрес контейнера.
podman inspect -f '{{ .NetworkSettings.IPAddress }}' hakase-nginxПолучите доступ к контейнеру на HTTP-порту, используя httpie.
http http://10.88.0.4/И вы получите пользовательский файл index.html, который был создан на ‘hakase-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 завершится внутри контейнера.

После завершения создайте новый пользовательский образ на основе ‘container-temp’ с помощью следующей команды.
podman commit container-temp my-nginxДалее проверьте доступные образы на системе.
podman imagesИ вы получите новый образ под названием ‘my-nginx’ в списке.

Если вы хотите запустить контейнер на основе образа ‘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-заголовок ответа, как показано ниже.

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 .
После завершения проверьте новый образ на машине.
podman imagesИ вы получите ‘hakase-image’.

Далее создайте новый контейнер на основе ‘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-заголовок.

В конечном итоге теперь вы можете управлять контейнерами, образами и томами с помощью Podman. И вы можете создавать новые пользовательские образы для вашего приложения с помощью Dockerfile.
Get new posts in your inbox
No spam. Unsubscribe anytime.