emptyDirボリュームは、データを一時的に保存し、コンテナ間でのデータ共有を容易にするために使用される空のディレクトリです。このトピックでは、emptyDirボリュームをエラスティックコンテナインスタンスにマウントする方法について説明します。
注意事項
emptyDirボリュームは、データを一時的に保存するために使用されます。 emptyDirボリュームがマウントされているエラスティックコンテナインスタンスが削除または再起動されると、emptyDirボリュームに保存されているデータは消去されます。
構成の説明(APIモード)
CreateContainerGroup APIオペレーションを呼び出してエラスティックコンテナインスタンスを作成する場合、ボリューム関連のパラメータを使用してボリュームを指定し、次にContainer.VolumeMount関連のパラメータを使用してボリュームをコンテナにマウントできます。以下の部分では、関連するパラメータについて説明します。詳細については、CreateContainerGroupを参照してください。
マウントするボリュームの指定
ボリューム関連のパラメータを使用してボリュームを指定する場合、最初にボリュームのタイプと名前を指定する必要があります。次に、Volume.N.Typeパラメータの値に基づいて、他のボリューム関連のパラメータを構成する必要があります。
パラメータ | タイプ | 例 | 説明 |
Volume.N.Name | String | emptydir-demo | ボリュームNの名前。 |
Volume.N.Type | String | EmptyDirVolume | EmptyDirVolumeの値は、emptyDirボリュームが作成されることを示します。 |
Volume.N.EmptyDirVolume.Medium | String | Memory | emptyDirボリュームNのストレージメディア。このパラメータはデフォルトで空であり、ノードファイルシステムがストレージメディアとして使用されることを示します。有効な値:
|
Volume.N.EmptyDirVolume.SizeLimit | String | 256Mi | emptyDirボリュームNのストレージサイズ。このパラメータを指定する場合は、単位が必要です。単位にはGiまたはMiを使用することをお勧めします。 |
Volume.N.EmptyDirVolume.MediumをMemoryに設定した場合、Volume.N.EmptyDirVolume.SizeLimitを設定してインスタンスのshmサイズを変更できます。両方のパラメータを設定した後、emptyDirボリュームをコンテナの/dev/shmディレクトリにマウントする必要があります。
ボリュームのマウント
ボリュームを指定した後、VolumeMount関連のパラメータを使用してボリュームをコンテナにマウントできます。
パラメータ | タイプ | 例 | 説明 |
Container.N.VolumeMount.N.Name | String | test-volume | コンテナNにマウントするボリュームNの名前。この値はVolume.N.Nameの値です。 |
Container.N.VolumeMount.N.MountPath | String | /usr/share | ボリュームがマウントされるディレクトリ。 このディレクトリの下のデータは、ボリューム上のデータによって上書きされます。この値が正しいことを確認してください。 |
Container.N.VolumeMount.N.SubPath | String | /usr/sub | ボリュームのサブディレクトリ。このパラメータは、インスタンスがコンテナの異なるサブディレクトリにマウントできる同じボリュームの異なるサブディレクトリを指定します。 |
Container.N.VolumeMount.N.ReadOnly | Boolean | false | マウントディレクトリが読み取り専用かどうかを指定します。デフォルト値:false。 |
Container.N.VolumeMount.N.MountPropagation | String | None | ボリュームNのマウント伝播設定。マウント伝播を使用すると、1つのコンテナにマウントされているボリュームを、同じエラスティックコンテナインスタンス内の他のコンテナ、または同じホスト上の他のエラスティックコンテナインスタンスに共有できます。有効な値:
デフォルト値:None。 |
ボリュームはinitコンテナにもマウントできます。必要なパラメータは、前の表のパラメータと似ています。ContainerをInitContainerに変更するだけです。
構成(コンソールモード)
エラスティックコンテナインスタンスをエラスティックコンテナインスタンス購入ページで作成する際に、コンテナグループ設定セクションでボリュームを指定し、コンテナ設定セクションでボリュームをコンテナにマウントできます。
マウントするボリュームの指定
コンテナーグループの構成 セクション ([コンテナー グループの作成] ウィザードの [基本設定] 手順) で、詳細設定 をクリックします。
ストレージ セクションで、一時ディレクトリ タブをクリックし、追加 をクリックします。
名前フィールドに、emptyDirボリュームの名前を入力します。

ボリュームのマウント
コンテナー構成 セクションの [基本設定] ステップで、コンテナーを選択し、コンテナーの [詳細設定] をクリックします。
ストレージをオンにして、追加をクリックします。
コンテナグループの構成セクションで指定したボリュームのみを追加できます。

複数のコンテナにボリュームをマウントする場合は、さらにコンテナを選択し、上記の手順を繰り返します。
構成例
次のコードは、CreateContainerGroup API オペレーションを呼び出して弾性コンテナインスタンスを作成し、emptyDir ボリュームをインスタンスにマウントする際に構成する必要のあるパラメータの例を示しています。詳細については、CreateContainerGroup を参照してください。
例1:コンテナ間でデータを共有する
ContainerGroupName=test-emptydir # マウントするボリュームを指定します。 Volume.1.Name=emptydir-demo Volume.1.Type=EmptyDirVolume # ボリュームをコンテナ1にマウントします。 Container.1.Name=nginx Container.1.Image=registry-vpc.cn-hangzhou.aliyuncs.com/eci_open/nginx:1.14.2 Container.1.VolumeMount.1.Name=emptydir-demo Container.1.VolumeMount.1.MountPath=/data1 # ボリュームをコンテナ2にマウントします。 Container.2.Name=busybox Container.2.Image=registry-vpc.cn-hangzhou.aliyuncs.com/eci_open/busybox:1.30 Container.2.Command.1=sleep Container.2.Arg.1=999999 Container.2.VolumeMount.1.Name=emptydir-demo Container.2.VolumeMount.1.MountPath=/data2上記の例では、emptyDirボリュームはコンテナ1とコンテナ2の間で共有されます。コンテナ1の
/data1ディレクトリとコンテナ2の/data2ディレクトリは、デフォルトでは空です。一方のコンテナのemptyDirボリュームに追加されたファイルには、もう一方のコンテナからアクセスできます。例2:インスタンスのshmサイズを変更する
ContainerGroupName=test-emptydir # マウントするボリュームを指定します。 Volume.1.Name=emptydir-shm Volume.1.Type=EmptyDirVolume Volume.1.EmptyDirVolume.Medium=Memory Volume.1.EmptyDirVolume.SizeLimit=256Mi # ボリュームをコンテナ1にマウントします。 Container.1.Name=nginx Container.1.Image=registry-vpc.cn-hangzhou.aliyuncs.com/eci_open/nginx:1.14.2 Container.1.VolumeMount.1.Name=emptydir-shm Container.1.VolumeMount.1.MountPath=/dev/shm上記の例では、EmptyDirVolume.MediumはMemoryに設定され、EmptyDirVolume.SizeLimitは256Miに設定され、emptyDirボリュームは
/dev/shmディレクトリにマウントされます。このようにして、エラスティックコンテナインスタンスのshmサイズは256 MiBに変更されます。