LXCで学ぶコンテナ入門 -軽量仮想化環境を実現する技術

第55回コンテナと仮想マシンのマネージャ"Incus"

この連載は、⁠LXCで学ぶコンテナ入門」というタイトルです。序盤を除くと、LXC自身を紹介するというよりは、Linuxカーネルに実装されているコンテナ関連の機能を紹介をすることが多く、カーネルの機能を紹介する際に、実行例でLXCを使ってきました。その後、LXCを開発しているLinuxContainersプロジェクトからは、コンテナマネージャとしてLXDの開発がスタートし、この連載でもLXDを使ってカーネルの機能を説明することがありました。

LXDは、コンテナと仮想マシンの両方を管理できるマネージャソフトウェアです。LXCもLXDも、OS環境を起動させるシステムコンテナを扱うことを主眼に開発されています。

gihyo.jpでは、LXDについては本連載ではなく、Ubuntu Weekly Recipeで柴田充也さんが頻繁に取り上げており、基本的な操作から応用まで幅広い話題が紹介されています。私もその記事を見てLXDの機能や操作を学んでいました。

今回は、筆者が記事として書けるカーネルの機能を出し尽くしてしまったので、久々にこの連載でもコンテナマネージャそのものを取り上げてみようと思いました。2023年10月に、LXCを開発しているLinuxContainersプロジェクトから、新たにIncusというプロダクトが発表されたためです。

LXC

Incusについてお話する前に、少しLXCについてお話したいと思います。

2023年は、2022年までよりは、この連載記事を書いた回数が多く、たまたまこの連載を目にされた方のX(旧Twitter)でのポストを見かけることが多かったように思います。ありがとうございます。

以前LXCを使われていた方のなつかしいという声があったり、LXCは過去のものとしてとらえているのか、2014年から続いている連載であることを知って納得されていたりするのを見て苦笑いしていました。

LXC自体がそれほど話題にのぼらないからか、いまやコンテナといえばアプリケーションコンテナであることがほとんどであるからか、今LXCというプロダクト名を聞くと、過去のプロダクトと思っている人が多いのかなと想像しています。

しかし、LXCは別に過去のプロダクトというわけではありませんし、開発が止まったプロダクトでもありません。

バージョン0.8より前のLXCは、コマンドの寄せ集めという感じがしました。しかし、0.8のころにCanonical所属エンジニアが開発の主導権を握った後は、Linuxカーネルに備わっているコンテナ関連機能をユーザースペースから扱うためのライブラリとしての開発がすすみ、コマンドはライブラリ付属のツールという位置づけになっています。

そして、そのライブラリを使った、コンテナを管理するマネージャとして開発が始まったプロダクトがLXDでした。LXDや、今回紹介するIncusがコンテナを操作する場合は、LXCが提供するライブラリを使ってコンテナを操作しています。

LXD以降、LXCは、直接コンテナを操作するツールから、裏方的なライブラリとして利用されることが多くなったからか、表立って話題になりづらい存在になったため、あまり話題にのぼらなくなったのかなと思います。

