LoginSignup
4
3

More than 5 years have passed since last update.

systemd-nspawnでいろんなディストリビューションを動かしてみる

Posted at

systemd-nspawn Advent Calendar 2017 1日目の記事です。

今回はsystemd-nspawnでいろんなディストリビューションを動かしてみます。

準備

ホストはDebian9.2を使います
Debian系以外はDockerhubからイメージを持ってきます

# systemd-nspawnインストール
apt install systemd-container
# ファイル準備用パッケージ
apt install debootstrap
# イメージダウンロード用にDocker入れる
wget https://download.docker.com/linux/debian/dists/stretch/pool/stable/amd64/docker-ce_17.09.0~ce-0~debian_amd64.deb
dpkg -i docker-ce_17.09.0~ce-0~debian_amd64.deb
docker export $(docker create centos:7) > /tmp/centos7.tar
docker export $(docker create fedora:27 echo ok) > /tmp/fedora27.tar

debian 9

debootstrapで一発

cd /var/lib/machines
debootstrap --components=main --variant=minbase stretch debian9 http://ftp.jp.debian.org/debian/
systemd-nspawn -D ./debian9/ # コンテナ内へ
passwd # パスワード設定
apt update
apt install systemd # systemd入れる
exit # コンテナ内から脱出
systemd-nspawn -b -D ./debian9/ # boot
# rootで入れる(パスワードはさっき設定したやつ)
systemctl poweroff # 気が済んだら終わり

Ubuntu 16.04

ubuntuも同じ感じ

cd /var/lib/machines
debootstrap --arch amd64 xenial ./ubuntu1604 http://archive.ubuntu.com/ubuntu
vim ubuntu1604/etc/systemd/resolved.conf # DNS=のところを自分のDNSサーバのアドレスへ 例) DNS=8.8.8.8
systemd-nspawn -D ./ubuntu1604/ # コンテナ内へ
passwd # パスワード設定
systemctl enable systemd-resolved.service # DNS設定
ln -sf /run/systemd/resolve/resolv.conf /etc/resolv.conf
exit # コンテナ内から脱出
systemd-nspawn -b -D ./ubuntu1604 # boot
# rootで入れる(パスワードはさっき設定したやつ)
systemctl poweroff # 気が済んだら終わり

CentOS 7

systemd標準搭載なので楽

cd /var/lib/machines/
machinectl import-tar /tmp/centos7.tar # インポート
systemd-nspawn -D ./centos7 # コンテナ内へ
passwd # パスワード設定
exit # コンテナ内から脱出
systemd-nspawn -b -D ./centos7 # boot
# rootで入れる(パスワードはさっき設定したやつ)
systemctl poweroff # 気が済んだら終わり

Fedora 27

cd /var/lib/machines/
machinectl import-tar /tmp/fedora27.tar # インポート
systemd-nspawn -D ./fedora27 # コンテナ内へ
dnf install passwd
passwd # パスワード設定
systemctl unmask console-getty.service getty.target
systemctl enable console-getty.service getty.target
exit # コンテナ内から脱出
systemd-nspawn -b -D ./fedora27 # boot
# rootで入れる(パスワードはさっき設定したやつ)
systemctl poweroff # 気が済んだら終わり

まとめ

大体動く

4
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
3