お金をかけずにサーバーの勉強をしよう

Linuxシステムコンテナ(LXD) 3

2023年10月29日

メニューへ戻る

lXDの WEB-UIを使って作った Linuxシステムコンテナは使いものになるのか。

Linuxシステムコンテナ(LXD) 1」で LXDの WEB-UIを使えるようにし、
Linuxシステムコンテナ(LXD) 2」で家庭内LANの他のノードからアクセスできる場所に Linuxシステムコンテナを作ってみました。

ここではでき上がった Linuxシステムコンテナを使ってみましょう。

前回ここまで来たところからスタートします。
LXD WEB-UI 1

WEB−UI上のターミナルは使い辛くて仕方ないので、やはりクライアントから sshで繋ぎたいです。

ただ、このコンテナのテンプレートの sshdはパスワード認証を無効にしてあるので、まだ公開鍵を登録していない状態では最初のログインができません。

ですので、まずは sshdの設定を変えて、パスワード認証を有効にします。

コンテナの [/etc/ssh/sshd_config]ファイルの以下の箇所を書き換えます。

PasswordAuthentication no
  ↓
PasswordAuthentication yes

設定を有効にするため、sshdを再起動します。

root@Container1:~# systemctl restart sshd

それから一般ユーザーが一人もいませんので、ワタクシ用に [subro]ユーザーを作ります。

root@Container1:~# adduser subro
Adding user `subro' ...
Adding new group `subro' (1001) ...
Adding new user `subro' (1001) with group `subro' ...
The home directory `/home/subro' already exists.  Not copying from `/etc/skel'.
New password: [subro]ユーザーの新規パスワード
Retype new password: パスワードをもう一回
passwd: password updated successfully
Changing the user information for subro
Enter the new value, or press ENTER for the default
        Full Name []:
        Room Number []:
        Work Phone []:
        Home Phone []:
        Other []:
Is the information correct? [Y/n] Y

できました。

[subro]ユーザーが sudoコマンドを使えるようにしておきます。

root@Container1:~# usermod -aG sudo subro

これで OKのはずです。

クライアントの Lubuntu 22.04.3から sshでログインしてみました。

subro@Lubuntu2204:~$ ssh subro@192.168.1.58
subro@192.168.1.58's password: さっき設定した[subro]ユーザーのパスワード
Welcome to Ubuntu 22.04.3 LTS (GNU/Linux 5.15.0-87-generic x86_64)

 * Documentation:  https://help.ubuntu.com
 * Management:     https://landscape.canonical.com
 * Support:        https://ubuntu.com/advantage

  System information as of Sun Oct 29 02:48:47 UTC 2023

  System load:           0.3076171875
  Usage of /home:        unknown
  Memory usage:          1%
  Swap usage:            0%
  Processes:             26
  Users logged in:       0
  IPv4 address for eth0: 192.168.1.58
  IPv6 address for eth0: 2408:82:a8:0:216:3eff:fe65:c2f8

Expanded Security Maintenance for Applications is not enabled.

0 updates can be applied immediately.

Enable ESM Apps to receive additional future security updates.
See https://ubuntu.com/esm or run: sudo pro status


The list of available updates is more than a week old.
To check for new updates run: sudo apt update


The programs included with the Ubuntu system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.

Ubuntu comes with ABSOLUTELY NO WARRANTY, to the extent permitted by
applicable law.

To run a command as administrator (user "root"), use "sudo <command>".
See "man sudo_root" for details.

subro@Container1:~$

問題なくログインできました。
日本語環境にするか…

subro@Container1:~$ sudo localectl set-locale LANG=ja_JP.UTF-8 LANGUAGE="ja_JP:ja"

subro@Container1:~$ sudo timedatectl set-timezone Asia/Tokyo

これで一度コンテナの再起動をします。

WEB-UIの画面にあるクルッと矢印が回ったボタンを押します。
LXD WEB-UI 2

再起動がエラく速いです。
ほぼ即時ですね。
これが仮想マシンとは違う所。

sshのセッションは当然切れますので、入り直して dateコマンドで日付を取ってみました。

subro@Container1:~$ date
2023年 10月 29日 日曜日 11:58:41 JST

このあと nginxを入れるとか、固定IPにするとか、色々書こうと思ったんですが、余り意味が無いので書くのを止めます。

何故かと言うと、仮想マシンの Ubuntu Serverをいじってるのと変わらないからです。


==========
さて、Linuxシステムコンテナを作ってみる話はこれで終わりなんですが、できあがったコンテナは仮想マシンで作った Ubuntu Serverの環境と特に変わりがないように見えます。

ということは、検証環境として複数の Ubuntu Server(その他 Linux OS)を使いたい場合、コンテナとして作った方が起動やらが早くて楽なのかも知れません。

私は今後の検証に Linuxシステムコンテナを使っていくと思います。

当然ホストになってる Ubuntu Server 22.04.3では CPU・メモリ・ストレージをコンテナ分多くしておかねばなりませんけどね。


Ubuntu 22.04ベースの本が少ない…といより linuxの日本語書籍が少な過ぎ…
今度の春には 24.04が出るってのに困ったものです。