Incusを使う最初のステップ¶
このチュートリアルは Incus を使う最初のステップのガイドです。 Incus のインストールと初期化、インスタンスの作成と設定、インスタンスの操作、スナップショットの作成を取り扱います。
これらのステップを経験した後、どのように Incus を使うかのアイデアがあれば、より高度な使用例について探索を開始できることでしょう!
Incusのインストールと初期化¶
Incus パッケージのインストール
Incus はほとんどのよくある Linux ディストリビューションで利用できます。
ディストリビューションごとの詳細な手順はIncusをインストールするにはを参照してください。
あなたのユーザーに Incus を制御する許可を与えます。
上記のパッケージに含まれる Incus へのアクセスは 2 つのグループで制御されます。
incus
は基本的なユーザーアクセスを許可します。設定はできずすべてのアクションはユーザーごとのプロジェクトに限定されます。incus-admin
は Incus の完全なコントロールを許可します。
すべてのコマンドを root で実行することなく Incus を制御するには、あなた自身を
incus-admin
グループに追加してください。sudo adduser YOUR-USERNAME incus-admin newgrp incus-admin
newgrp
の手順はあなたの端末セッションを再起動しないままで Incus を利用する場合に必要です(訳注:端末を起動し直す場合は不要です)。Incus の初期化
注釈
既存の LXD 環境からマイグレートする場合、このステップはスキップして代わりにLXD からの移行を参照してください。
Incus はネットワークとストレージでいくつかの初期設定が必要です。これは以下のコマンドでインタラクティブにできます:
incus admin init
あるいは以下のコマンドで基本的な設定を自動で設定できます:
incus admin init --minimal
初期化オプションをチューニングしたい場合、詳細はIncusを初期化するにはを参照してください。
インスタンスの起動と調査¶
Incus はイメージベースです。そしてさまざまなイメージサーバーからイメージをロードできます。 このチュートリアルでは、公式イメージサーバイメージサーバーを使います。
このイメージサーバーで利用可能なすべてのイメージを一覧表示するには以下のようにします。
incus image list images:
Incus が使用するイメージについてのより詳細情報はImagesを参照してください。
では、いくつかインスタンスを起動してみましょう。 コンテナまたは仮想マシンのことをインスタンスと呼びます。 2 つのインスタンスタイプの違いについての情報はコンテナと仮想マシンについてを参照してください。
インスタンスを管理するには、Incus のコマンドラインクライアントincus
を使います。
Ubuntu 22.04 イメージを使って
first
という名前のコンテナを起動します。incus launch images:ubuntu/22.04 first
注釈
最初はイメージをダウンロードして展開しなければならないため、コンテナの起動には少し時間がかかることに注意してください。
同じイメージを使って
second
という名前のコンテナを起動します。incus launch images:ubuntu/22.04 second
注釈
イメージを取得済みなので、最初の(first)コンテナの起動に比べると早く起動します。
最初の(first)コンテナを
third
という名前のコンテナとしてコピーします。incus copy first third
Ubuntu 22.04 イメージを使って
ubuntu-vm
という名前の仮想マシンを起動します。incus launch images:ubuntu/22.04 ubuntu-vm --vm
注釈
インスタンスの起動に同じイメージ名を使っていますが、Incusは仮想マシンに適した少し異なるイメージをダウンロードします。
起動したインスタンスのリストをチェックします。
incus list
3 番目のコンテナ以外は稼働中になっています。 3 つ目のコンテナ以外が起動していることが確認できるでしょう。これは、3 つ目のコンテナを最初の(first)コンテナからコピーして作成はしたものの、起動処理を実行していないからです。
3 つ目のインスタンスを次のように起動できます。
incus start third
それぞれのコンテナの情報をもう少し詳しく見ることができます。
incus info first incus info second incus info third incus info ubuntu-vm
チュートリアルではこの後、これらのインスタンスすべては必要ありませんので、不要なインスタンスを消しましょう。
2 つ目のコンテナを停止します。
incus stop second
2 つ目のコンテナを削除します。
incus delete second
3 つ目のコンテナを削除します。
incus delete third
このコンテナはまだ実行中なので、最初に停止しないとエラーメッセージが出るでしょう。その代わりに、強制的に削除できます。
incus delete third --force
詳細はインスタンスを作成するにはとインスタンスを管理するにはを参照してください。
インスタンスの設定¶
インスタンスに設定できる制限や設定オプションがいくつか存在します。その概要についてはインスタンスオプションを参照してください。
リソース制限を持つインスタンスを 1 つ作ってみましょう。
コンテナを起動し、1vCPU と 192MiB メモリーの制限を設定します。
incus launch images:ubuntu/22.04 limited --config limits.cpu=1 --config limits.memory=192MiB
現在の設定を確認し、制限が設定されていない最初の(first)コンテナの設定と比べてみましょう。
incus config show limited incus config show first
親環境のシステムと 2 つのコンテナで空きメモリーと使用済メモリーの量をチェックしましょう。
free -m incus exec first -- free -m incus exec limited -- free -m
注釈
デフォルトでは、コンテナは親環境からリソースを継承するため、親環境と最初の(first)インスタンスではメモリの総量が同じであることに注意してください。一方で、制限を設定したインスタンスは192MiBだけが使用できます。
親環境と 2 つのインスタンスで使用できる CPU の数をチェックしましょう。
nproc incus exec first -- nproc incus exec limited -- nproc
注釈
ふたたび、親環境と最初の(first)インスタンスのCPU数は同じで、制限を設定したインスタンスでは減少していることに注意してください。
実行中のインスタンスの設定を更新することもできます。
インスタンスのメモリー制限を設定する。
incus config set limited limits.memory=128MiB
適用した設定をチェックする。
incus config show limited
コンテナで使用できるメモリー量をチェックする。
incus exec limited -- free -m
数値が変わっていることを確認してください。
使用するインスタンスタイプとストレージドライバーによっては、より多くの設定を指定できます。 たとえば、仮想マシンの root ディスクデバイスのサイズを指定できます。
Ubuntu 仮想マシンの root ディスクデバイスの現在のサイズをチェックします。
user@host:~$
incus exec ubuntu-vm -- df -h
Filesystem Size Used Avail Use% Mounted on
/dev/root 9.6G 1.4G 8.2G 15% /
tmpfs 483M 0 483M 0% /dev/shm
tmpfs 193M 604K 193M 1% /run
tmpfs 5.0M 0 5.0M 0% /run/lock
tmpfs 50M 14M 37M 27% /run/incus_agent
/dev/sda15 105M 6.1M 99M 6% /boot/efi
root ディスクデバイスのサイズを上書きします。
incus config device override ubuntu-vm root size=30GiB
仮想マシンを再起動します。
incus restart ubuntu-vm
ふたたび、root ディスクデバイスのサイズをチェックします。
user@host:~$
incus exec ubuntu-vm -- df -h
Filesystem Size Used Avail Use% Mounted on
/dev/root 29G 1.4G 28G 5% /
tmpfs 483M 0 483M 0% /dev/shm
tmpfs 193M 588K 193M 1% /run
tmpfs 5.0M 0 5.0M 0% /run/lock
tmpfs 50M 14M 37M 27% /run/incus_agent
/dev/sda15 105M 6.1M 99M 6% /boot/efi
より詳細な情報はinstances-configure
とインスタンスの設定を参照してください。
インスタンスの操作¶
インスタンス内で(インタラクティブなシェルを含む)コマンドを実行したりインスタンス内のファイルにアクセスできます。
まずインスタンス内でインタラクティブなシェルを起動しましょう。
コンテナ内で
bash
コマンドを実行します。incus exec first -- bash
たとえば以下のコマンドを入力するとオペレーティングシステムについての情報が表示されます。
cat /etc/*release
インタラクティブなシェルを抜けます。
exit
インスタンスにログインしてコマンドを実行する代わりに、ホストから直接コマンドを実行できます。
たとえば、コンテナ上にコマンドラインツールをインストールし、それを実行できます。
incus exec first -- apt-get update
incus exec first -- apt-get install sl -y
incus exec first -- /usr/games/sl
詳細はインスタンス内でコマンドを実行するにはを参照してください。
インスタンスのファイルにアクセスしたり、ファイルを操作できます。
インスタンスからファイルを取得します。
incus file pull first/etc/hosts .
ファイルにエントリーを追加します。
echo "1.2.3.4 my-example" >> hosts
インスタンスにファイルを戻します。
incus file push hosts first/etc/hosts
ログファイルにアクセスするために同じメカニズムを使います。
incus file pull first/var/log/syslog - | less
注釈
Press
q
to exit theless
command.
詳細はインスタンス内のファイルにアクセスするにはを参照してください。
スナップショットの管理¶
インスタンスのスナップショットを作成したり、スナップショットからリストアしたりできます。
"clean"という名前のスナップショットを作ります。
incus snapshot create first clean
スナップショットが作られたことを確認します。
incus list first incus info first
注釈
incus list
はスナップショットの数を表示します。incus info
はそれぞれのスナップショットについての情報を表示します。コンテナを破壊します。
incus exec first -- rm /usr/bin/bash
壊れたことを確認します。
incus exec first -- bash
注釈
bash
コマンドを削除したので、シェルが実行できないことに注意してください。スナップショットの状態にインスタンスをリストアします。
incus snapshot restore first clean
すべて通常状態に戻ったことを確認します。
incus exec first -- bash exit
スナップショットを削除します。
incus snapshot delete first clean
詳細はインスタンスのバックアップにスナップショットを使用するを参照してください。