Podman установка · 9 min read · Oct 05, 2025
Руководство для начинающих по установке и использованию Podman на AlmaLinux 9

Podman — это инструмент, родной для Linux, для развертывания приложений с использованием контейнеров и образов контейнеров Open Container Initiative (OCI). Он поддерживает несколько форматов образов контейнеров, включая образы Docker и образы контейнеров OCI. Также Podman поддерживает управление подами и группами контейнеров.
Podman — это инструмент без демона, работающий как одна бинарная командная строка без сервиса. Он предоставляет командную строку, аналогичную Docker, вы можете использовать псевдоним, такой как ‘alias docker=podman’.
В этом руководстве мы покажем вам, как установить и использовать Podman в качестве замены Docker Engine на сервере AlmaLinux 9. Вы узнаете основы использования Podman для управления контейнерными приложениями. Завершив это руководство, вы лучше поймете, как использовать Podman для оркестрации контейнеров в вашей локальной разработке.
Предварительные требования
Для начала этого руководства у вас должен быть:
- Сервер AlmaLinux 9 — в этом примере используется сервер с именем хоста ‘AlmaLinux9‘.
- Непривилегированный пользователь с правами администратора sudo/root.
Установка Podman
Podman — это инструмент оркестрации контейнеров без демона и с открытым исходным кодом для быстрого развертывания. Podman — это родное приложение для Linux и предоставляет интерфейс командной строки, аналогичный Docker.
С помощью Podman вы можете находить, запускать, делиться и развертывать приложения с использованием контейнеров и образов контейнеров OCI (Open Containers Initiative).
На AlmaLinux Podman доступен по умолчанию в репозитории AppStream, вы можете установить его с помощью менеджера пакетов DNF.
Запустите следующую команду dnf для установки Podman на вашем сервере AlmaLinux.
sudo dnf install podmanВведите y, когда будет предложено, затем нажмите ENTER.

Поскольку Podman является инструментом без демона, вы можете просто запустить его без запуска какого-либо демона.
Запустите следующую команду, чтобы проверить версию Podman и подробную информацию о вашей установке.
podman versionНиже приведен вывод текущей версии Podman на момент написания:

Кроме того, вы также можете проверить детали установки Podman, используя следующую команду.
podman infoЗапуск Podman как непривилегированного пользователя
В этом разделе вы настроите Podman для непривилегированного пользователя. Вы создадите нового пользователя и убедитесь, что новый непривилегированный пользователь может выполнять и запускать контейнеры с помощью Podman.
Запустите следующую команду, чтобы создать нового пользователя с именем ‘alice‘ и настроить для него пароль. Введите новый пароль, когда будет предложено, затем повторите.
sudo useradd -m -s /bin/bash alice
sudo passwd aliceТеперь добавьте нового пользователя ‘alice‘ в группу ‘wheel‘. Это позволит новому пользователю выполнять ‘ sudo ‘ и становиться root.
sudo usermod -aG wheel aliceПосле этого выполните следующую команду, чтобы включить длительное выполнение для пользователя ‘alice’. Это позволит пользователю ‘alice’ запускать процесс контейнера в течение длительного времени, даже когда пользователь вышел из системы, процесс все равно будет работать.
sudo loginctl enable-linger aliceЗатем войдите как новый пользователь ‘alice‘, используя команду ниже.
su - alice
Запустите команду ‘ podman ‘ ниже, чтобы запустить новый контейнер с образом ‘ hello-world ‘.
podman run hello-worldЕсли все прошло успешно, вы должны получить вывод, похожий на этот:

Наконец, выполните следующую команду ‘podman’, чтобы проверить список работающих и завершенных контейнеров.
podman ps -aЕсли конфигурация успешна, вы должны увидеть контейнер с базовым образом ‘ hello-world ‘ со статусом ‘ Exited ‘.
Поиск образов контейнеров
По умолчанию Podman будет извлекать образы контейнеров из нескольких реестров образов, таких как реестр образов Redhat, quay.io, а также DockerHub. Вы можете добавить больше реестров образов контейнеров в конфигурацию ‘/etc/containers/registries.conf’.
В этом примере будет использоваться DockerHub в качестве реестра контейнеров, так что давайте начнем.
Запустите следующую команду, чтобы найти новые образы контейнеров, содержащие ‘ httpd ‘.
podman search httpdНиже приведен вывод, который вы должны получить в своем терминале:

Вы также можете ограничить вывод, используя опцию ‘ –limit ‘, как показано ниже.
podman search httpd --limit 3Это покажет только три лучших образа контейнеров из каждого реестра образов контейнеров.

