Контейнеры. podman
Контейнеры. podman.
Содержание
1 Общая информация
- Совместимая с Docker среда выполнения контейнеров.
2 Установка
- Rocky:
1dnf -y install podman
- Установим podman-compose:
1dnf -y install podman-compose
- Дополнительно можно установить текстовый интерфейс:
1dnf -y install podman-tui
- Плагин для Cockpit:
1dnf -y install cockpit-podman
3 Запуск
- Запустите сервис:
1systemctl enable --now podman.service
- Запустите сервис автообновления:
1systemctl enable --now podman-auto-update.timer
4 Добавление контейнера
- В качестве примера установим Nextcloud:
1podman 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
: - Запустим генератор и сообщим systemd о запуске новой службы:
1systemctl --user daemon-reload
- Запустим службу:
1systemctl --user start nextcloud.service
- Для системных сервисов опустите флаг
--user
. - Чтобы автоматически запускать контейнер при запуске системы или входе пользователя в систему, можно добавить раздел в файл
nextcloud.container
: - Поскольку сгенерированные служебные файлы считаются временными, их нельзя включить с помощью systemd.
- Чтобы избежать этого, генератор вручную применяет установки во время генерации.