コンテナ・インスタンスの作成

コンテナ・インスタンスを作成するには、次のステップに従います。

コンテナ・インスタンスを作成する前に、次の要件を考慮してください。
  • コンテナ・インスタンスを作成する場合、他のにもいくつかのリソース(イメージ、クラウド・ネットワーク、サブネットなど)。このようなリソースは、インスタンスと同じコンパートメントまたは他のコンパートメントにあえてもかいません。インスタンスの作成に関与する各コンパートメントに対する必要なアクセス・レベルを持っている必要があります。必要なIAMポリシーを参照してください。
  • コンテナ・イメージを指定する場合、イメージが存在するレジストリは、コンテナ・インスタンスに指定したサブネットからアクセス可能である必要があります。コンテナ・イメージがOCIコンテナ・レジストリに存在する場合は、サービス・ゲートウェイを使用して仮想クラウド・ネットワーク(VCN)のサブネット内のイメージを指定します。コンテナ・イメージがパブリック・インターネットでホストされている外部レジストリに存在する場合は、インターネット・ゲートウェイを使用するVCNのパブリック・サブネット、またはネットワーク・アドレス変換(NAT)ゲートウェイを使用するVCNのプライベート・サブネットにイメージを指定します。

重要

各コンテナ・インスタンスに最大60個のコンテナを作成できます。
  • コンテナ・インスタンスを作成するには、次のステップを実行します。

    1. 「コンテナ・インスタンス」リスト・ページにナビゲートします。リスト・ページの検索に関するヘルプが必要な場合は、コンテナ・インスタンスのリストを参照してください。
    2. 「コンテナ・インスタンスの作成」を選択します。
    3. 番号付きステップの情報を次のように入力します。

    1. 基本的な詳細の追加

    • 名前:コンテナ・インスタンスの名前を入力します。名前は後で追加または変更できます。Oracle Cloud Identifier (OCID)によってコンテナ・インスタンスが一意に識別されるため、この名前は一意である必要があります。機密情報を入力しないでください。
    • コンパートメントに作成:インスタンスを作成するコンパートメントを選択します選択する他のリソースは、異なるコンパートメントから取得できます。

    タグ

    「タグ」セクションで、コンテナ・インスタンスにタグを追加します。リソースを作成する権限がある場合、そのリソースにフリーフォーム・タグを適用する権限もあります。定義済タグを適用するには、タグ・ネームスペースを使用する権限が必要です。タグ付けの詳細は、リソース・タグを参照してください。タグを適用するかどうかが不明な場合は、このオプションをスキップするか、管理者に問い合せてください。後でタグを適用できます。

    配置場所

    「配置」セクションで、次のオプションを選択します。

    • 可用性ドメイン:インスタンスを作成する可用性ドメインを選択します。
    • フォルト・ドメイン(オプション):デフォルトでは、フォルト・ドメインが選択されます。または、インスタンスで使用するフォルト・ドメインを選択します。詳細は、フォルト・ドメインを参照してください

    シェイプ

    「シェイプ」セクションで、コンテナ・インスタンスのフレキシブル・シェイプを選択します。フレキシブル・シェイプには、カスタマイズ可能なOCPU数およびメモリー量があります。「シェイプの変更」を選択して、シェイプを変更します。

    • OCPU数: 「OCPU数」で、スライダをドラッグして、このインスタンスに割り当てるOCPU数を選択します。その他のリソースは比例してスケーリングされます。
    • メモリー量(GB): 「メモリー量(GB)」で、スライダをドラッグして、このインスタンスに割り当てるメモリー量を選択します。使用できるメモリーの量は、選択したOCPUの数に基づいています。

    ネットワーク

    「ネットワーキング」セクションで、インスタンスのネットワーク詳細を構成します:
    ノート

    コンテナで実行されているアプリケーションへのネットワーク・トラフィックを許可するには、セキュリティ・リストまたはネットワーク・セキュリティ・グループの一部としてセキュリティ・ルールが必要です。たとえば、アプリケーションがTCPポート8080で実行されている場合、TCPおよびポート8080のセキュリティ・ルールが必要です。セキュリティ・ルールの構成の詳細は、セキュリティ・ルールを参照してください。
    • プライマリ・ネットワーク:

      いずれかのオプションを選択します。

      • 既存の仮想クラウド・ネットワークの選択:既存のVCNを選択します。
      • 新しい仮想クラウド・ネットワークの作成:このダイアログでVCNを作成します。
      • サブネットOCIDの入力:既存のVCNのOCIDを入力します。

      次のフィールドに入力します。

      • 仮想クラウド・ネットワーク・コンパートメント:コンパートメントを選択します。
      • 仮想クラウド・ネットワーク:自分のVCNを選択します。
    • サブネット

      インスタンスがアタッチされているクラウド・ネットワーク内のサブネット。サブネットワークはパブリックまたはプライベートのいずれかです。プライベートでは、そのサブネット内のインスタンスはパブリックIPアドレスを持つことができません。詳細は、インターネットへのアクセスを参照してください。サブネットは、可用性ドメイン固有またはリージョナルにすることもできます。名前の後には「地域」があります。リージョナル・サブネットを使用することをお薦めします。詳細は、リージョナル・サブネットについてに関する項を参照してください。

      サブネット・オプションを選択します:

      • 既存のサブネットの選択:コンパートメントおよびサブネットを選択します。
      • 新規パブリック・サブネットの作成:次の情報を入力します:
        • 新規サブネット名:サブネットワークのわかりやすい名前。機密情報を入力しないでください。
        • サブネット・コンパートメント:サブネットを配置するコンパートメント。
        • CIDRブロック:サブネットの単一の連続したCIDRブロック(172.16.0.0/24など)。クラウド・ネットワークのCIDRブロック内にあり、他のサブネットと重複しないことを確認してください。この値は後で変更できません許容されるVCNのサイズとアドレス範囲を参照してください。参照用として、ここにCIDR計算機があります。
    • パブリックIPv4アドレス

      オプションを選択します。

      • パブリックIPv4アドレスの割当て:インスタンスにパブリックIPアドレスを割り当てます。パブリックIPアドレスによって、インスタンスにインターネットからアクセスできます。詳細は、インターネットへのアクセスを参照してください。
      • パブリックIPv4アドレスを割り当てない: パブリックIPアドレスが割り当てられていません。
    • 拡張ネットワーキング・オプション

      拡張ネットワーク・オプションを選択します。

      • ネットワーク・セキュリティ・グループを使用してトラフィックを制御: インスタンスのプライマリVNICを1つ以上のネットワーク・セキュリティ・グループ(NSG)に追加する場合は、このオプションを選択します。次に、NSGを指定します。このオプションは、既存のVCNを使用する場合にのみ使用可能です。詳細は、ネットワーク・セキュリティ・グループを参照してください。
      • ソース/宛先チェックの有効化:ソース/宛先チェックがVNICで無効化かどうか。
      • プライベートIPアドレス:サブネットのCIDRから選択する、使用可能なプライベートIPアドレスを入力します。値を指定しないと、プライベートIPアドレスが自動的に割り当てられます。
      • DNSレコード:プライベートDNSレコードを割り当てるかどうかを指定します。
      • ホスト名:クラウド・ネットワーク内でDNSに使用されるホスト名を入力します。このオプションは、VCNとサブネットの両方にDNSラベルがあり、 プライベートDNSレコードの割当てを選択している場合にのみ使用できます。

    拡張オプション

    コンテナ・インスタンスの詳細設定を構成します。

    • 正常な停止タイムアウト(秒):コンテナ・インスタンスがOSの停止を待機してから電源を切るまでの時間を設定します。
    • コンテナ再起動ポリシー:

      コンテナの作成時に、コンテナ・インスタンス内のコンテナの再起動ポリシーを設定できます。個々のコンテナが終了(停止、再起動または失敗)すると、APIで終了コードと終了時間が使用可能になり、再起動ポリシーが適用されます。すべてのコンテナが終了し、再起動しない場合、コンテナ・インスタンスは停止します。

      次のいずれかのオプションを選択します:

      • 常時:コンテナが正常に終了しても、コンテナは常に再起動されます。Webサーバーなど、コンテナが常に実行されていることを確認する場合は、「常に」をお薦めします。このポリシー設定がデフォルトです。
      • なし:コンテナが終了した理由に関係なく、コンテナは再起動されません。
      • 失敗時:コンテナがエラーで終了した場合にのみ、コンテナが再起動します。特定のタスクを完了し、正常に完了することを確認する場合は、「失敗時」をお薦めします。

    コンテナ・インスタンス内でコンテナを構成するには、「次へ」を選択します。

    2. コンテナの構成

    次のコンテナ情報を入力します。

    • 名前:最初のコンテナの名前を入力します。名前は後で追加または変更できます。Oracle Cloud Identifier (OCID)によってコンテナが一意に識別されるため、この名前は一意である必要があります。機密情報を入力しないでください。
    • イメージ:

      「イメージの選択」を選択し、次のステップに従います。

      画像ソースを選択:

      • OCI Container Registry: OCIレジストリ(コンテナ・レジストリとも呼ばれる)は、コンテナ・イメージを格納、共有および管理できるようにするOracle管理レジストリです。詳細は、コンテナ・レジストリを参照してください。
      • 外部レジストリ:サードパーティ・ベンダーが提供するイメージを選択できる、Docker Hubなどの外部レジストリ。

        OCI 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_ocidlogical_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操作を使用します。