古い中古PCをLinuxコンテナ(LXD)マシンとして構築してみた

中古で購入したDELLのOptiplex 790 SFFにUbuntuとLXDをインストールし、Linuxコンテナマシンを構築しました。

構築理由はLinuxサーバの動作テストおよび、LPICなどの学習、新しいディストリビューションの探究用に軽量な仮想環境が欲しかったためです。コンテナはKVMのような仮想マシン(VM)よりも軽量であるため、動かせるOSはLinux(同じカーネルで動くOS)限定とはなりますが、コンテナは使い勝手がいいですから。

LXDマシンのスペック

マシンのスペックは以下です。

CPU第2世代インテル Core i5-2400S プロセッサー
チップセットインテル Q65 Express チップセット
ビデオインテル HDグラフィックス2000(内蔵)
メモリデュアルチャネル1333MHz DDR3 SDRAM 8GB
光学ドライブDVDスーパーマルチ、DVD-ROM
ストレージADATA SU650 (120GB) ※換装

ストレージは元々付いていた500GBのHDDを120GBのSSD(ADATA SU650)に換装済みとなります。ちなみに、Ubuntu付属のディスクツールはモデル名や温度、健康状態も表示されて意外に高機能です。

メモリは中古のせいか、2GBx2、4GBx1のおかしな構成ですが、そのせいでデュアルチャンネル動作にはなっていません。

ただメモリアクセスのパフォーマンスを要求されるようなゲームをするわけではないので実害はないと思われます。

Ubuntuのインストール

Ubuntuは現在の最新バージョンである20のISOイメージをDVDに焼いてインストールしました。 また、インストール後、apt updateコマンドで最新パッケージにアップデートしています。

LXDのインストール

LXDは推奨されているsnap版ではなく、apt版をインストールしました。

$ sudo apt install lxd

LXDのインストール後、lxd initコマンドで初期設定を実施します。殆どデフォルトで進めていますがIPv6のみnoneにしています。

$ sudo lxd init

LXDのインストールまでは特に考えることもなくさくっと進みます。

LXDのGUI管理ツールのインストール

次に、LXDのGUI管理ツールである、LXDUIをインストールします。 こちらもGitHubのページにインストール手順が丁寧に記載されているので、そのまま実行すれば難なくインストールできます。 (英語のページですが特に難しいことは書いていません)

ちなみに「virtual environment」の作成は必要がないためスキップしました。 また、LXDUIはPythonで作成されていますが、インストールは2通りあり、今回はpip3でのインストールを選択しました。

参考pipはPythonパッケージ管理ツールで、pip3はPython3用ののpipコマンドです。

GUIで手軽にコンテナの作成ができる

LXDで必要となる殆どの操作はこのLXDUIで実行できます。実際にコンテナを使用する際は、主要な操作はほぼすべてGUI上で実施できるのが理想です。そのためここからはLXDUIのみでLinuxコンテナの操作を行っていきます。

Linuxコンテナの作成には大きく分けて、イメージのダウンロードとコンテナの構築の2段階があります。 イメージのダウンロードはLXDUIの左メニュー内の [Images] でリモートサーバを選択し、必要なLinuxディストリビューション、バージョン、アーキテクチャのイメージを探して選択し、[Download] ボタンよりダウンロードします。

イメージのダウンロード後、[Images] の [Local] タブで、そのイメージを選択して [Launch Container(s)] ボタンでコンテナを作成します。

コンテナが作成されれば、[Containers] 内に一覧表示されます。

コンテナの開始や停止など、各コンテナに対する操作は、[Containers] 内で対象コンテナのリンクをクリックして行えます。

作成したコンテナにはLXDUI上の [Terminal] ボタンからターミナルでログインすることが可能です。

SSHでコンテナに接続

もちろんSSHでコンテナに接続することも可能です。その場合は、SSHでホストであるUbuntuに接続した上で、以下のコマンドで対象のコンテナに接続します。

lxc exec コンテナ名 -- シェル

例)bashシェルでcentos7に接続

$ lxc exec centos7 -- bash

Note先にホストのUbuntus側でSSH接続が行えるように構成しておく必要があります。SSHはsudo apt install openssh-serverでインストールが行えます。

ポートマッピングで他のPCからのコンテナへのアクセスも簡単

ネットワークは初期設定ではコンテナンのホストがNATとなり、各コンテナにIPアドレスを割り振る形になります。 そのため、そのままでは他のPCから直接コンテナにアクセスすることができません。 コンテナ上のWebページや、データベース等に他のPCから接続したい場合は、ポートマッピングを行います。

参考ポートマッピングは「ホストへのxxポートへの接続要求があれば、xxxxxコンテナのxxポートに転送する」というようにポートごとに転送先のコンテナとポートを指定できる機能です。

例えば、ホストへのtcp 80番ポートへの接続をcentos7のtcp 80番に割り当てる場合はコンテナの [Netowrking] タブの [Port Mapping] 項目から以下のように設定を追加します。

以上、古い中古PCをLinuxコンテナ(LXD)マシンとして構築してみたでした。

今回使用したもの

換装したSSDは以下です。コストパフォーマンスは抜群です。

公開日:2021年05月08日

記事 > コンテナ > 古い中古PCをLinuxコンテナ(LXD)マシンとして構築してみた

他の記事も見る

このページのトップに戻る