Comments 7
Внутри systemd-nspawn контейнера не получится запустить PostgreSQL или ClickHouse - они не будут там нормально работать. Поэтому systemd-nspawn - это очень ограниченный по своим возможностям инструмент, больше для тестирования чего-то, а не для production use.
А вот FidoIP под ним очень удобно пускать - не нужно в системе прописывать КОИ-8, и прочее легаси.
кликхаус не пробовал, но постгря отлично работала, никаких проблем не испытывал. а у вас что именно мешает постгре работать?
Внутри контейнера была система Rocky Linux 8.9 и postgresql16.x86_64 16.2-1PGDG.rhel8 из официального репозитория - команда "systemctl stop postgresql-16.service" надолго "зависала". Сейчас - обновил систему внутри контейнера до 8.10 и пакет до postgresql16.x86_64 16.11-1PGDG.rhel8, - долгого зависания уже нет, и команда "systemctl stop postgresql-16.service" выполняется быстро, но теперь в логах "postgresql-16.service: Killing process 384 (postgres) with signal SIGKILL".
systemd-nspawn запускает процессы контейнера под seccomp-фильтром: по умолчанию используется whitelist — есть список разрешённых системных вызовов, всё остальное считается запрещённым. ClickHouse нормально не работал на Rocky Linux 8 из-за этого, насколько помню.
P.S.
возможно мой первый комментарий был слишком категоричен.
а так - в целом, systemd-nspawn штука хорошая и удобная, я даже когда-то утилиту написал для управления systemd-nspawn контейнерами, чтобы удобнее было с ними работать и управлять ими - https://github.com/makhomed/ct - но потом со временем ушел на виртуальные машины, - они более надежные, хотя и используют больше ресурсов.
а чем вас полноценная виртуалка то не устраивает?
Извините, вторая статья на туже тему и снова ни о чём.
Вот тут интересней https://quantum5.ca/2025/03/22/whirlwind-tour-of-systemd-nspawn-containers/
systemd-nspawn: продолжаем знакомство