Наконец, вы также можете использовать опцию ‘ –filter ‘, как показано ниже.
podman search httpd --filter=is-officialЭто покажет вам только официальные образы контейнеров.
Загрузка образов
После того как вы нашли образы контейнеров, следующим шагом является загрузка образов контейнеров из реестров.
Запустите следующую команду, чтобы загрузить образ ‘ httpd ‘ с тегом ‘ alpine ‘.
podman pull httpd:alpineВыберите реестр образов, который вы хотите использовать. В этом примере будет использоваться DockerHub.
После выбора источника процесс загрузки начнется.

После завершения выполните следующую команду, чтобы проверить доступные образы на вашем сервере AlmaLinux.
podman imagesНа этом этапе, если все прошло успешно, вы должны получить два образа контейнеров, образ ‘ hello-world ‘ из quay.io и ‘ httpd ‘ из DockerHub.
Инспекция изображений
Инспекция изображений — это мощный способ получить подробную информацию о том, как контейнер будет запущен. В Podman и Docker вы можете инспектировать образы с помощью опции ‘inspect’.
Запустите следующую команду, чтобы получить подробную информацию об образе ‘ httpd:alpine ‘.
podman inspect docker.io/library/httpd:alpineЭто покажет вам подробную информацию об образах, такую как дата создания, размер, рабочий каталог по умолчанию, команда запуска, открытый порт и многое другое.

