コンテナ・インスタンスの作成
コンテナ・インスタンスを作成します。
各コンテナ・インスタンスには最大60個のコンテナを作成できます。
- コンテナ・インスタンスを作成する場合、他のいくつかのリソース(イメージ、クラウド・ネットワーク、サブネットなど)が含まれます。これらのリソースは、インスタンスと同じコンパートメントにすることも、他のコンパートメントにすることもできます。インスタンスの作成に関連する各コンパートメントに対して必要なアクセス・レベルを持っている必要があります。必要なIAMポリシーを参照してください。
-
コンテナ・イメージを指定する場合、イメージが存在するレジストリは、コンテナ・インスタンスに指定したサブネットからアクセス可能である必要があります。コンテナ・イメージがOCIコンテナ・レジストリに存在する場合は、サービス・ゲートウェイを使用して仮想クラウド・ネットワーク(VCN)のサブネット内のイメージを指定します。コンテナ・イメージがパブリック・インターネットでホストされている外部レジストリに存在する場合は、インターネット・ゲートウェイを使用するVCNのパブリック・サブネット、またはネットワーク・アドレス変換(NAT)ゲートウェイを使用するVCNのプライベート・サブネットにイメージを指定します。
コンテナ・インスタンスを作成するには、次のステップを実行します。
-
ナビゲーション・メニューを開き、「開発者サービス」をクリックします。「コンテナとアーティファクト」で、「コンテナ・インスタンス」をクリックします。
- 「Create container instance」をクリックします。
- コンテナ・インスタンスの名前を入力します。名前は後で追加または変更できます。Oracle Cloud Identifier (OCID)はコンテナ・インスタンスを一意に識別するため、この名前は一意である必要はありません。機密情報を入力しないでください。
- インスタンスを作成するコンパートメントを選択します。選択する他のリソースは、異なるコンパートメントから取得できます。
- 「配置」で、次のオプションを選択します。
「シェイプ」で、コンテナ・インスタンスのフレキシブル・シェイプを選択します。フレキシブル・シェイプには、カスタマイズできるOCPU数およびメモリー容量があります。
- 「OCPUの数」で、スライダをドラッグして、このインスタンスに割り当てるOCPUの数を選択します。その他のリソースは比例してスケーリングされます。
- 「メモリー容量(GB)」で、スライダをドラッグして、このインスタンスに割り当てるメモリーの量を選択します。使用できるメモリーの量は、選択したOCPUの数に基づいています。
ノート
コンテナで実行されているアプリケーションへのネットワーク・トラフィックを許可するには、セキュリティ・リストまたはネットワーク・セキュリティ・グループの一部としてセキュリティ・ルールが必要です。たとえば、アプリケーションがプロトコルTCP (ポート8080)で実行されている場合は、TCPおよびポート8080のセキュリティ・ルールが必要です。セキュリティ・ルールの構成の詳細は、セキュリティ・ルールを参照してください。- 「プライマリ・ネットワーク」および「サブネット」で、インスタンスを作成する仮想クラウド・ネットワーク(VCN)およびサブネットを指定します。既存のVCNおよびサブネットの使用、新規VCNまたはサブネットの作成、または既存のサブネットのOCIDの入力を行うかどうかを決定します:
- 既存の仮想クラウド・ネットワークを選択: このオプションを選択してから、次の情報を入力します。
- 仮想クラウド・ネットワーク:インスタンスを作成するクラウド・ネットワークをいいます。
- サブネット:インスタンスがアタッチされているクラウド・ネットワーク内のサブネット。サブネットはパブリックまたはプライベートです。プライベートでは、そのサブネット内のインスタンスはパブリックIPアドレスを持つことができません。詳細は、インターネットへのアクセスを参照してください。サブネットは、可用性ドメイン固有またはリージョンのいずれかにすることもできます。リージョン名は、名前の後に"regional"が付きます。リージョナル・サブネットを使用することをお薦めします。詳細は、リージョナル・サブネットについてを参照してください。
- 既存のサブネットを使用するには、「既存のサブネットを選択」を選択し、サブネットを選択します。
- サブネットを作成するには、「新規パブリック・サブネットの作成」を選択してから、次の情報を入力します:
- 新規サブネット名:サブノードの名前。機密情報を入力しないでください。
- コンパートメントに作成:サブネットを配置するコンパートメント。
- CIDRブロック:サブネットの単一の連続したCIDRブロック(172.16.0.0/24など)。クラウド・ネットワークのCIDRブロック内にあり、他のサブネットと重複しないことを確認してください。この値は後で変更できません。許容されるVCNのサイズとアドレス範囲を参照してください。参照用として、ここにCIDR計算機があります。
- 新規仮想クラウド・ネットワークの作成: このオプションを選択してから、次の情報を入力します。
- 新規仮想クラウド・ネットワーク名:サブネットの名前。ネットワークのフレンドリ名。機密情報を入力しないでください。
- コンパートメントに作成:新しいネットワークを配置するコンパートメント。
- 新しいパブリック・サブネットの作成:インスタンスをアタッチするクラウド・ネットワーク内のサブネット。サブネットはパブリックまたはプライベートです。プライベートでは、そのサブネット内のインスタンスはパブリックIPアドレスを持つことができません。詳細は、インターネットへのアクセスを参照してください。サブネットは、可用性ドメイン固有またはリージョンのいずれかにすることもできます。リージョン名は、名前の後に"regional"が付きます。リージョナル・サブネットを使用することをお薦めします。詳細は、リージョナル・サブネットについてを参照してください。
- 新規サブネット名:サブネットの名前。一意にする必要はありません。後で変更できます。機密情報を入力しないでください。
- コンパートメントに作成:サブネットを配置するコンパートメント。
- CIDRブロック: 172.16.0.0/24など、サブネットの単一の連続したCIDRブロック。クラウド・ネットワークのCIDRブロック内にあり、他のサブネットと重複しないことを確認してください。この値は後で変更できません。許容されるVCNのサイズとアドレス範囲とこのCIDR計算機を参照してください。
サブネットOCIDの入力: このオプションを選択し、サブネットOCIDを入力します。
- (オプション)サブネットがパブリックの場合、「パブリックIPv4アドレスの割当て」を選択して、インスタンスにパブリックIPアドレスを割り当てます。パブリックIPアドレスによって、インスタンスにインターネットからアクセスできます。詳細は、インターネットへのアクセスを参照してください。
-
(オプション)詳細ネットワーキング設定を構成するには、「拡張オプションの表示」をクリックし、必要に応じて次のオプションを指定します:
- ネットワーク・セキュリティ・グループを使用してトラフィックを制御:インスタンスのプライマリVNICを1つ以上のネットワーク・セキュリティ・グループ(NSG)に追加する場合は、このオプションを選択します。次に、NSGを指定します。このオプションは、既存のVCNを使用する場合にのみ使用できます。詳細は、ネットワーク・セキュリティ・グループを参照してください。
- プライベートIPアドレス:サブネットのCIDRから選択する使用可能なプライベートIPアドレスを入力します。値を指定しないと、プライベートIPアドレスが自動的に割り当てられます。
- DNSレコード: プライベートDNSレコードを割り当てるかどうかを指定します。
- ホスト名:クラウド・ネットワーク内でDNSに使用するホスト名を入力します。このオプションは、VCNとサブネットの両方にDNSラベルがあり、プライベートDNSレコードの割当てを選択した場合にのみ使用できます。
- 既存の仮想クラウド・ネットワークを選択: このオプションを選択してから、次の情報を入力します。
- (オプション)コンテナ・インスタンスの詳細設定を構成するには、「拡張オプションの表示」をクリックし、必要に応じて次のオプションを指定します:
- 「拡張オプション」タブでは、次のオプションを構成できます。
- 正常な停止タイムアウト(秒):コンテナ・インスタンスがOSの停止を待機してから電源を切断する時間を設定します。
-
コンテナ再起動ポリシー: 「常時」、「なし」および「失敗時」の中から選択します。
コンテナ・インスタンスの作成時に、コンテナ・インスタンス内のコンテナの再起動ポリシーを設定できます。個々のコンテナが終了(停止、再起動または失敗)すると、終了コードおよび終了時間がAPIで使用可能になり、再起動ポリシーが適用されます。すべてのコンテナが終了して再起動しない場合、コンテナ・インスタンスは停止されます。
次のいずれかのオプションを選択します:
- 常時:コンテナが正常に終了しても、コンテナは常に再起動されます。Webサーバーなど、コンテナが常に実行されていることを確認する場合は、「常に」をお薦めします。このポリシー設定がデフォルトです。
- なし:コンテナが終了した理由に関係なく、コンテナは再起動されません。
- 失敗時:コンテナがエラーで終了した場合にのみ、コンテナが再起動します。特定のタスクを完了し、正常に完了することを確認する場合は、「失敗時」をお薦めします。
- 「タグ」タブで、コンテナ・インスタンスにタグを追加します。リソースを作成する権限がある場合、そのリソースにフリーフォーム・タグを適用する権限もあります。定義済タグを適用するには、タグ・ネームスペースを使用する権限が必要です。タグ付けの詳細は、リソース・タグを参照してください。タグを適用するかどうかがわからない場合は、このオプションをスキップするか、管理者に連絡してください。タグは後で適用できます。
- 「拡張オプション」タブでは、次のオプションを構成できます。
- 「次へ」をクリックして、コンテナ・インスタンス内のコンテナを構成します。
- 最初のコンテナの名前を入力します。名前は後で追加または変更できます。Oracle Cloud Identifier (OCID)によってコンテナが一意に識別されるため、この名前は一意である必要はありません。機密情報を入力しないでください。
-
「イメージ」で「イメージの選択」をクリックし、次のステップに従って「コンテナ・イメージ」パネルでコンテナ・イメージを選択します。
-
画像ソースを選択:
-
OCI Container Registry: OCI Registryは、コンテナ・イメージを格納、共有および管理できるOracle管理レジストリです。詳細は、コンテナ・レジストリを参照してください。
-
外部レジストリ: Docker Hubなどの外部レジストリ。サードパーティ・ベンダーが提供するイメージを選択できます。
- イメージ・プル認可のVaultシークレット:イメージをプルするために認可が必要なプライベート・レジストリまたはリポジトリでコンテナ・イメージをホストできます。セキュリティを強化し、資格証明管理を容易にするために、Oracle Cloud Infrastructure Vaultサービスを使用して資格証明を格納することをお薦めします。詳細は、Vault Secrets for Image Pull Authorizationを参照してください。
-
-
イメージを選択
-
「イメージの選択」をクリックします。
-
-
「環境変数」セクションで、コンテナによって使用される環境変数を設定できます。
コンテナ・イメージは、実行をカスタマイズするための環境変数をサポートしています。たとえば、公式のNGINXイメージでは、NGINX_HOSTおよびNGINX_PORT環境変数がサポートされるため、実行をカスタマイズする値を次の変数に設定できます。
- NGINX_HOST=foobar.com
- NGINX_PORT=80
- コンテナの詳細設定を構成するには、「拡張オプションの表示」をクリックし、必要に応じて次のオプションを指定します:
- 「リソース」タブでは、コンテナが絶対またはパーセントで消費するリソースの量を構成できます。デフォルトでは、コンテナはコンテナ・インスタンス内のすべてのリソースを使用できます。
- 「起動オプション」タブで、コンテナの作業ディレクトリおよびENTRYPOINT引数を構成できます。
- 「セキュリティ」タブで、コンテナのセキュリティ設定を指定できます。
- 「読取り専用ルート・ファイルシステムの有効化」チェック・ボックスを選択して、コンテナのルート・ファイルシステムに読取り専用アクセスを適用します。
- 「root以外のユーザーとして実行」チェック・ボックスを選択して、rootユーザーがコンテナを実行しないようにします。
- 「root以外のユーザーとして実行」を有効にすると、「ユーザーID」の値を0に設定できません。
- [ユーザーID]フィールドと [グループID]フィールドを使用して、ユーザーID (ID)とグループID (GID)を設定し、コンテナのエントリポイント プロセスを実行します。
- 「ユーザーID」および「グループID」の値は、0から65535の整数にする必要があります。デフォルト値は0です。
- 指定した [ユーザーID]および [グループID]の値は、コンテナ イメージで設定された値を上書きします。「ユーザーID」の値を指定しない場合、コンテナのエントリポイント・プロセスはrootユーザーとして実行されます。
- 「グループID」を設定する前に、「ユーザーID」を設定する必要があります。
- 「Linux機能の構成」セクションで、コンテナのLinux機能を構成できます。デフォルトでは、コンテナは複数の機能で起動され、削除を選択できます。
「機能の追加」フィールドと「機能の削除」フィールドの両方でALL値がサポートされ、すべての機能が許可または削除されます。値 ALLは、デフォルトで有効になっている Linux機能を示します。
- 「機能の追加」と「機能の削除」の両方を空白のままにすると、コンテナのすべてのデフォルト機能を使用できます。
- 「機能の追加」フィールドに「すべて」と入力すると、「機能の削除」フィールドにリストした機能を除くすべての機能が使用可能になり、「機能の削除」フィールドの「すべて」は無視されます。
- 「削除機能」フィールドに「すべて」と入力した場合、コンテナには、「機能の追加」フィールドにリストした機能のみが含まれます。
- その他の場合は、「機能の削除」フィールドにリストされているデフォルト・セットからすべての機能を削除し、「機能の追加」フィールドにリストされている機能を追加し、最後にコンテナの機能として結果を返します。
- 次のリストに含まれていない機能を提供すると、コンテナ・インスタンスの作成は失敗します。
コンテナの作成時にデフォルトで有効になっているすべてのLinux機能 機能 Description CAP_CHOWN ファイルUIDおよびGIDを変更します。 CAP_DAC_OVERRIDE ファイルの読取り、書込みおよび実行権限チェックをバイパスする任意アクセス制御(DAC)。 CAP_FSETID - ファイルの変更時にset-user-IDおよびset-group-IDモードビットをクリアしません。
- GIDがファイル、システム、または呼び出し側プロセスの補助GIDと一致しないファイルのセットグループIDビットを設定します。
CAP_FOWNER 通常、プロセスのファイル・システムUIDがファイルのUIDと一致することを必要とする操作に対する権限チェックをバイパスし、CAP_DAC_OVERRIDEおよびCAP_DAC_READ_SEARCHの対象となる操作は除外します。 CAP_MKNOD mknod(2)を使用して特殊なファイルを作成します。 CAP_NET_RAW - RAWおよびPACKETソケットを使用します。
- 透過的プロキシのために任意のアドレスにバインドします。
CAP_SETGID - プロセスGIDおよび補助GIDリストを操作します。
- UNIXドメイン・ソケットを介してソケット資格証明を渡すときにGIDを強制します。
- グループIDマッピングをユーザー・ネームスペースに書き込みます。
CAP_SETUID - プロセスUIDを操作します。
- UNIXドメイン・ソケットを介してソケット資格証明を渡すときにUIDを強制します。
- ユーザー・ネームスペースにユーザーIDマッピングを書き込みます。
CAP_SETFCAP ファイル機能を設定します。 CAP_SETPCAP ファイル機能がサポートされていない場合は、他のプロセスに対して設定されている、または設定されている、呼び出し元の許可された機能内の機能を付与または削除します。 CAP_NET_BIND_SERVICE インターネット・ドメイン特権ポート(ポート番号は1024未満)にソケットをバインドします。 CAP_SYS_CHROOT chroot(2)を使用して、別のルートディレクトリに変更します。 CAP_KILL ioctl(2) KDSIGACCEPT操作の使用を含む、シグナルを送信するためのアクセス権チェックをバイパスします。 CAP_AUDIT_WRITE カーネル監査ログにレコードを書き込みます。
- インスタンスに別のコンテナを構成するには、「+別のコンテナ」をクリックし、前述のステップを繰り返します。
- 「次へ」をクリックして、コンテナ・インスタンスとそのコンテナを確認します。
- 「作成」をクリックします。
-
oci container-instances container-instance createコマンドを使用して、コンテナ・インスタンスを作成します。 このコマンドを使用するには、compartment_ocid、logical_adおよびsubnetIdをリソースに置き換えます。$ compartment_ocid=ocid1.compartment.oc1.example $ logical_ad=Lnnj:US-EXAMPLE $ ci_shape=CI.Standard.E4.Flex $ shape_config_json='{"ocpus": 2,"memoryInGBs": 2}' $ containers_json='[{"imageUrl": "busybox", "command": ["bin/sh"], "arguments": ["-c", "echo Hello"]}]' $ vnics_json='[{"subnetId": "ocid1.subnet.oc1.example"}]' $ oci container-instances container-instance create --compartment-id "$compartment_ocid" --availability-domain "$logical_ad" --shape "$ci_shape" --shape-config "$shape_config_json" --containers "$containers_json" --vnics "$vnics_json"
CLIコマンドのフラグおよび変数オプションの完全なリストは、コマンドライン・リファレンスを参照してください。
CreateContainerInstance操作を使用します。