仮想マシンのように使えるコンテナ
2022年09月20日 火曜日
CONTENTS
こんにちは、九州支社技術部(九州・中四国事業部)所属のy-morimotoです。
コンテナ使いたいけど、今までの構築手順がそのまま使えないので、いまいち導入できない。
そんなあなたにお勧めのコンテナ「仮想マシンのように使えるコンテナ」が実はあるんです。
それは「Linux Containers (LXC)」です。
1.LXCとは
Docker が アプリケーションコンテナ化 だとしたら、LXC は OSコンテナ化 といったイメージになります。
(Kernelプロセス部分は共用で独立していないので、実際はOS丸ごとでは無いのですが)
OS丸ごと風なので、使用感が仮想マシンに近くなるというわけです。
ただ、コンテナの強力な部分はしっかりと残っています。
2.リソースの消費が少ない
Kernelプロセス部分は共用なので、仮想マシンに比べてLXCは起動直後のCPU/MEM消費はかなり少なく、ほぼアプリケーションプロセス分だけで済みます。
また、DISK消費もベースOSデータを共用して、実使用部分だけの差分消費なので、大量に立ててもかなり少ないです。
ちなみに、LXCの起動については、OSまるごと風という事で複数プロセスなので、Dockerコンテナに比べるとどうしても時間がかかりますが、それでも十数秒程度です。
3.ネットワークの構成
LXCでは仮想NICで物理ネットワークに直接ブリッジ接続する構成になる点も、コンテナネットワーク独特の知識が不要になるので、嬉しいポイントかもしれません。
ただ、Dockerのコンテナネットワークは、コンテナを動かしても実ネットワークに影響が無いという点で、使ってみると便利に感じる良い実装ではあります。
4.環境の準備は?
各Linux OSのパッケージマネージャから、大体サクッとインストールできます。
ただ、新規に環境を準備できるのであれば、GUIで直感的にLXCを利用管理できる「Proxmox VE」をオススメします。
これを使う事で、LXCの事を何も知らなくても、簡単に設定して起動できます。
しかも、GUIは日本語対応です。
5.LXCの注意点
そんなワクワクしてくるLXCですが、一応注意事項も・・・。
まず、全機能が完全に使えるわけではありません。
Dockerコンテナでやる程度の内容で、単純にアプリケーションを動かすだけならほとんど大丈夫ですが、OS丸ごと風だとやりたくなってしまうアレコレで結構ハマりました。
例えばDockerコンテナでは普通やらない「NFSマウントする」「Dockerを動す」といった事は設定が必要です。
(ほかにも色々あると予想されますが、都度調べて対応するしかないと思います)
ただ、Proxmox VEでは、このあたりはオプション設定で簡単に解決できました。
(オプションで「Docker->ネスト」「NFSマウント->NFS」に、チェック入れたら設定完了です)
6.といったところで
Proxmox VEからであれば、利用開始の敷居はこの上なく低いので、お手持ちの仮想基盤上でネスト構成とかで構築して、是非一度お試しください。
十数秒で起動できて使い捨て出来るOS丸ごと風環境は、一度使うとかなりハマってしまう便利さです。