Введение
Начало работы с Podman знакомит вас с современным лёгким механизмом контейнеров, разработанным как безопасная альтернатива Docker, не требующая прав root. В отличие от Docker, Podman не нуждается в центральном демоне, обеспечивая повышенную безопасность и гибкость для разработчиков и системных администраторов, управляющих контейнерами. Его бескорневая архитектура особенно привлекательна для сред, где минимизация повышения привилегий является приоритетом.
В этом руководстве мы рассмотрим основы установки и использования Podman в Ubuntu Server 22.04. Мы также разберём распространённую проблему, связанную с загрузкой образов контейнеров с использованием коротких имён (например,nginx) и предложим понятное решение, которое поможет вам быстро начать работу с Podman.

Предыдущие статьи:
01. Введение в Ubuntu Server – SysOSX: AI & Cloud
02. Как настроить первый сервер Ubuntu: руководство для начинающих – SysOSX: AI & Cloud
03.Освоение командной строки Linux для Ubuntu Server – SysOSX: AI & Cloud
05. Основы сетей для Ubuntu Server: подробное руководство – SysOSX: AI & Cloud
07.Установка исправлений и обновление Ubuntu Server: подробное руководство – SysOSX: AI & Cloud
08. Защита сервера Ubuntu: практические шаги по усилению защиты – SysOSX: AI & Cloud
09. Аудит и ведение журналов Ubuntu Server
10. Инструменты мониторинга системы для Ubuntu Server: подробное руководство – SysOSX: AI & Cloud
12. Аудит и соответствие требованиям для Ubuntu Server: рекомендации – SysOSX: AI & Cloud
13.Настройка сервера Ubuntu для хостинга и веб-приложений: полное руководство – SysOSX: AI & Cloud
14. Размещение нескольких сайтов на одном сервере Ubuntu: полезные советы – SysOSX: AI & Cloud
15. Управление хранилищем и дисками в Ubuntu Server: простое руководство – SysOSX: AI & Cloud
16. Настройка служб общего доступа к файлам в Ubuntu Server: полное руководство – SysOSX: AI & Cloud
17. Настройка защищённого сервера баз данных в Ubuntu: MySQL и MariaDB – SysOSX: AI & Cloud
18. Как настроить и использовать LVM в Ubuntu Server: подробное руководство – SysOSX: AI & Cloud
19. Введение в виртуализацию с KVM: руководство для начинающих по Ubuntu Server – SysOSX: AI & Cloud
21. Начало работы с LXD: установка контейнеров без труда + шпаргалка – SysOSX: AI & Cloud
Содержание
Что такое Podman и зачем его использовать?
Podman — это механизм контейнеров, предназначенный для создания, запуска и управления контейнерами с упором на безопасность и гибкость. Вот почему Podman набирает популярность:
- Архитектура без демона: Podman не зависит от фоновой службы (в отличие от демонной модели Docker), что сокращает поверхность атаки и повышает безопасность.
- Бескорневые контейнеры: Запускайте контейнеры без прав root, чтобы дополнительно повысить безопасность.
- Команды, совместимые с Docker: Интерфейс командной строки Podman совместим с Docker, что позволяет использовать такие команды, как
podman pullилиpodman runбез каких-либо проблем. - Интеграция с systemd: Управляйте контейнерами как системными службами без лишних усилий.
Шаг 1. Установка Podman в Ubuntu Server 22.04
1.1 Обновление системы
Перед установкой Podman убедитесь, что система обновлена, чтобы избежать проблем совместимости:
sudo apt update && sudo apt upgrade -y
1.2 Установка Podman
Podman входит в репозитории Ubuntu по умолчанию, поэтому его можно установить напрямую с помощью менеджера пакетов apt:
sudo apt install podman -y
1.3 Проверка установки
После установки проверьте установленную версию Podman, чтобы убедиться, что он готов к использованию:
podman --version
Пример вывода:
podman version 3.4.4
Шаг 2. Запуск первого контейнера Podman
2.1 Загрузка образа контейнера
Podman использует образы контейнеров для запуска приложений. Начните с загрузки лёгкого образа Alpine Linux:
podman pull alpine
2.2 Запуск контейнера
Запустите контейнер с помощью образа Alpine:
podman run --rm -it alpine sh
Эта команда запускает интерактивную оболочку внутри контейнера Alpine. Вы можете проверить базовые команды, например:
echo "Hello from Podman!"
2.3 Выход из контейнера
Чтобы выйти из контейнера, введите:
exit
Шаг 3. Разбираемся в разрешении коротких имён Podman
Проблема с короткими именами
При загрузке образов контейнеров с использованием коротких имён (например,nginx), Podman должен знать, в каком реестре искать образ. Без правильной настройки вы можете столкнуться со следующей ошибкой:
Error: short-name "nginx" did not resolve to an alias and no unqualified-search registries are defined in "/etc/containers/registries.conf"
Почему возникает эта ошибка?
Podman требуется файл конфигурации (registries.conf) для определения реестров контейнеров, в которых следует искать образы. Если этот файл отсутствует или настроен неправильно, Podman не может разрешить такие короткие имена, как nginx.
Шаг 4. Исправление ошибки разрешения коротких имён
4.1 Файл registries.conf — поиск или создание
Файл registries.conf обычно находится по адресу /etc/containers/registries.conf. Проверьте, существует ли файл:
ls /etc/containers/registries.conf
Если его нет, создайте его:
sudo nano /etc/containers/registries.conf
4.2 Добавление конфигурации реестра по умолчанию
Добавьте в файл следующую конфигурацию:
[registries.search]
registries = ['docker.io', 'quay.io']
docker.io: Ссылается на Docker Hub — наиболее часто используемый реестр контейнеров.quay.io: Ещё один популярный реестр контейнеров.
Сохраните файл и выйдите из него (Ctrl+O, затем Ctrl+X, если используется nano).
4.3 Повторная попытка команды загрузки
После настройки реестра попробуйте снова загрузить образ nginx ещё раз:
podman pull nginx
Podman теперь должен разрешить короткое имя nginx в docker.io/library/nginx и успешно загрузить образ.
Шаг 5. Запуск контейнеров без прав root
Одна из выдающихся особенностей Podman — возможность запускать контейнеры без прав root. Вот как это настроить:
5.1 Переход к пользователю без прав root
Войдите как обычный пользователь (например,uadmin):
su - uadmin
Проверьте, работает ли Podman для пользователя без прав root:
podman info
5.2 Исправление проблем с разрешениями для пользователей без прав root
Если при запуске Podman без прав root вы столкнулись с ошибкой permission denied, скорее всего, это связано с неправильным владельцем домашнего каталога пользователя.
Проверьте владельца домашнего каталога:
ls -ld /home/uadmin
Если владельцем каталога является root, исправьте это:
sudo chown -R uadmin:uadmin /home/uadmin
Вручную создайте необходимый каталог .local:
mkdir -p /home/uadmin/.local/share/containers
sudo chown -R uadmin:uadmin /home/uadmin/.local
Проверьте Podman ещё раз:
podman info
Теперь Podman должен успешно работать без прав root.
Шаг 6. Полезные команды Podman для начинающих
Вот несколько основных команд Podman, которые помогут вам начать работу:
- Список запущенных контейнеров:
podman ps
- Список всех контейнеров (включая остановленные):
podman ps -a
- Остановка запущенного контейнера:
podman stop <container-id>
- Удаление контейнера:
podman rm <container-id>
- Удаление образа:
podman rmi <image-name>
Справочная документация:
Начало работы с Podman | Podman
Заключение
Podman — это безопасный, лёгкий и гибкий механизм контейнеров, идеально подходящий для Ubuntu Server 22.04. В этом руководстве мы рассмотрели:
- Установку Podman.
- Запуск первого контейнера.
- Исправление ошибки разрешения коротких имён.
- Запуск контейнеров без прав root.
Следуя этим шагам, вы заложили прочную основу для изучения Podman и эффективного управления контейнерами. Благодаря бескорневым возможностям и совместимому с Docker интерфейсу командной строки Podman — отличный инструмент для современных рабочих процессов контейнеризации.
Следите за новостями:
В следующей статье мы расскажем о развёртывание Ubuntu Server на облачных платформах , таких как GCP, AWS и Azure.