バインドマウント - Amazon Elastic Container Service

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

バインドマウント

バインドマウントでは、Amazon EC2 インスタンスなどのホスト上のファイルまたはディレクトリがコンテナにマウントされます。バインドマウントは、Fargate インスタンスと Amazon EC2 インスタンスの両方でホストされているタスクでサポートされています。バインドマウントは、それらを使用するコンテナのライフサイクルに関連付けられます。タスクが停止するなど、バインドマウントを使用するすべてのコンテナが停止すると、データが削除されます。Amazon EC2 インスタンスでホストされているタスクの場合、タスク定義で hostおよびオプションの sourcePath 値を指定することで、データをホスト Amazon EC2 インスタンスのライフサイクルに関連付けることができます。詳細については、Docker ドキュメントの 「バインドマウントの使用」を参照してください。

バインドマウントの一般的なユースケースは以下のとおりです。

  • 1 つ以上のコンテナにマウントするための空のデータボリュームを提供する。

  • 1 つ以上のコンテナにホストデータボリュームをマウントする。

  • ソースコンテナのデータボリュームを、同じタスク内の他のコンテナと共有する。

  • Dockerfile から 1 つ以上のコンテナにパスとその内容を公開する。

バインドマウントを使用するときの考慮事項

バインドマウントを使用する際には、以下の点を考慮してください。

  • プラットフォームバージョン 1.4.0以降 (Linux) 1.0.0または 以降 (Windows) AWS Fargate を使用して でホストされているタスクの場合、デフォルトでは、バインドマウント用に最低 20 GiB のエフェメラルストレージを受け取ります。エフェメラルストレージの総量は、最大 200 GiB まで増やすことができます。ephemeralStorage パラメータを、タスク定義に追加します。プラットフォームバージョン 1.0.0 以降を使用している Fargate でホストされている Amazon ECS Windows タスクは、デフォルトで、最低 20 GiB のエフェメラルストレージを受け取ります。エフェメラルストレージの総量は、タスク定義で ephemeralStorage パラメータを指定することによって、最大 200 GiB まで増やすことができます。

  • タスクの実行時に Dockerfile のファイルをデータボリュームに公開するために、Amazon ECS データプレーンが VOLUME ディレクティブを探します。VOLUME ディレクティブで指定された絶対パスが、タスク定義で指定された containerPath と同じである場合、VOLUME ディレクティブパス内のデータがデータボリュームにコピーされます。次の Dockerfile の例では、/var/log/exported ディレクトリにある examplefile という名前のファイルがホストに書き込まれ、その後でコンテナ内にマウントされます。

    FROM public.ecr.aws/amazonlinux/amazonlinux:latest RUN mkdir -p /var/log/exported RUN touch /var/log/exported/examplefile VOLUME ["/var/log/exported"]

    デフォルトでは、ボリューム許可は 0755 に設定され、所有者は root に設定されます。これらのアクセス許可は Dockerfile でカスタマイズできます。次の例では、ディレクトリの所有者を node として定義しています。

    FROM public.ecr.aws/amazonlinux/amazonlinux:latest RUN yum install -y shadow-utils && yum clean all RUN useradd node RUN mkdir -p /var/log/exported && chown node:node /var/log/exported RUN touch /var/log/exported/examplefile USER node VOLUME ["/var/log/exported"]
  • Amazon EC2 インスタンスでホストされているタスクで、host 値と sourcePath 値が指定されていない場合には、Docker デーモンがバインドマウントを自動的に管理します。このバインドマウントを参照するコンテナが存在しない場合、このマウントは、Amazon ECS コンテナエージェントのタスククリーンアップサービスによって最終的に削除されます。デフォルトでは、この処理はコンテナが終了してから 3 時間後に実行されま。また、この期間は ECS_ENGINE_TASK_CLEANUP_WAIT_DURATION エージェント変数により設定することも可能です。詳細については、「Amazon ECS コンテナエージェントの設定」を参照してください。コンテナのライフサイクルを通じてこのデータを永続化する必要がある場合は、バインドマウントの sourcePath 値を指定します。