22. Начало работы с Podman на Ubuntu Server: полное руководство

Введение

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

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

Начало работы с Podman

Предыдущие статьи:

01. Введение в Ubuntu Server – SysOSX: AI & Cloud

02. Как настроить первый сервер Ubuntu: руководство для начинающих – SysOSX: AI & Cloud

03.Освоение командной строки Linux для Ubuntu Server – SysOSX: AI & Cloud

04. Управление пользователями и разрешениями в Ubuntu Server: подробное руководство – SysOSX: AI & Cloud

05. Основы сетей для Ubuntu Server: подробное руководство – SysOSX: AI & Cloud

06. Установка и управление программным обеспечением в 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

11. Централизованное ведение журналов для 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

20. Как установить Docker в 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.

    Оставить комментарий