Секреты, тома и сети
Стекам часто нужны данные, которые живут дольше контейнеров и не хранятся в compose.yml: пароли, базы данных, отдельные сети. Для этого используется группа команд infra — она управляет ресурсами Podman: секретами, томами и сетями.
Секреты
Podman secrets позволяют безопасно передавать чувствительные данные (пароли, токены, ключи) в контейнеры — без прописывания их в compose.yml.
Секрет создаётся из данных на stdin:
echo "super-secret-password" | ssh server infra secret create db_passwordЧтобы стек использовал секрет, укажите external: true в compose.yml:
secrets:
db_password:
external: trueЗначение секрета появится в контейнере по пути /run/secrets/db_password.
Тома
Тома хранят данные, которые должны пережить пересоздание контейнеров и стеков: базы данных, файлы приложений. Обычные named volumes из compose.yml тоже работают; через infra дополнительно можно экспортировать и импортировать данные тома — например, для резервного копирования:
ssh server infra volume export db_data > db_data.tar.zst # бэкап
ssh server infra volume import db_data < db_data.tar.zst # восстановлениеНеиспользуемые тома удаляются командой infra volume prune — она полезна после stack remove, который не трогает данные.
Сети
По умолчанию каждый стек получает собственную сеть. Если нужно объединить контейнеры разных стеков или изолировать их от внешнего доступа, создайте сеть явно:
ssh server infra network create mynet --subnet 10.0.0.0/24 --gateway 10.0.0.1И подключите её к стеку через external: true:
services:
app:
networks:
- mynet
networks:
mynet:
external: trueПоддерживаются драйверы bridge, macvlan и ipvlan, а также IPv6 и внутренние (без выхода наружу) сети.
Дальше
Полный список команд с синтаксисом и примерами — в справочнике команд infra.