Контейнеры. podman
2024-12-04
·
2 мин. для прочтения
Контейнеры. podman.
Содержание
1 Общая информация
- Совместимая с Docker среда выполнения контейнеров.
2 Установка
- Rocky:
dnf -y install podman - Установим podman-compose:
dnf -y install podman-compose - Дополнительно можно установить текстовый интерфейс:
dnf -y install podman-tui - Плагин для Cockpit:
dnf -y install cockpit-podman
3 Запуск
- Запустите сервис:
systemctl enable --now podman.service - Запустите сервис автообновления:
systemctl enable --now podman-auto-update.timer
4 Добавление контейнера
- В качестве примера установим Nextcloud:
podman run -d -p 8080:80 nextcloud - Вы получите приглашение выбрать реестр контейнеров для загрузки.
- Можно выбрать
docker.io/library/nextcloud:latest. - После загрузки контейнера Nextcloud он запустится.
- Введите
ip_address:8080в веб-браузере и настройте Nextcloud.
5 Запуск контейнеров как сервисов systemd
- Информация: https://docs.podman.io/en/latest/markdown/podman-systemd.unit.5.html
- Quadlet: генератор systemd, который может создавать юнит-файлы для служб systemd без root и с root-доступом.
- Файлы для сервисов с root-доступом можно поместить в каталоги:
/etc/containers/systemd/./usr/share/containers/systemd/
- Файлы для сервисов без root-доступа могут быть помещены в каталоги:
$XDG_CONFIG_HOME/containers/systemd/(~/.config/containers/systemd/);/etc/containers/systemd/users/$(UID);/etc/containers/systemd/users/.
- Например, для Nextcloud создадим файл
~/.config/containers/systemd/nextcloud.container:[Container] Image=nextcloud PublishPort=8080:80 - По умолчанию контейнер podman имеет то же имя, что и модуль, но с префиксом
systemd-. - Опция
ContainerNameпозволяет переопределить это имя по умолчанию на имя, предоставленное пользователем. - Запустим генератор и сообщим systemd о запуске новой службы:
systemctl --user daemon-reload - Запустим службу:
systemctl --user start nextcloud.service - Для системных сервисов опустите флаг
--user. - Чтобы автоматически запускать контейнер при запуске системы или входе пользователя в систему, можно добавить раздел в файл
nextcloud.container:[Install] WantedBy=default.target - Поскольку сгенерированные служебные файлы считаются временными, их нельзя включить с помощью systemd.
- Чтобы избежать этого, генератор вручную применяет установки во время генерации.