systemd-nspawn でコンテナを使う

コンテナと言えば Docker がメジャーですが、1プロセス、1アプリの基本概念が使いにくと
思っている方は、systemd-nspawn のほうが使いやすと思われます。

systemd-nspawn のインストール

# apt-get -y install systemd-container debootstrap

基本となるコンテナの作成(20分ぐらい)。

# cd /var/lib/machines
# debootstrap --arch=armhf buster raspbian-buster http://archive.raspbian.org/raspbian

自分用にカスタマイズしたベースイメージの作成

クローンイメージの作成

# machinectl clone raspbian-buster raspbian-buster-base

インスタンスを起動

# systemd-nspawn -D /var/lib/machines/raspbian-buster-base

※コンテナから抜けるには、1秒以内に ] を3回押します

rootのパスワード設定

# passwd root

コンテナを起動(–bind で apt-get のキャッシュをホストと共用する)

# systemd-nspawn --bind=/var/cache/apt -bD /var/lib/machines/raspbian-buster-base

パッケージの更新

# apt-get update
# apt-get upgrade

ホスト名の設定

# echo RaspbianBusterBase > /etc/hostname

起動中のコンテナにログインするため dbus は入れておきます

# apt-get -y install dbus

あとは、vim 入れたり、コマンドプロンプト変えたり基本設定を行います。

ブリッジネットーワーク設定(Host)

# systemctl start systemd-networkd
# systemctl enable systemd-networkd

[NetDev]
Name=br0
Kind=bridge

[Match]
Name=br0

[Network]
DNS=8.8.8.8
Address=10.0.0.1/24
Gatwate=10.0.0.1

IPForward=ipv4
IPMasquerade=yes
LinkLocalAddressing=no

ブリッジネットーワーク設定(Container)

# ln -sf /dev/null /etc/systemd/network/80-container-host0.network
# systemctl start systemd-networkd
# systemctl enable systemd-networkd

[Match]
Virtualization=container
Name=host0
 
[Network]
DNS=10.0.0.1
Address=10.0.0.20/24
Gateway=10.0.0.1

コンテナ操作

コマンド機能
machinectl list 起動中のコンテナ一覧
machinectl list-images コンテナ一覧
machinectl clone クローン元のコンテナ名 クローン後のコンテナ名コンテナのクローン
machinectl remove コンテナ名 コンテナの削除
machinectl rename 元のコンテナ名 新しいコンテナ名 コンテナのリネーム
machinectl start コンテナ名 コンテナの起動
machinectl poweroff コンテナ名 コンテナのシャットダウン
machinectl status コンテナ名 コンテナの状態取得
machinectl enable コンテナ名 コンテナを自動起動に登録
machinectl disable コンテナ名 コンテナを自動起動から削除
machinectl shell コンテナ名 /bin/bash コンテナにログイン
raspberry/pi3/systemd-nspawn_でコンテナを使う.txt · 最終更新: 2020/04/07 17:19 by admin
 
特に明示されていない限り、本Wikiの内容は次のライセンスに従います: CC Attribution-Share Alike 4.0 International
Recent changes RSS feed Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki