(about-images)= # イメージについて ```{youtube} https://www.youtube.com/watch?v=wT7IDjo0Wgg ``` LXDはイメージをベースとしたワークフローを使用します。 各インスタンスはイメージをベースとしています。イメージは基礎となるオペレーティングシステム(例えば、Linuxディストリビューション)とLXDに関連するいくつかの情報を含みます。 イメージはリモートのイメージストア(概要は{ref}`remote-image-servers`参照)から利用可能ですが、既存のインスタンスやrootfsイメージをベースにして、独自のイメージを作成できます。 リモートサーバーからローカルのイメージストアにイメージをコピーしたり、ローカルのイメージをリモートサーバーにコピーできます。 ローカルのイメージをリモートのインスタンスを作るのに使うこともできます。 各イメージはフィンガープリント(SHA256)で識別されます。 イメージを管理しやすくするために、LXDでは各イメージに1つ以上のエイリアスを定義できます。 ## キャッシュ リモートのイメージからインスタンスを作成する際、LXDはイメージをダウンロードしローカルにキャッシュします。 イメージはローカルのイメージストアにcachedフラグをセットして保管されます。 イメージは以下のいずれかが発生するまでは非公開のイメージとしてローカルに保持されます。 - [`images.remote_cache_expiry`](server-options-images)で指定された日数の間新しいインスタンスを作成するのにイメージが使われなかった。 - イメージの有効期限(イメージのプロパティの1つ。どのように変更するかの情報は{ref}`images-manage-edit`参照)に達した。 LXD はイメージから新しいインスタンスが起動される度にイメージの`last_used_at`プロパティを更新することで、イメージの利用状況を記録しています。 ## 自動更新 LXDはリモートサーバーからのイメージを自動的に最新に更新します。 ```{note} エイリアスを指定して取得したイメージだけが更新されます。 フィンガープリントを指定してイメージを取得した場合は、その特定のイメージバージョンを要求したことになります。 ``` 自動更新が有効になるかどうかはイメージをどのようにダウンロードしたかに依存します。 - インスタンス作成時にイメージがダウンロードとキャッシュされた場合は、ダウンロード時に[`images.auto_update_cached`](server-options-images)が`true`に設定されていれば、自動的に更新されます。 - イメージがリモートサーバーから`lxc image copy`コマンドでコピーされた場合は、`--auto-update`フラグが指定されていた場合のみ自動的に更新されます。 イメージのこの挙動は[`auto_update`プロパティを編集](images-manage-edit)することで変更できます。 起動時と[`images.auto_update_interval`](server-options-images)の間隔(デフォルトでは6時間ごと)を過ぎるたびに、LXDデーモンは自動更新とマークされコピー元のサーバーが記録されたストア内の全てのイメージについてより新しいバージョンがあるかをチェックします。 新しいイメージが見つかったら、イメージ・ストアにダウンロードされます。 その後古いイメージを指していたエイリアスは新しいイメージを指すように変更され、古いイメージはストアから削除されます。 インスタンスの生成が遅くならないようにするため、LXDはキャッシュされたイメージからインスタンスを作成する際に新しいバージョンが利用可能かをチェックしません。 これはイメージが次の更新期間で更新されるまでの間は、新しく作成するインスタンスにイメージの古いバージョンが使われるかもしれないことを意味します。 ## 特別なイメージプロパティ プレフィックス`requirements`で始まるイメージプロパティ(例:`requirements.XYZ`)はLXDがホストシステムと当該イメージで生成されるインスタンスの互換性を判断するために使用されます。 これらの互換性がない場合には、LXDはそのインスタンスを起動しません。 以下の要件がサポートされています。 キー | タイプ | 既定値 | 説明 :-- | :--- | :------ | :---------- `requirements.secureboot` | string | - | `false` に設定すると、イメージがセキュアブートで起動しないことを示します。 `requirements.cgroup` | string | - | `v1` に設定されている場合、ホストで`CGroupV1`が実行されている必要があることを示します。