コンテナー インスタンスの通常の操作中に、 コンテナー グループ内の実行中のコンテナーを更新する必要がある場合があります。 たとえば、イメージ バージョン、DNS 名、環境変数などのプロパティを更新したり、アプリケーションがクラッシュしたコンテナー内のプロパティを更新したりできます。
少なくとも 1 つのプロパティが変更された既存のグループを再デプロイして、実行中のコンテナー グループ内のコンテナーを更新します。 コンテナー グループを更新すると、グループ内で実行中のすべてのコンテナーがインプレースで再起動されます。通常、基になるコンテナー ホストは同じです。
注
終了または削除されたコンテナー グループは更新できません。 コンテナー グループが終了するか (成功または失敗のいずれかの状態)、または削除されたら、グループを新規としてデプロイする必要があります。 その他 の制限事項を参照してください。
コンテナー グループを更新する
既存のコンテナー グループを更新するには:
- create コマンドを発行し (またはAzure ポータルを使用して)、既存のグループの名前を指定します
- 再デプロイするときに、更新をサポートするグループのプロパティを少なくとも 1 つ変更または追加します。 特定 のプロパティは更新プログラムをサポートしていません。
- 以前に指定した値を使用して、他のプロパティを設定します。 プロパティの値を設定しない場合は、既定値に戻ります。
注
すべてのプロパティを以前に指定した値に設定し、変更や追加を行わない場合、create コマンドに応答してコンテナーが再起動されます。
ヒント
YAML ファイルは、コンテナー グループのデプロイ構成を維持するのに役立ち、更新されたグループをデプロイするための開始点を提供します。 別の方法を使用してグループを作成した場合は、 az container export を使用して構成を YAML にエクスポートできます。
例
次のAzure CLI例では、コンテナー グループを新しい DNS 名ラベルで更新します。 グループの DNS 名ラベル プロパティは更新可能であるため、コンテナー グループが再デプロイされ、そのコンテナーが再起動されます。
DNS 名ラベル myapplication-staging を使用した初期デプロイ:
# Create container group
az container create --resource-group myResourceGroup --name mycontainer \
--image nginx:alpine --dns-name-label myapplication-staging
コンテナー グループを新しい DNS 名ラベル、 アプリケーションで更新し、前に使用した値で残りのプロパティを設定します。
# Update DNS name label (restarts container), leave other properties unchanged
az container create --resource-group myResourceGroup --name mycontainer \
--image nginx:alpine --dns-name-label myapplication
更新プログラムの利点
既存のコンテナー グループを更新する主な利点は、デプロイの高速化です。 既存のコンテナー グループを再デプロイすると、そのコンテナー イメージ レイヤーは、前のデプロイによってキャッシュされたレイヤーからプルされます。 新しいデプロイで行われるように、レジストリから最新のすべてのイメージ レイヤーをプルするのではなく、変更されたレイヤー (存在する場合) のみがプルされます。
Windows Server Core などの大規模なコンテナー イメージに基づくアプリケーションでは、削除して新しくデプロイする代わりに更新すると、デプロイ速度が大幅に向上します。
Limitations
- コンテナー グループのすべてのプロパティで更新がサポートされているわけではありません。 コンテナー グループの一部のプロパティを変更するには、最初にグループを削除してから再デプロイする必要があります。 コンテナーの削除を必要とするプロパティを参照してください。
- コンテナー グループを更新すると、コンテナー グループ内のすべてのコンテナーが再起動されます。 複数コンテナー グループに含まれる特定のコンテナーを更新したり、インプレースで再起動したりすることはできません。
- コンテナー グループの IP アドレスは通常、更新の間に保持されますが、同じままであるとは限りません。 コンテナー グループが同じ基になるホストにデプロイされている限り、コンテナー グループはその IP アドレスを保持します。 まれですが、Azure内部イベントの中には、別のホストへの再デプロイを引き起こす可能性があるイベントがいくつかあります。 この問題を軽減するには、コンテナー インスタンスに DNS 名ラベルを使用することをお勧めします。
- 終了または削除されたコンテナー グループは更新できません。 コンテナー グループが停止 ( 終了 状態) または削除されると、グループは新規としてデプロイされます。
注
Azure コンテナー グループがAzure Storage プロファイルにアタッチされている場合、更新コマンドが機能しない可能性があります。
コンテナーの削除を必要とするプロパティ
すべてのコンテナー グループ プロパティを更新できるわけではありません。 たとえば、コンテナーの再起動ポリシーを変更するには、まずコンテナー グループを削除してから、もう一度作成する必要があります。
これらのプロパティを変更するには、再デプロイする前にコンテナー グループを削除する必要があります。
- OS の種類
- CPU、メモリ、または GPU リソース
- 再起動ポリシー
- ネットワーク プロファイル
- 可用性ゾーン
重要
ネットワーク プロファイル は、 2021-07-01 API バージョンの時点で廃止されます。 このバージョンまたはより新しいバージョンを使用している場合は、ネットワーク プロファイルに関連するすべての手順とアクションを無視します。
コンテナー グループを削除して再作成すると、"再デプロイ" ではなく、新規に作成されます。 すべてのイメージ レイヤーは、以前のデプロイによってキャッシュされたレイヤーからではなく、レジストリから新しくプルされます。 コンテナーの IP アドレスも、基になる別のホストにデプロイされているために変更される可能性があります。
次のステップ
この記事では、 コンテナー グループ について複数回説明します。 Azure Container Instances内のすべてのコンテナーはコンテナー グループにデプロイされ、コンテナー グループには複数のコンテナーを含めることができます。 次の記事では、コンテナー グループの詳細について説明します。