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

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

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

重要

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

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

    1. 基本的な情報

    「基本情報」ステップで、次の情報を入力します。

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

    2. コンパートメントに作成:インスタンスを作成するコンパートメントを選択します選択する他のリソースは、異なるコンパートメントから取得できます。

    3. 可用性ドメイン:インスタンスを作成する可用性ドメインを選択します。

    4. フォルト・ドメイン(オプション):デフォルトでは、フォルト・ドメインが選択されます。または、「フォルト・ドメインの指定」を選択して、インスタンスに使用するフォルト・ドメインを選択します。詳細は、フォルト・ドメインを参照してください

    5. シェイプ:コンテナ・インスタンスのフレキシブル・シェイプを選択します。フレキシブル・シェイプには、カスタマイズ可能なOCPU数およびメモリー容量が含まれます。

      「シェイプの変更」を選択してシェイプを変更し、次を指定します:

      • OCPU数: 「OCPU数」で、このインスタンスに割り当てるOCPU数を選択します。その他のリソースは比例してスケーリングされます。
      • メモリー量(GB): 「メモリー量(GB)」で、このインスタンスに割り当てるメモリー量を選択します。使用できるメモリーの量は、選択したOCPUの数に基づいています。
    6. コンテナの動作:コンテナ・インスタンスのコンテナ動作を構成します。

      • 正常な停止タイムアウト(秒):コンテナ・インスタンスがOSの停止を待機してから電源を切断する時間を設定します。正常なシャットダウンタイムアウトを指定しない場合、デフォルトは0秒です。
      • コンテナ再起動ポリシー:コンテナ・インスタンスの作成時に、コンテナの再起動ポリシーを設定できます。個々のコンテナが終了(停止、再起動または失敗)すると、APIで終了コードと終了時間が使用可能になり、再起動ポリシーが適用されます。すべてのコンテナが終了し、再起動しない場合、コンテナ・インスタンスは停止します。

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

        • 常時:コンテナが正常に終了しても、コンテナは常に再起動されます。Webサーバーなど、コンテナが常に実行されていることを確認する場合は、「常に」をお薦めします。このポリシー設定がデフォルトです。
        • なし:コンテナが終了した理由に関係なく、コンテナは再起動されません。
        • 失敗時:コンテナは、エラーで終了した場合のみ再起動します。特定のタスクを完了し、正常に完了することを確認する場合は、「失敗時」をお薦めします。
    7. タグ: 「タグ」セクションで、コンテナ・インスタンスにタグを追加します。リソースを作成する権限がある場合、そのリソースにフリーフォーム・タグを適用する権限もあります。定義済タグを適用するには、タグ・ネームスペースを使用する権限が必要です。

      タグ付けの詳細は、リソース・タグを参照してください。タグを適用するかどうかがわからない場合は、このオプションをスキップするか、管理者に問い合せてください。後でタグを適用できます。

    8. 「次へ」を選択します。

    2. ネットワーク

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

    ノート

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

      • プライマリ・ネットワーク:

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

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

        VCNを選択または作成する場合は、次のフィールドに入力します:

        • 仮想クラウド・ネットワーク・コンパートメント:コンパートメントを選択します。
        • 仮想クラウド・ネットワーク:新しい名前を入力するか、既存のVCNを選択します。
      • サブネット:

        インスタンスがアタッチされているクラウド・ネットワーク内のサブネット。サブネットワークはパブリックまたはプライベートのいずれかです。プライベートでは、そのサブネット内のインスタンスはパブリックIPアドレスを持つことができません。詳細は、インターネットへのアクセスを参照してください。

        サブネットは、可用性ドメイン固有またはリージョナルにすることもできます。名前の後には「地域」があります。リージョナル・サブネットを使用することをお薦めします。詳細は、リージョナル・サブネットについてを参照してください。

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

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

    3. パブリックIPv4アドレス:

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

      • パブリックIPv4アドレスの割当て:インスタンスにパブリックIPv4アドレスを割り当てます。これにより、インスタンスはインターネットからアクセス可能になります。詳細は、インターネットへのアクセスを参照してください。
      • パブリックIPv4アドレスを割り当てない:パブリックIPv4アドレスが割り当てられていません。
    4. ネットワーク・セキュリティ:

      • ネットワーク・セキュリティ・グループを使用してトラフィックを制御: インスタンスのプライマリVNICを1つ以上のネットワーク・セキュリティ・グループ(NSG)に追加する場合は、このオプションを選択します。次に、NSGを指定します。このオプションは、既存のVCNを使用する場合にのみ使用可能です。詳細は、ネットワーク・セキュリティ・グループを参照してください。
      • ソース宛先チェックの有効化:このコンテナ・インスタンスのVNICでソース/宛先チェックを有効にします。
    5. DNS設定:

      • DNSレコード:プライベートDNSレコードを割り当てるかどうかを指定します。
      • ホスト名:クラウド・ネットワーク内でDNSに使用されるホスト名を入力します。このオプションは、VCNとサブネットの両方にDNSラベルがあり、非公開DNSレコードの割当てを選択した場合にのみ使用できます。
    6. 「次へ」を選択します。

    3. ストレージ

    「ストレージ」セクションでは、最大32個のストレージ・アイテムを追加できます。ファイル・ストレージ、空のディレクトリおよび構成ファイルを追加できます。

    ボリューム・タイプ 目的
    ファイル・ストレージ OCI File Storage Service (FSS)によってバックアップされた永続ストレージ。
    ディレクトリが空です メモリー(tmpfs)またはエフェメラル・ストレージによってバックアップされた、インスタンス内のコンテナ用の共有空のディレクトリ。
    構成ファイル 1つ以上の指定されたファイルを含むKubernetesスタイルの構成ファイル・ボリューム。
    1. 「処理」ボタンを選択し、次を選択します:

      • ファイル・記憶域の管理:
        1. マウント・ターゲットを選択または作成します。既存のマウント・ターゲットを選択したり、そのOCIDを入力したり、表示名、コンパートメント、可用性ドメインおよびタグを指定してマウント・ターゲットを作成できます。

          マウント・ターゲットは、コンテナ・インスタンス・サブネットからアクセス可能である必要があります。それ以外の場合、コンテナ・インスタンスはファイル・システムをマウントできず、コンテナ・インスタンスの作成に失敗します。

        2. 選択したマウント・ターゲットに1つ以上のファイル・ストレージ・ボリュームを追加します。ボリュームごとに、既存のエクスポートを選択するか、エクスポート・パスを指定してエクスポートを作成します。
        3. Oracle管理の暗号化または顧客管理の暗号化を選択します。

          顧客管理暗号化を使用するには、すでに存在するボールトおよびキーを選択します。

        4. サポートされている NFSv3マウントオプションを指定します。サポートされるオプションとその動作については、Supported Mount Optionsを参照してください。
        5. 「更新」を選択します。

        詳細は、Mounting File System Service Resourcesを参照してください。

      • 空のディレクトリーを管理:
        1. 「空のディレクトリの追加」を選択します。
        2. 名前を入力し、バッキング・ストアとして「エフェメラル・ストレージ」または「メモリー」を選択します。
        3. 必要に応じて、別の空のディレクトリを追加するか、「更新」を選択します。
      • 構成ファイルの管理:
        1. 「構成ファイルの追加」を選択します。
        2. 1つ以上のファイルを含む名前付きボリュームを追加します。

          ファイルごとに、ファイル名、オプションの相対パス、およびアップロードまたはインライン・コンテンツを指定します。相対パスが指定されていない場合、ファイルはボリュームのルートで使用できます。

        3. 「更新」を選択します。
    2. 「次へ」を選択します。

    4. コンテナ

    「コンテナ」セクションでは、コンテナ・インスタンスに対して最大60個のコンテナを追加できます。

    「コンテナの追加」を選択し、次のコンテナ情報を指定します:

    1. 名前:最初のコンテナの表示名を入力します。名前は後で追加または変更できます。Oracle Cloud Identifier (OCID)によってコンテナが一意に識別されるため、この名前は一意である必要があります。機密情報を入力しないでください。
    2. イメージ: 「イメージの選択」を選択し、コンテナ・イメージ・ソースを選択します:
      • OCI Container Registry:コンテナ・イメージを格納、共有および管理できるようにするOracle管理レジストリ。

        1. リポジトリ・コンパートメント、リポジトリおよびイメージ・タグを選択します。

          詳細は、コンテナ・レジストリを参照してください。

        2. 「イメージの選択」を選択します。
      • 外部レジストリ:サードパーティ・ベンダーが提供するイメージを選択できる、Docker Hubなどの外部レジストリ。

        1. レジストリ・ホスト名、リポジトリおよびイメージ・タグを選択します。
        2. レジストリ資格証明タイプを選択します。コンテナ・イメージは、イメージをプルするために認可が必要なプライベート・レジストリまたはリポジトリでホストできます。

          「なし」「基本」または「OCI Vaultシークレット」のいずれかを選択できます。

        3. 「基本」を選択した場合は、レジストリのユーザー名とパスワードを指定します。
        4. 「OCI Vaultシークレット」を選択した場合は、ボールト・シークレットを介してレジストリのユーザー名とパスワードを指定します。ボールト・コンパートメント、ボールトを指定し、シークレットを定義します。

          詳細は、Vault Secrets for Image Pull Authorizationを参照してください。

        5. 「イメージの選択」を選択します。
    3. 環境変数:コンテナで使用される環境変数を設定します。

      コンテナ・イメージは、実行をカスタマイズするための環境変数をサポートしています。たとえば、公式のNGINXイメージではNGINX_HOSTおよびNGINX_PORT環境変数がサポートされるため、値を次のように設定して実行をカスタマイズできます。

      NGINX_HOST=foobar.com
      NGINX_PORT=80
      1. 「+別の変数」を選択します。
      2. キーと値のペアを入力します。
    4. ストレージ: ストレージ・ステップで作成したストレージから最大60個のストレージ・マウントを追加します。
      1. 「ストレージの追加」を選択します。
      2. ストレージ、マウント・パスおよびサブパスを入力します。
      3. ストレージが読取り専用かどうかを指定します。
      4. 「ストレージの追加」を選択して、別のストレージ・マウントを追加します。
    5. 起動オプション:コンテナ・エントリ・ポイントの作業ディレクトリ、コマンドおよび引数を構成します。作業ディレクトリは絶対パスである必要があります。
    6. セキュリティ:コンテナのセキュリティ設定を指定できます。
      1. コンテナのルート・ファイルシステムに読取り専用アクセスを適用するには、「読取り専用ルート・ファイルシステムの有効化」を選択します。
      2. コンテナがrootユーザーとして実行されないようにするには、「root以外のユーザーとして実行」を選択します。
        • 「root以外のユーザーとして実行」を有効にすると、「ユーザーID」の値を0に設定できません。
      3. [ユーザーID]フィールドと [グループID]フィールドを使用して、コンテナのエントリ ポイント プロセスを実行するためのユーザーID (ID)とグループID (GID)を設定します。
        • 「グループID」を設定する前に、「ユーザーID」を設定する必要があります。
        • 「ユーザーID」および「グループID」の値は、0から65535の整数にする必要があります。デフォルト値は0です。
        • 指定した [ユーザーID]および [グループID]の値は、コンテナ イメージで設定された値を上書きします。「ユーザーID」の値が指定されていない場合、コンテナのエントリ・ポイント・プロセスはrootユーザーとして実行されます。
      4. 「Linux機能の構成」で、コンテナのLinux機能を構成します。デフォルトでは、コンテナは削除対象として選択できる複数の機能で起動します。

        「削除機能」フィールドと「追加機能」フィールドの両方で「すべて」の値がサポートされ、すべての機能を使用可能または削除できます。値 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 カーネル監査ログにレコードを書き込みます。
    7. 「追加」を選択します。
    8. インスタンスに別のコンテナを構成するには、「コンテナの追加」を選択し、前述のステップを繰り返します。
    9. 「次へ」を選択して、コンテナ・インスタンスとそのコンテナを確認します。

    レビューの詳細

    1. 選択を確認します。
    2. 「編集」を選択してセクションに戻り、その構成を変更します。
    3. 「作成」を選択して、コンテナ・インスタンスを作成します。

      コンテナ・インスタンスが作成されると、コンテナ・インスタンスの詳細ページが表示されます。コンテナ・インスタンス詳細を参照してください。

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