LXCは、筆者が初めて本格的にOSS開発に参加したプロダクトで、特別思い入れが強いので、LXCはまだまだ現役ですと声を大にして主張しておきます(笑⁠⁠。

Incus

Incusは、LinuxContainersプロジェクトで開発されている、コンテナと仮想マシンを同じ操作感で管理できるマネージャです。プロジェクトの新規プロダクトというわけではなく、それまで同じプロジェクトで開発されていたLXDからフォークされました。

2023年7月に、LXDはLinuxContainersプロジェクトのプロダクトから、Canonicalが直接管理するプロダクトになりましたアナウンス⁠。アナウンスのほかに、LXDの開発を主導してきたStéphane Graber氏のブログにも、そのあたりのいきさつが書かれています。

LXDがCanonicalに移動した直後、Aleksa Sarai氏が、LXDを個人でIncusとしてフォークしました。8月に、プロジェクトからアナウンスがあり、このフォークがそのままプロジェクト傘下に入ることが発表されました。gihyo.jpのLinux Daily Topicsでも記事になっています。アナウンスにあるとおり、Incusは、コミュニティ主導で開発する、LXD代替のプロダクトとなることを目標としてプロジェクト傘下に入りました。

このようないきさつで生まれたIncusですので、現時点では機能も操作方法もLXDとほぼ同じです。Canonical主導での開発でなくなったため、UbuntuやCanonical特有の機能が削除されたり、名前が変わったことに伴う変更点はありますが、それ以外はほぼ同じです。またフォーク後にLXDに実装された機能についても、Incus側でフォローして同じ機能が追加されています。

したがって、Incusを使うにあたっては、世の中にあるLXDに関する記事も役に立つでしょう。

また、Incusを含めたプロジェクトのページのほとんどは、私が日本語へ翻訳しており、公式情報を取得するハードルは高くないかと思います。また、Incusのドキュメント@hnakamur2さんにより翻訳されていますので、Incusを深く使っていく際に役立つでしょう。

オンラインでお試し

Incusにちょっと興味があるけど、自分のPCやホストにインストールすることはためらってしまうなあ、という方には、ウェブブラウザからアクセスして操作できるオンライン試用環境が、プロジェクトから提供されています。この環境では、30分間と使用時間は制限されていますが、最新のIncusを体験できます。

この環境では、Incusを試せるだけでなく、チュートリアルも付属していますので、順を追ってIncusを操作しながら、Incusが体験できます。このお試しサイトのチュートリアルも日本語訳されていますので、さらに気軽に試せるのではないでしょうか。

図1 Incusのオンライン試用サイト
Incusのオンライン試用サイト

試用サイトを開くと、図1のようにサービス利用規約が表示されます。同意のためのチェックボックスがありますので、よく読んだあとチェックを入れ、"Start"ボタンを押してください。

最初のページは、環境が説明されているだけなので、"Next"ボタンを押して次へ進むと、図2のように実際にIncusを操作するための説明があります。チュートリアルのコマンド部分をマウスでクリックすると、下部にあるターミナルにそのコマンドが入力されますので、説明を読みながら操作をしていきましょう。

図2 オンライン試用サイトの操作の様子
Incusの操作を体験

ひととおり試してみて、Incusにさらに興味を持ったら、ぜひご自身のホストにインストールして、さらに色々な機能を体験してみてください。

Incusのインストール

今、あなたはお試しサイトでIncusを体験してみて、Incusがインストールしたくなったところですね? (ˆoˆ)

それでは、Incusをインストールしてみましょう。

Incusは、現時点ではLXDと同じく、Ubuntuで動かすのが簡単で問題が起こりにくいでしょう。他にDebian、Gentoo、Fedora、Arch Linuxでパッケージが利用できます。筆者がメンテナをつとめているPlamo Linuxでも、筆者がパッケージを作成しましたので利用できます。

Ubuntu 20.04LTSと22.04LTS、Debian 11と12用のパッケージはZabblyからインストールできます。Zabblyは、IncusのメンテナであるStéphane Graber氏による運営です。

インストール方法を、簡単に紹介しておきましょう。同じ内容が、Zabblyのincusリポジトリにも記載されています。ここからの例はUbuntu 22.04LTSでの実行例です。

最初に、Zabblyの公開鍵を確認し、登録します。

$ curl -fsSL https://pkgs.zabbly.com/key.asc | gpg --show-keys --fingerprint | grep -q '4EFC 5906 96CB 15B8 7C73  A3AD 82CC 8797 C838 DCFD'
$ echo $?
0
$ sudo curl -fsSL https://pkgs.zabbly.com/key.asc -o /etc/apt/keyrings/zabbly.asc

そして、パッケージリポジトリとしてZabblyのincus Stableリポジトリを追加します。

sh -c 'cat <<EOF > /etc/apt/sources.list.d/zabbly-incus-stable.sources
Enabled: yes
Types: deb
URIs: https://pkgs.zabbly.com/incus/stable
Suites: $(. /etc/os-release && echo ${VERSION_CODENAME})
Components: main
Architectures: $(dpkg --print-architecture)
Signed-By: /etc/apt/keyrings/zabbly.asc

EOF'

あとは、インストールするだけです。

$ sudo apt update
$ sudo apt install incus (incusのインストール)
$ systemctl status incus (Incusの稼働状況の確認)
○ incus.service - Incus - Daemon
     Loaded: loaded (/lib/systemd/system/incus.service; indirect; vendor preset>
     Active: inactive (dead)
TriggeredBy: ● incus.socket

もし、Ubuntuのサーバ版に導入した場合、念のためにLXDを止めておくと良いでしょう。

$ sudo snap stop lxd

Incusの初期設定

Incusを使ってコンテナやVMを起動する前に、Incus自身を設定しておく必要があります。

Incusを初期設定する前に、ご自身のユーザーをincus-adminグループに登録しておくと、root権限で管理コマンドを実行する必要がなくなります。

$ sudo usermod -a -G incus-admin gihyo (gihyoユーザーをincus-adminグループに追加)
$ id gihyo
uid=1002(gihyo) gid=1002(gihyo) groups=1002(gihyo),120(incus-admin)
(incus-adminグループに追加された)

Incusを操作するにはincusコマンドを使用します。Incusを管理する場合、incus adminコマンドを実行します。

なお、LXDから移行したい場合は、ここで行う初期化は不要です。あとで説明する移行作業を行ってください。

ここでは、最小セットアップでセットアップしてみます。本格的にセットアップしたい場合は、公式ドキュメント日本語訳をご覧ください。

$ incus admin init --minimal

設定ができましたので、コンテナを作成してみましょう。

$ incus launch images:alpine/edge c1 (コンテナの作成と起動)
Creating c1
Starting c1
$ incus list (コンテナの確認)
+------+---------+---------------------+-----------------------------------------------+-----------+-----------+
| NAME |  STATE  |        IPV4         |                     IPV6                      |   TYPE    | SNAPSHOTS |
+------+---------+---------------------+-----------------------------------------------+-----------+-----------+
| c1   | RUNNING | 10.31.111.15 (eth0) | fd42:3296:4f20:66f2:216:3eff:fe68:1232 (eth0) | CONTAINER | 0         |
+------+---------+---------------------+-----------------------------------------------+-----------+-----------+
$ incus exec c1 -- cat /etc/os-release (コンテナ内の/os-releaseファイルを確認)
NAME="Alpine Linux"
ID=alpine
VERSION_ID=3.18.5
PRETTY_NAME="Alpine Linux v3.18"
HOME_URL="https://alpinelinux.org/"
BUG_REPORT_URL="https://gitlab.alpinelinux.org/alpine/aports/-/issues"

このようにコンテナが起動しました。

この先は、試用サイトのチュートリアルや、日本語ドキュメントを参考に色々な機能を試していってください。

Incusのイメージサーバ

Incusは、Dockerなどと同じくイメージベースで、イメージサーバからイメージを取得してコンテナやVMを起動します。

インストール直後は、インストールしたホスト自身以外に、リモートのサーバがひとつだけ登録されています。この登録されているサーバが、imagesという名前がつけられたプロジェクト公式のイメージサーバで、様々なディストリビューションのコンテナやVMのイメージが登録されています。

$ incus remote list (登録されているリモートサーバのリストを取得)
+-----------------+------------------------------------+---------------+-------------+--------+--------+--------+
|      NAME       |                URL                 |   PROTOCOL    |  AUTH TYPE  | PUBLIC | STATIC | GLOBAL |
+-----------------+------------------------------------+---------------+-------------+--------+--------+--------+
| images          | https://images.linuxcontainers.org | simplestreams | none        | YES    | NO     | NO     |
+-----------------+------------------------------------+---------------+-------------+--------+--------+--------+
| local (current) | unix://                            | incus         | file access | NO     | YES    | NO     |
+-----------------+------------------------------------+---------------+-------------+--------+--------+--------+

公式のイメージサーバに登録されているイメージは、次のようにして取得できます。また、直接ブラウザでhttp://images.linuxcontainers.org/へアクセスしても一覧を見れます。

$ incus image list images:
+------------------------------------------+--------------+--------+--------------------------------------------+--------------+-----------------+------------+-------------------------------+
|                  ALIAS                   | FINGERPRINT  | PUBLIC |                DESCRIPTION                 | ARCHITECTURE |      TYPE       |    SIZE    |          UPLOAD DATE          |
+------------------------------------------+--------------+--------+--------------------------------------------+--------------+-----------------+------------+-------------------------------+
| almalinux/8 (3 more)                     | 604c85cafc02 | yes    | Almalinux 8 amd64 (20240102_23:08)         | x86_64       | CONTAINER       | 128.55MiB  | Jan 2, 2024 at 12:00am (UTC)  |
+------------------------------------------+--------------+--------+--------------------------------------------+--------------+-----------------+------------+-------------------------------+
| almalinux/8 (3 more)                     | c14b8e0d9491 | yes    | Almalinux 8 amd64 (20240102_23:08)         | x86_64       | VIRTUAL-MACHINE | 749.71MiB  | Jan 2, 2024 at 12:00am (UTC)  |
+------------------------------------------+--------------+--------+--------------------------------------------+--------------+-----------------+------------+-------------------------------+
  :(略)

ブラウザでご覧いただくとわかるように、このサーバにはLXC用、Incus用それぞれのコンテナ用、VM用のイメージが登録されています(VM用はディストリビューションによる⁠⁠。

イメージは、同じプロジェクトのdistrobuilderというイメージ作成ツールを使って毎日作成されています。また、作成状況は公開されています。


さて、ここまでは初めてIncusをインストールして使ってみようという方にむけた案内でした。ここからは、これまでLXDを使ってきており、これからIncusに移行したいという方のために、移行方法やLXDから変わった点を紹介します。

LXDからの移行

すでにLXDを使っており、Incusへ移行したい場合は、簡単に移行できるコマンドが付属しています。lxd-to-incusコマンドです。initとしてsystemdとOpenRCを使っているシステムでの移行がサポートされていますので、ほとんどの環境で移行ができるはずです。

lxd-to-incusコマンドは、Incus 0.4時点ではLXD 4.0〜5.19をサポートしています。

次のように、LXD上でコンテナが3台起動している環境があるとします。

$ lxc version
Client version: 5.0.2
Server version: 5.0.2
$ lxc list
+--------+---------+--------------------+-----------------------------------------------+-----------+-----------+
|  NAME  |  STATE  |        IPV4        |                     IPV6                      |   TYPE    | SNAPSHOTS |
+--------+---------+--------------------+-----------------------------------------------+-----------+-----------+
| alpine | RUNNING | 10.51.9.90 (eth0)  | fd42:3b68:50f9:9a19:216:3eff:fe12:b4ff (eth0) | CONTAINER | 0         |
+--------+---------+--------------------+-----------------------------------------------+-----------+-----------+
| plamo  | RUNNING | 10.51.9.160 (eth0) | fd42:3b68:50f9:9a19:216:3eff:fe6f:ebd1 (eth0) | CONTAINER | 0         |
+--------+---------+--------------------+-----------------------------------------------+-----------+-----------+
| ubuntu | RUNNING | 10.51.9.108 (eth0) | fd42:3b68:50f9:9a19:216:3eff:fecc:e4cc (eth0) | CONTAINER | 0         |
+--------+---------+--------------------+-----------------------------------------------+-----------+-----------+

この状態で、lxd-to-incusコマンドを実行します。

$ sudo lxd-to-incus
  :(略)
The migration is now ready to proceed.
At this point, the source server and all its instances will be stopped.
Instances will come back online once the migration is complete.

Proceed with the migration? [default=no]: yes
  :(略)
Uninstall the LXD package? [default=no]: 

途中で、マイグレーションを進めるかどうかの確認と、LXDを削除するかどうかを確認される以外は、自動で処理が進みます。

コマンド実行が終了したあと、移行が済んでいるかを確認してみましょう。

$ incus list
+--------+---------+--------------------+-----------------------------------------------+-----------+-----------+
|  NAME  |  STATE  |        IPV4        |                     IPV6                      |   TYPE    | SNAPSHOTS |
+--------+---------+--------------------+-----------------------------------------------+-----------+-----------+
| alpine | RUNNING | 10.51.9.90 (eth0)  | fd42:3b68:50f9:9a19:216:3eff:fe12:b4ff (eth0) | CONTAINER | 0         |
+--------+---------+--------------------+-----------------------------------------------+-----------+-----------+
| plamo  | RUNNING | 10.51.9.160 (eth0) | fd42:3b68:50f9:9a19:216:3eff:fe6f:ebd1 (eth0) | CONTAINER | 0         |
+--------+---------+--------------------+-----------------------------------------------+-----------+-----------+
| ubuntu | RUNNING | 10.51.9.108 (eth0) | fd42:3b68:50f9:9a19:216:3eff:fecc:e4cc (eth0) | CONTAINER | 0         |
+--------+---------+--------------------+-----------------------------------------------+-----------+-----------+

さきほどまでLXDで動いていたコンテナが、Incus上で動いていることがわかります。

lxd-to-incusコマンドは、コンテナを移行するだけでなく、LXDサーバの設定も読み取り、きちんとIncus側に設定してくれます。またストレージプールは、LXDと同じファイルシステム、同じ設定でIncus側に設定されます。

lxd-to-incusは、Incusがバージョンアップされるとともに機能が追加されています。0.2で、クラスター環境の移行ができるようになり、0.3でも色々な改良が加えられています。リリースアナウンスを確認して、どのような環境で移行ができるのかを確認しましょう。

LXDからの変更点

IncusはLXDからのフォークですので、基本的には、フォーク以前にLXDが持っていた機能は使えます。しかし、新たなプロダクトとして開発がスタートしたわけですから、LXDでは後方互換性を確保するために維持されていたものの、不要と判断した機能を削除するには良いタイミングでした。そこで、LXDが持っている機能から削除された機能があります。

その他、変更された機能や、変更されたコマンドラインツールがありますので、主な変更点を紹介します。

APIの変更

Incusは、インスタンスを操作するためにREST APIが使えます。

LXDが仮想マシンをサポートするようになったときに、コンテナとVMの両方を操作する共通のエンドポイントとして/1.0/instancesを使うようになりました。しかし、それまでの古いクライアントのために、コンテナ操作用に/1.0/containersエンドポイントが残されていました。

この、/1.0/containersエンドポイントが廃止されました。また、/1.0/containersとの対比で、仮想マシン用に/1.0/virtual-machinesエンドポイントが準備されていました。このエンドポイントも同時に削除されました。

Incusへのフォークとともに、このような古いクライアントに対して互換性を維持するために残されていた機能が削除されました。

また、ゲストのコンテナや仮想マシンからLXDにアクセスするために/dev/lxd/sockというソケットが公開されていました。この/dev/lxdは、Incusでは/dev/incusに変更されました。互換性維持のために/dev/lxdも残されています。

incus snapshotコマンド

LXDには、lxc snapshotというコマンドがありました。このコマンドは、スナップショットの作成のみができました。

スナップショットをリネームしたり削除したりする場合は、lxc renameコマンドやlxc deleteコマンドを使う必要がありました。

少し整合性が取れない感じでしたので、incus snapshotコマンドにサブコマンドが追加され、incus snapshotコマンドですべてのスナップショット操作を行うように変更されました。

$ incus snapshot --help
説明:
  Manage instance snapshots

Usage:
  incus snapshot [flags]
  incus snapshot [command]

Available Commands:
  create      Create instance snapshot
  delete      Delete instance snapshots
  list        List instance snapshots
  rename      Rename instance snapshots
  restore     Restore instance snapshots

  :(略)

incus admin

LXDでは、LXDデーモン自身を設定するにはlxd initコマンドを使用しました。しかし、Incusでは、すべてincusコマンドを使用するようになり、Incusデーモン自身を設定するにはincus adminコマンドを使います。

先に紹介した、初期設定するためのincus admin initコマンド以外は、クラスターを管理するためのコマンドや、デーモンを停止したり起動待ちを行うコマンドがあります。

ちなみにIncusデーモンはincusdというファイルです。

Cowsql

Incusで使用するデータベースが変更されました。

LXDではデータベースとして、クラスター環境で動作する、SQLiteをベースとした高可用データベースであるDqliteを使用していました。

Incusがフォークされたあと、Dqliteのオリジナル作者がDqliteをCowsqlとしてフォークし、IncusはCowsqlを使用するようになりました。DqliteとCowsqlは、ほぼ互換性があり、LXDのデータは簡単にCowsqlに移行できるようです。

Incusを使う上では、この変更を意識することはないはずです。

パスワード認証の廃止

LXD開発当初から、リモートのLXDサーバに接続する際にパスワード認証が使えました。

その後、よりセキュアな認証として、証明書を使った方式や、時間制限があるトークンを使用した方式が追加されました。

パスワード認証は十分にセキュアな方式とは言えませんので、Incusでは廃止されました。

認証についての詳細は公式ドキュメントのリモートAPI認証セクションをご覧ください。

shiftfsサポートの削除

shiftfsは、この連載の第47回で、非特権でコンテナイメージをマウントするための機能として紹介しています。

ユーザ名前空間を使って一般ユーザー権限で起動するコンテナでは、マウントする時点で、コンテナイメージ内のファイルやディレクトリの所有権を、コンテナを起動させようとしているユーザのUID/GIDに一致させる処理が必要です。従来はchown(2)システムコールを使用して、所有権を変更していました。イメージ内のすべての所有権を変更する処理はコストが高い処理ですので、この問題を解決するために2017年ごろにshiftfsというファイルシステムが提案されました。

その後Ubuntuでは、shiftfsのパッチが適用された状態で、カーネルがリリースされるようになりました。LXDでは、shiftfsが使える場合は、コンテナ起動時にその機能を使ってコンテナを起動させていました。

しかし、shiftfsには色々と問題があり、結局Linuxカーネルに機能が導入されることはありませんでした。しかし、必要性は変わりませんので、その後も機能に対する議論や実装は続きました。

その後5.12カーネルで、同じ機能を持つID mappedマウントという機能が導入されました。この機能については、第50回第51回で紹介しました。

LXDでも、ID mappedマウントをサポートしたカーネル環境では、ID mappedマウントを使うように実装されました。したがって、IncusでもID mappedマウントが使えます。このため、問題があり、使用できる環境が限られるshiftfsのサポートは削除されました。

その他Canonical/Ubuntu機能の削除

LXDは、Canonical社のエコシステムを確立するために、Ubuntu独自の機能や、Canonical社のソリューションをサポートした機能を持っていました。

Incusでは、UbuntuやCanonical社が提供する、Linuxで標準的ではないソリューションに依存する機能は削除されました。

そもそも、これらの機能は、カーネルにマージされておらず、独自パッチを使って実現している機能であったり、十分にメンテナンスされていないためにあまり使われていない機能であったり、実現できる機能に制約があったりしました。代わりとなる機能がすでに実装済みだったりしますので、問題となることは少ないでしょう。

これらの機能を使っている場合は、Incusへ移行せずに、引き続きLXDを使う必要があります。

LXDとの決別

この記事を、2023年末から少しずつ書き進めている間に、大きなニュースが飛び込んできました。

LXD 5.20がリリースされる前に、LXDで重要な変更が行われました。

これまで、LXDはApache 2.0ライセンスで提供されていました。しかし、LXD 5.20がリリースされる前にAGPLv3ライセンスへ変更されました[1]。さらに、LXDへのコントリビューション(貢献)には、Canonical コントリビューターライセンス契約(CLA)への署名が必要になりました。

Incusは、Apache 2.0ライセンスのまま変更はありません。そして、Incusへのコントリビューションでは、Canonical社と契約した個人や組織であることを要求しません。

筆者はライセンスについて詳しくはありませんので、この変更について詳細に説明できません。LinuxContainersプロジェクトでは次のような判断をしています。

  • LXDの変更はIncusにインポートできない
  • Incusの変更はLXDにインポートできない

Incus 0.1〜0.3の間は、LXDの進化を取り込んでバージョンアップしてきましたが、今後はLXDの変更をIncusにインポートできなくなりました。Incusで行う変更ではCanonical社と契約した個人や組織であることを要求していませんので、Incusで行われた変更をLXDにインポートできません。

つまり今後は、LXDとIncusそれぞれが別々に開発していくことになるでしょう。

この件に関連して、LXDを使っているユーザは、今後徐々にLinuxContainersプロジェクトが運営しているイメージサーバimagesにアクセスできなくなります。

プロジェクトが運営しているイメージサーバからイメージを取得してコンテナを運用しているユーザは、Incusへの移行を急ぐ必要があるでしょう。

ちなみにLXDでは、プロジェクトが運営しているイメージサーバ以外に、UbuntuのイメージサーバからUbuntuイメージを取得して使えましたので、そちらのみを使用しているユーザには影響はありません。

この件についての詳細は、Incus 0.4のリリースアナウンスや、そこからリンクされている関連サイトをご覧ください。

まとめ

今回は、新たにLinuxContainersプロジェクトに加わったプロダクトである、Incusを紹介しました。

Incusを使う場合、新たにIncusをインストールする場合でもLXDから移行する場合でも、今回説明したとおり、Incusを使いはじめるにはそれほど大きな手間がかからず、簡単に使い始められるでしょう。

現在、コンテナといえば、アプリケーションコンテナが一般的です。しかし、OS環境を作成し、パッケージをインストールして、OS環境内で色々試したいと言ったことは多いでしょう。また、手元で複数のシステムを起動させて、小さなプライベートクラウドのように使いたい場合もあるでしょう。そのような場合に、色々なディストリビューションのイメージを取得して、簡単に起動できるIncusは非常に便利です。さらに、コンテナだけでは評価できないようなことを行いたい場合でも、同じ操作でVMを操作できます。

また、Incusは公式サイトも公式ドキュメントも日本語に翻訳されており、高度な使い方をしたくなった場合でも機能や設定について簡単に調べられます。また、これまでのUbuntu Weekly RecipeのLXDの記事も参考になるはずです。

ぜひ、この記事をきっかけにIncusの世界に飛び込み、Incusを使って、学習や自分がやりたいことを実現する方が増えることを期待しています。

おすすめ記事

記事・ニュース一覧