Контейнери Linux з systemd-nspawn
Коли мені був потрібен певний дистрибутив на сучасній станції лінукс, я вживав schroot. Більш продуманим рішенням було б використовувати LXC. Проте на тій самій сторінці радять systemd-nspawn як альтернативу. Тож я вирішив спробувати її нещодавно, коли потрібно було приготувати CentOS 7 для роботи.
Встановлення просте: просто отримати дерево кореневої файлової системи. Потрібно було
виправити недоступність директорії /tmp/.X11-unix
з контейнера — зв’язав явно
з не-tmpfs. Створив стартовий скрипт, щоб було зручно запускати систему:
#!/bin/bash
cur_dir=`readlink -f $(dirname ${BASH_SOURCE[0]})`
xhost +local:
# Зауважте, що --bind /tmp/.X11-unix насправді не зберігає сокети,
# краще їх передати через /w
sudo systemd-nspawn \
-D $cur_dir/centos \
-b \
-n \
--bind /w \
--bind /home/sakhnik
Результат вражаючий. Система «завантажується» в термінал входу:
Я використав віртуальне локальне з’єднання до мережі в контейнері з допомогою
systemd-networkd
:
Поки що добре. Подивімося пізніше, наскільки цей контейнер придатний для роботи.