Вы также можете указать, какую часть вы хотите проверить, используя дополнительный параметр, как показано ниже.
podman inspect --format "size: {{.Size}}" docker.io/library/httpd:alpine
podman inspect --format "ports: {{.Config.ExposedPorts}}" docker.io/library/httpd:alpine
podman inspect --format "workdir: {{.Config.WorkingDir}}" docker.io/library/httpd:alpineЭто покажет вам размер образа, открытый порт по умолчанию и рабочий каталог по умолчанию.
Запуск контейнера
В этом разделе вы узнаете, как запустить контейнер с помощью Podman.
Введите следующую команду, чтобы запустить новый контейнер с именем ‘httpd’, открыть порт 8080 на хост-машине и использовать образ ‘ httpd:alpine ‘. Также параметр ‘ –rm ‘ автоматически удалит контейнер после его остановки.
podman run -it --rm -d -p 8080:80 --name httpd docker.io/library/httpd:alpineЕсли все прошло успешно, вы должны получить случайную строку и номер нового идентификатора контейнера.
Проверьте работающий контейнер, используя следующую команду. Вы должны получить контейнер ‘ httpd ‘ со статусом ‘ Up ‘ и использовать порт 8080 на хост-машине.
podman psЗатем вы можете проверить контейнер ‘httpd’, используя команду curl ниже. Обязательно замените IP-адрес в приведенном ниже примере на IP-адрес вашего сервера.
curl http://192.168.5.20:8080/Если все прошло успешно, вы должны получить вывод, похожий на этот:
Кроме того, вы также можете получить доступ к контейнеру ‘httpd’ через веб-браузер. Откройте ваш веб-браузер и перейдите по IP-адресу сервера, за которым следует порт контейнера 8080 (т.е.: http://192.168.5.20:8080/).
Если все прошло успешно, вы должны увидеть страницу index.html по умолчанию из контейнера ‘ httpd ‘, как показано ниже:
Проверка журналов контейнера
С контейнером ‘httpd’, работающим и запущенным, теперь вы будете проверять журналы из контейнера. Знание этого полезно для отладки ваших приложений.
Чтобы показать все журналы из контейнера ‘ httpd ‘, выполните следующую команду.
podman logs httpdЭто пример журналов из контейнера ‘httpd’.
Затем вы можете уменьшить вывод журнала, используя параметр ‘ –tail ‘, как показано ниже.
podman logs --tail 20 httpdВ этом примере параметр ‘tail 20 ‘ покажет вам последние 20 строк журналов из контейнера ‘ httpd ‘.
Остановка контейнера
Теперь, если вы хотите остановить контейнер, просто выполните *podman stop*.
Запустите следующую команду, чтобы остановить контейнер ‘ httpd ‘.
podman stop httpdПосле остановки контейнера ‘ httpd ‘ выполните команду ниже, чтобы проверить список доступных контейнеров в вашей системе.
podman ps
podman ps -aКонтейнер ‘ httpd ‘ автоматически удаляется после остановки контейнера. Это происходит потому, что вы запустили контейнер с параметром ‘ –rm ‘.
Запуск контейнера с пользовательским томом
В этом примере вы запустите новый контейнер с пользовательским томом. Это смонтирует локальный каталог на хост-машине в контейнер.
Создайте новый каталог ‘ data ‘ в домашнем каталоге пользователя alice. Затем создайте новый файл ‘ index.html ‘ внутри каталога ‘ data ‘ с помощью редактора nano.
mkdir -p ~/data/
nano ~/data/index.htmlВставьте следующий HTML-скрипт.
Добро пожаловать в контейнер Nginx
Привет из контейнера httpd - управляемого с помощью Podman
Сохраните и закройте файл.
Теперь выполните следующую команду, чтобы запустить новый контейнер ‘httpd’ с пользовательским томом каталога ‘ data ‘, который будет смонтирован в каталог ‘ /usr/local/apache2/htdocs ‘ на контейнере.
podman run --privileged=true -it --rm -d -p 8080:80 --name httpd -v ~/data:/usr/local/apache2/htdocs docker.io/library/httpd:alpineКроме того, этот контейнер работает с дополнительным параметром ‘ –privileged=true ‘. Это для тестирования, и все же контейнер будет запущен как пользователь ‘ alice ‘, а не как пользователь root. Узнайте больше о привилегированных флагах в Podman.
Затем выполните следующую команду, чтобы проверить работающий контейнер в вашей системе.
podman psЕсли все прошло успешно, вы должны увидеть новый контейнер ‘ httpd ‘ со статусом ‘ Up ‘ и открытым портом 8080 на хост-машине.
Запустите команду curl ниже, чтобы проверить новый контейнер ‘ httpd ‘.
curl http://192.168.5.21:8080/Вы должны получить вывод скрипта index.html, который вы создали ранее.

С веб-браузера на http://192.168.5.21:8080/ вы должны увидеть пользовательскую страницу, как показано ниже:

Вход в контейнер
С контейнером ‘ httpd ‘ работающим, вы можете получить доступ к контейнеру через оболочку, используя команду ‘ podman exec ‘.
Войдите в контейнер ‘ httpd ‘, используя следующую команду. Это выполнит ‘ /bin/sh ‘ оболочку в контейнере ‘ httpd ‘ и присоединит ее к вашей текущей сессии.
podman exec -it httpd /bin/shПосле входа вы должны находиться в каталоге ‘WorkingDir‘. В этом примере рабочий каталог по умолчанию — это каталог ‘ /usr/local/apache2 ‘.
Теперь выполните следующую команду в контейнере ‘ httpd ‘. Проверьте текущего пользователя, локальный IP-адрес контейнера и шлюз по умолчанию для контейнера.
id
ip a
route -nВы можете получить вывод с другим IP-адресом и шлюзом, но он должен быть похож на этот:

Запуск и управление подом
В Podman вы можете создать и запустить под. Под — это оболочка для контейнеров, что означает, что несколько контейнеров могут работать в одном поде. Как и в Kubernetes, под — это наименьшая сущность, в которой работает ваше приложение.
С помощью Podman вы можете создать и запустить под, даже без Kubernetes.
Запустите следующую команду, чтобы создать новый под httpdTest с образом ‘ httpd:alpine ‘ и открыть порт 9090 на хост-машине.
podman run -dt --pod new:httpdTest -p 9090:80 docker.io/library/httpd:alpineЕсли все прошло успешно, вы должны получить случайную строку и номер идентификатора пода.
Теперь выполните следующую команду, чтобы проверить работающий под в вашей системе.
podman pod lsВы должны увидеть под ‘httpdTest‘ со статусом ‘Running‘ и 2 контейнера.

Теперь вы можете использовать опцию ‘ inspect ‘ на поде, как показано ниже.
podman pod inspect httpdTestВы должны получить подробную информацию о поде httpdTest.

Вы также можете проверить количество контейнеров, которые работают в подах, включая имена контейнеров, используя следующую команду.
podman pod inspect --format="containers: {{.NumContainers}}" httpdTest
podman pod inspect --format "{{.Containers}}" httpdTestВы получите вывод, похожий на этот:
Наконец, выполните следующую команду, чтобы получить доступ к поду httpdTest, который работает на порту 9090 на хост-машине. Если все прошло успешно, вы должны получить страницу index.html по умолчанию контейнеров, которые работают на поде httpdTest.
curl http://192.168.5.21:9090/Заключение
Поздравляем! Теперь вы установили Podman на AlmaLinux 9. Вы также узнали основные способы использования Podman для управления образами и контейнерами. Более того, вы также узнали, как создать и запустить под с помощью Podman.
Get new posts in your inbox
No spam. Unsubscribe anytime.