Контейнеры systemd-nspawn

Материал из ALT Linux Wiki

Подготовка

Первым делом не обойтись без установки пакета означенной в заголовке системы виртуализации:

# apt-get update && apt-get install systemd-container -y

Ещё понадобится образ минимальной системы, годный для виртуальных сред контейнерного типа — LXC или Docker. Взять можно в репозитории; на момент написания статьи привлекательнее прочих выглядел этот.

Настройка

Допустим, первый контейнер будет называться alt-1. Тогда распаковать этот образ надо в каталог /var/lib/machines/alt-1/, предварительно его создав.

Дабы впоследствии не мучиться со входом в контейнер с отлупом по паролю, следует задать таковой пользователю root, для чего первый вход произвести в незапущенный контейнер.

Как контейнеры запускаются, можно подглядеть в пункте ExecStart сервисного шаблона /lib/systemd/system/systemd-nspawn@.service, а именно:

# systemd-nspawn --quiet --keep-unit --boot --link-journal=try-guest --network-veth -U --settings=override --machine=%i

В нашем случае, поупрощённей, без загрузки и не нужной на этом этапе опции --keep-unit:

# systemd-nspawn -q -j -n -U --settings=override -M alt-1

Получив приглашение [root@alt-1 ~]# , задаём пароль и выходим:

[root@alt-1 ~]# passwd
passwd: updating all authentication tokens for user root.
...
Enter new password: 
Re-type new password: 
passwd: all authentication tokens updated successfully.
[root@alt-1 ~]# exit
logout


# systemctl enable --now systemd-nspawn@alt-1
Created symlink /etc/systemd/system/machines.target.wants/systemd-nspawn@alt-1.service → /lib/systemd/system/systemd-nspawn@.service.
[root@comp ~]# systemctl status systemd-nspawn@alt-1
● systemd-nspawn@alt-1.service - Container alt-1
  Loaded: loaded (/lib/systemd/system/systemd-nspawn@.service; enabled; vendor preset: disabled)
  Active: active (running) since Thu 2020-10-01 21:38:31 +08; 8s ago
    Docs: man:systemd-nspawn(1)
...