Тема
Управление стеками
Стек — это набор контейнеров, описанных в файле compose.yml. Стеки запускаются через Podman Compose от имени непривилегированного пользователя (rootless).
Команды
stack deploy
Загружает или обновляет стек из compose.yml, переданного через stdin. Если стек с таким именем уже существует, он обновляется.
ssh server stack deploy <name>Примеры:
bash
# Развернуть стек из файла
ssh server stack deploy myapp < compose.yml
# Обновить стек (передать новый compose.yml)
ssh server stack deploy myapp < compose.ymlstack list
Выводит имена всех развёрнутых стеков.
ssh server stack listПример вывода:
myapp
postgres
monitoringstack up
Запускает контейнеры стека (аналог docker compose up -d).
ssh server stack up <name>Пример:
bash
ssh server stack up myappstack down
Останавливает контейнеры стека (аналог docker compose down).
ssh server stack down <name>Пример:
bash
ssh server stack down myappstack remove
Удаляет стек: останавливает контейнеры и удаляет файл compose.yml со всеми данными стека.
ssh server stack remove <name>Пример:
bash
ssh server stack remove myappWARNING
Эта команда необратима. Файл compose.yml будет удалён. Тома (volumes) при этом не удаляются — используйте infra volume prune для очистки неиспользуемых томов.
stack ps
Показывает состояние контейнеров стека (аналог docker compose ps).
ssh server stack ps <name>Пример вывода:
NAME IMAGE COMMAND SERVICE CREATED STATUS PORTS
myapp_web_1 nginx:alpine ... web 2 hours ago Up 2 hours 0.0.0.0:80->80/tcp
myapp_db_1 postgres:16 ... db 2 hours ago Up 2 hoursstack logs
Выводит логи контейнеров стека. Можно указать конкретный сервис.
ssh server stack logs [--follow] <name> [service]Флаги:
| Флаг | Сокращение | Описание |
|---|---|---|
--follow | -f | Следить за логами в реальном времени |
Примеры:
bash
# Логи всего стека
ssh server stack logs myapp
# Следить за логами в реальном времени
ssh server stack logs -f myapp
# Логи конкретного сервиса
ssh server stack logs myapp web
# Следить за логами конкретного сервиса
ssh server stack logs -f myapp dbПример compose.yml
yaml
services:
db:
image: postgres:16
environment:
POSTGRES_PASSWORD_FILE: /run/secrets/db_password
secrets:
- db_password
volumes:
- db_data:/var/lib/postgresql/data
restart: unless-stopped
secrets:
db_password:
external: true
volumes:
db_data:Использование secrets
Podman secrets, созданные через infra secret create, доступны в compose.yml как external: true.