RaspberryPiにLXDをインストールしてみた

最終更新日

Raspberry Pi
Dockerは素晴らしい技術ですね。エンジニアとしては避けては通れないスキルになってるようです。
このDockerを学んだおかげで、LXD(レックスディー)の存在を知ることもできました。
LXDはシステムコンテナと言われ、Dockerが1アプリケーションを起動することを想定しているのに対して、LXDはOS自体をコンテナ化するといったところでしょうか。間違っていたらすみません。

参考にさせていただいてます

こんな順番で進みます

ちょっと試したくなって、OS環境が最悪壊れても大丈夫なラズベリーパイに、インストールと設定をしてみました。
  1. ブリッジの作成(ネットワーク関係の設定)
  2. snapのインストール
  3. LXDのインストール

環境確認

uname -a

Linux raspmaster 5.10.90-v7+ #1513 SMP Fri Jan 14 16:33:36 GMT 2022 armv7l GNU/Linux

lsb_release -a

No LSB modules are available.
Distributor ID: Raspbian
Description:    Raspbian GNU/Linux 11 (bullseye)
Release:    11
Codename:   bullseye

0. ブリッジインターフェイスの作成

以下のファイルを編集する。
$ sudo vim /etc/network/interfaces
$ sudo vim /etc/dhcpcd.conf 
(再起動)
$ ip addr show
$ ifconfig -a

/etc/dhcpcd.confが反映されなかった

実はかなりハマった所なのですが、dhcpcd.confにブリッジの設定を書いてもIPアドレスが割り振られない問題が起きました。dhcpcd.confが読み込まれていなような挙動だったので、dhcpcdというクライアントソフトをインストールしました。
これでようやくdhcpcd.confに書いたブリッジの設定が反映されました。
$ sudo apt install -y dhcpcd5
(再起動が必要だったかもしれません)
$ sudo brctl show

1. LXDはsnapでインストールするのが簡単らしい

$ sudo apt install snapd -y
$ snap version

2. LXDのインストール

この時点で最新版の4.22/stableをインストールしました。
$ sudo snap info lxd
$ sudo snap install lxd --channel=latest/stable
$ lxc --version # 4.22
  • $ lxd –version # 4.22

インストールがうまくいかない時

ソケットの接続で失敗しているなどのエラーメッセージが出た場合は
ラズパイのファームウェア?のアップデートをしたり、
$ sudo rpi-update

ソケットの確認をしてみたり
$ sudo systemctl status snap.lxd.daemon
$ sudo systemctl status snap.lxd.daemon.unix.socket

$ sudo systemctl start snap.lxd.daemon.unix.socket

LXDの初期設定、確認

$ sudo gpasswd -a pi lxd # piユーザをlxdグループに追加

$ lxd init
$ lxc profile show default

$ lxc profile list        # プロファイルの設定確認
$ lxc network list     # ネットワークの設定確認
$ lxc remote list       # コンテナのテンプレートイメージが置いてあるリモートサーバの一覧

$ lxc image list images:             # テンプレートイメージの一覧
$ lxc image list images:ubuntu  # ubuntuをキーワードにテンプレートイメージを検索

コンテナの作成

(Ex. Ubuntu20.04を作成する場合)
$ lxc launch images:ubuntu/20.04 u1-ubuntu20
$ lxc list # コンテナを確認

作成したコンテナの確認

$ lxc info u1-ubuntu20
$ lxc config show u1-ubuntu20

コンテナにログイン

$ lxc exec u1-ubuntu20 /bin/bash

コンテナの停止

$ lxc stop u1-ubuntu20
$ lxc stop u1-ubuntu20 --force  # 何らかの理由で強制的に停止したい時

コンテナの削除

$ lxc delete u1-ubuntu20 
以上になります

鹿児島県の出水市という所に住んでいまして、インターネット周辺で色々活動して行きたいと思ってるところです。 Webサイト作ったり、サーバ設定したり、プログラムしたりしている、釣りと木工好きなMacユーザです。 今はデータサイエンスに興味を持って競馬AI予想を頑張ってます。

1件のコメント

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

コメントする

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください