Linuxコンテナ仮想化(LXD)は、仮想マシン(KVMなど)に似ていますが、仮想マシンに比べて速度と効率が高く、はるかに軽量です。 Ubuntu、Centos、ArchLinuxなどのOS用のLXDコンテナーは簡単に作成できます。 LXDは同じLinuxカーネルを使用しており、そのようなカーネルの追加のオーバーヘッドを削減します。
この記事では、Ubuntu20.04サーバーでのLXDのインストールと構成のプロセスを示します。また、LXDコンテナを起動する方法と、コンテナ内でコマンドを実行する方法についても説明します。
Ubuntu20.04にLXDをインストールする
Ubuntu 20.04サーバーにLXDをインストールするには、リポジトリのキャッシュを更新し、以下に示すようにaptパッケージマネージャーを使用してインストールします。
$ sudo apt update && sudo apt upgrade -y
以下に示すコマンドを使用してLXDをインストールします。
$ sudo apt install lxd -y
または、スナップコマンドを使用してインストールします。
$ sudo snap install lxd --channel=4.0/stable
ユーザーをlxdグループに追加
現在ログインしているユーザーを追加することをお勧めします。私の場合、ユーザーの名前は「ubuntu」です。これにより、LXCコンテナーの使用と保守が容易になります。目的のために、以下に示すようにコマンドを実行します。
$ sudo adduser ubuntu lxd
ユーザーがlxdグループに追加されているかどうかを確認するには、次のようにコマンドを実行します。
$ id
ストレージバックエンドのzfsをインストールするには
ストレージバックエンドとして、zfsファイルシステムは主にLXDに使用されます。 zfsをインストールするには、以下に示すようにコマンドを実行します。
$ sudo apt update $ sudo apt install zfsutils-linux -y
LXDを構成するには
Ubuntu 20.04サーバーでlxdを構成するには、上記のzfsを使用して以下に示すコマンドを実行します。
$ sudo lxd init
利用可能なLXDコンテナイメージのリストを取得する
組み込みのLXDイメージのリストを確認し、以下のコマンドを実行するだけです
$ lxc image list images: $ lxc image list images: | grep -i centos
たとえば、このコマンドの出力を確認してみましょう。
$ lxc image list images: | grep -i ubuntu
LXDコンテナを作成する
LXDコンテナーは、lxcコマンドを使用して作成されます。これを行うには、イメージ名またはリモートリストからlxcコマンドを使用します。以下に示すコマンドでリモートリストを確認してください。
$ lxc remote list
remoteをubuntuとして使用してlxdコンテナを作成するには、次のようにコマンドを実行します。
構文:
$ lxc launch ubuntu:20.04 container_name
ここでは、以下のコマンドを使用して、オペレーティングシステム「ubuntu20.04」でコンテナ名「test」のコンテナを作成しています。
$ lxc launch ubuntu:20.04 test
コンテナイメージがダウンロードされ、イメージのキャッシュが保存されるため、必要に応じて同じイメージが再度使用されます。上記のコマンドが正常に実行されると、次のような出力が表示されます。
出力 :
名前、状態、ipv4およびipv6アドレス、タイプ、スナップショットなどのコンテナーの詳細を確認するには、以下に示すコマンドを実行します。
$ lxc ls
コンテナ内でコマンドを実行するには
コンテナが正常に作成されると、その中でコマンドを実行できるようになります。単純なlxcコマンドを使用するか、bashと入力することで実行できます。詳細については、以下に示すコマンドを確認してください。
構文 :
$ lxc exec container_name —コマンド
例:
$ lxc exec test apt update
bashシェルの場合は、次のようにコマンドを実行します。
構文:
$ lxc exec container_name bash
例:
$ lxc exec test bash
開始するには、LXDコンテナを停止して削除します
LXDコンテナを起動するには、次のようにコマンドを実行します。
$ lxc start container_name
例:
$ lxc start test
LXDコンテナを停止するには、次のようにコマンドを実行します。
$ lxc stop container_name
例:
$ lxc stop test
LXDコンテナを削除するには、次のようにコマンドを実行します。
$ lxc delete container_name
例:
$ lxc delete test
結論
この記事では、LXDをインストールして構成する方法を学習しました。また、lxdコンテナーを作成し、コンテナー内のbashシェルを介してコマンドを実行するプロセスも示しました。