すべてのプロダクト
Search
ドキュメントセンター

Elastic Container Instance:Elastic Container Instance (ECI) へのクラウドディスクボリュームのマウント

最終更新日:Apr 02, 2026

デフォルトでは、コンテナストレージは一時的です。コンテナ内に書き込まれたデータは、コンテナが再起動すると失われます。ディスクボリュームをマウントすることで、再起動後もデータを永続化できます。本トピックでは、CreateContainerGroup API を使用して Elastic Container Instance (ECI) を作成する際に、ディスクをボリュームとしてマウントする方法について説明します。

前提条件

開始する前に、以下の条件を満たしていることを確認してください。

  • 対象の可用性ゾーンで実行中の Elastic Container Instance (ECI)

  • インスタンスと同じ可用性ゾーンに存在する従量課金ディスク(静的プロビジョニング用)

制限事項

  • マウント可能なのは従量課金ディスクのみです。詳細については、「ブロックストレージの課金」をご参照ください。

  • 1 つのディスクは、同時に 1 つの Elastic Container Instance (ECI) のみにマウント可能です。ディスクの共有はサポートされていません。

  • 各 Elastic Container Instance (ECI) は、最大 6 個のディスクボリュームをサポートします。

  • ディスクは、Elastic Container Instance (ECI) と同じ可用性ゾーンに存在する必要があります。クロスゾーンでのマウントはサポートされていません。マウント前に、対象のゾーンでディスクを作成してください。

  • マルチマウント機能が有効化された NVMe ディスク(NVMe 共有ディスク)はマウントできません。

  • パーティションが設定されたディスクはマウントできません。スナップショットからディスクを作成する場合、そのスナップショットに基づくディスクにパーティションが含まれていると、マウントできません。

仕組み

ディスクボリュームは、alicloud/disk ドライバーを備えた FlexVolume プラグインを使用します。CreateContainerGroup を呼び出す際には、以下の手順を実行します。

  1. Volume.N.* パラメーターを使用してボリュームを宣言します。このとき、ディスクのソース(既存のディスクまたは新規作成ディスク)を指定します。

  2. Container.N.VolumeMount.N.* パラメーターを使用して、宣言済みのボリュームをコンテナにマウントします。このとき、マウントパスおよび動作を指定します。

2 種類のプロビジョニングモードでは、ディスクの取得方法が異なります。

モード使用タイミング主要パラメーター
静的プロビジョニングアタッチする既存のディスクがすでに存在する場合volumeIdFlexVolume.Options
動的プロビジョニングECI 起動時に新規ディスクを作成する場合volumeSizeFlexVolume.Options

ボリュームの宣言

ディスクボリュームを宣言するには、以下の Volume.N.* パラメーターを設定します。

パラメーター説明
Volume.N.Name文字列disk-demoボリュームの名前です。マウント時に Container.N.VolumeMount.N.Name で参照されます。
Volume.N.Type文字列FlexVolumeFlexVolume を指定し、FlexVolume プラグインを使用します。
Volume.N.FlexVolume.Driver文字列alicloud/diskAlibaba Cloud ディスクをマウントする場合は、alicloud/disk を指定します。
Volume.N.FlexVolume.FsType文字列ext4ファイルシステムの種類です。有効な値: ext4ext3xfsvfat。デフォルト値:ext4
Volume.N.FlexVolume.Options文字列{"volumeId":"d-bp1****"}ディスク構成を含む JSON 文字列です。利用可能なキーについては、以降のセクションをご参照ください。

静的プロビジョニング — 既存のディスクを使用

既存のディスクをアタッチするには、FlexVolume.Options 内に volumeId を指定します。ディスクは Pending 状態であり、かつインスタンスと同じ可用性ゾーンに存在する必要があります。volumeId を指定した場合、他のディスク属性パラメーター(volumeSizeperformanceLevel など)は無視されます。また、volumeId を指定しない場合は、必ず volumeSize を指定してください。

オプションキー説明
volumeIdアタッチするディスクの ID です。

動的プロビジョニング — 新規ディスクを作成

volumeId を省略し、代わりに volumeSize を指定することで、ECI 起動時に新規ディスクが自動的に作成されます。システムは自動的にエンハンスト SSD (ESSD) を使用します。ディスクカテゴリは指定できません。

