Podman rootless на VPS: контейнеры без Docker daemon — иллюстрация к статье Storm Cloud Blog, категория Docker
Podman rootless на VPS: контейнеры без Docker daemon — иллюстрация к статье Storm Cloud Blog, категория Docker
Docker·2 мин··

Podman rootless на VPS: контейнеры без Docker daemon

Podman на VPS: rootless-контейнеры, podman-compose, systemd user units. Безопасная альтернатива Docker для одного сервера.

Краткий ответ: Podman запускает OCI-контейнеры без фонового daemon. Rootless-режим — контейнеры от обычного пользователя, меньше attack surface чем Docker socket.

На shared VPS или когда не хотите отдавать root Docker — Podman + systemd user = production-ready для одного приложения.


Podman vs Docker

Podman Docker
Daemon Нет dockerd
Rootless Из коробки Возможен, сложнее
docker-compose podman-compose / compose Да
Kubernetes pods natively через k8s

Миграция с Docker Compose — часто достаточно заменить docker на podman.


Установка (Ubuntu/Debian)

sudo apt install podman podman-compose -y
podman --version

Rocky/RHEL:

sudo dnf install podman podman-compose -y

Rootless setup

# От пользователя deploy (не root)
podman info --format '{{.Host.Security.Rootless}}'

Если false, настройте subuid/subgid:

sudo usermod --add-subuids 100000-165535 --add-subgids 100000-165535 deploy

Перелогиньтесь.


Первый контейнер

podman run -d --name web -p 8080:80 docker.io/nginx:alpine
curl localhost:8080

podman-compose

# compose.yml
services:
  app:
    image: docker.io/library/nginx:alpine
    ports:
      - "8080:80"
podman-compose up -d

Reverse proxy — Nginx или Traefik на хосте.


Автозапуск через systemd user

podman generate systemd --name web --files --new
mkdir -p ~/.config/systemd/user
mv container-web.service ~/.config/systemd/user/
systemctl --user enable --now container-web.service
loginctl enable-linger deploy

enable-linger — контейнеры стартуют после reboot без login session.


Безопасность

  • Не давайте доступ к Docker socket на prod — Podman rootless решает это
  • Обновляйте образы: podman pull + restart
  • Сеть — nftables, только 80/443 снаружи

Итог

Podman rootless на VPS — контейнеры без daemon и без root. Идеален для solo-dev и одного стека приложений.

VPS 1 GB+ — StormNet Cloud. UI — Portainer (Docker). Оркестрация — k3s.

Частые вопросы

Podman полностью заменяет Docker?

Для большинства OCI-образов — да. Docker Compose файлы часто работают через podman-compose. Swarm и Docker-specific фичи — нет.

Зачем rootless Podman на VPS?

Контейнеры без root и без dockerd снижают риск: компрометация контейнера не даёт root на хосте через socket.