オプションキー必須説明
volumeSizeはいディスクサイズ(GiB)。有効な値:20~32768。また、snapshotId も指定した場合、実際のディスクサイズは volumeSize とスナップショットベースのディスクサイズのうち大きい方になります。
performanceLevelいいえESSD のパフォーマンスレベル (PL) です。詳細については、「ESSD」をご参照ください。
deleteWithInstanceいいえインスタンスがリリースされたときにディスクもリリースするかどうかを指定します。デフォルト値:true
encryptedいいえディスクを暗号化するかどうかを指定します。デフォルト値:false。詳細については、「暗号化の概要」をご参照ください。
kmsKeyIdいいえディスク暗号化に使用する Key Management Service (KMS) キーの ID です。
snapshotIdいいえディスク作成時に使用するスナップショットの ID です。詳細については、「概要」をご参照ください。
tagsいいえディスクにアタッチするタグです。最大 20 個まで指定可能です。形式:"tagkey1:tagvalue1,tagkey2:tagvalue2"

コンテナへのボリュームのマウント

ボリュームを宣言した後は、Container.N.VolumeMount.N.* パラメーターを使用して、コンテナにマウントします。

パラメーター説明
Container.N.VolumeMount.N.Name文字列disk-demoマウント対象のボリューム名です。Volume.N.Name の値と一致する必要があります。
Container.N.VolumeMount.N.MountPath文字列/dataコンテナ内のボリュームマウント先パスです。このパスに既存のデータがある場合、ボリュームによって隠蔽されます。
Container.N.VolumeMount.N.SubPath文字列/logsマウント対象のボリューム内のサブディレクトリです。同一ボリュームの異なるサブディレクトリを、複数のコンテナにそれぞれマウントする場合に使用します。
Container.N.VolumeMount.N.ReadOnlyブール値falseマウントパスを読み取り専用にするかどうかを指定します。デフォルト値:false
Container.N.VolumeMount.N.MountPropagation文字列Noneコンテナとホスト間でマウントが共有されるかどうかを制御します。デフォルト値:None。以下の表をご参照ください。

マウント伝搬モード

コンテナが認識する内容ホストが認識する内容
Noneアタッチ時のマウントのみ可視です。このボリュームまたはそのサブディレクトリに対するその後のマウントは、コンテナ内では可視になりません。コンテナ内で作成されたマウントは、ホスト上では可視になりません。
HostToContainerホスト上でこのボリュームまたはそのサブディレクトリに対して行われたその後のすべてのマウントが、コンテナ内で可視になります。コンテナ内で作成されたマウントは、ホスト上では可視になりません。
Bidirectionalホスト上でこのボリュームまたはそのサブディレクトリに対して行われたその後のすべてのマウントが、コンテナ内で可視になります。コンテナ内で作成されたすべてのマウントが、ホストおよび同一ボリュームを使用するすべての Elastic Container Instance (ECI) のすべてのコンテナに伝搬されます。
init コンテナにボリュームをマウントする場合は、Container の代わりに InitContainer を使用して、同様のパラメーターを指定します。

サンプル

以下のサンプルでは、CreateContainerGroup に渡す主要なパラメーターを示します。

サンプル 1:静的プロビジョニング(既存のディスク)

ContainerGroupName=test-disk1
SecurityGroupId=sg-bp1daxpbz9lzpvvc****
VSwitchId=vsw-bp1gds63lmlm7ib05****

# ボリュームの宣言
Volume.1.Name=disk-demo
Volume.1.Type=FlexVolume
Volume.1.FlexVolume.Driver=alicloud/disk
Volume.1.FlexVolume.FsType=ext4
Volume.1.FlexVolume.Options={"volumeId":"d-2zebuamrpar7xnj****"}

# コンテナへのボリュームのマウント
Container.1.Name=nginx
Container.1.Image=registry-vpc.cn-hangzhou.aliyuncs.com/eci_open/nginx:1.14.2
Container.1.VolumeMount.1.Name=disk-demo
Container.1.VolumeMount.1.MountPath=/data
重要

この操作を実行する前に、ディスクが Pending 状態であり、かつインスタンスと同じ可用性ゾーンに存在することを確認してください。

サンプル 2:動的プロビジョニング(新規ディスク)

ContainerGroupName=test-disk2

# ボリュームの宣言
Volume.1.Name=disk-demo
Volume.1.Type=FlexVolume
Volume.1.FlexVolume.Driver=alicloud/disk
Volume.1.FlexVolume.FsType=ext4
Volume.1.FlexVolume.Options={"volumeSize":"50","tags":"test:eci"}

# コンテナへのボリュームのマウント
Container.1.Name=nginx
Container.1.Image=registry-vpc.cn-hangzhou.aliyuncs.com/eci_open/nginx:1.14.2
Container.1.VolumeMount.1.Name=disk-demo
Container.1.VolumeMount.1.MountPath=/data

インスタンス起動時に、50 GiB の ESSD が自動的に作成されます。デフォルトでは、インスタンスと共にディスクがリリースされます(deleteWithInstance: true)。

次のステップ