Volume emptyDir adalah direktori kosong yang dibagikan oleh kontainer dalam kelompok kontainer yang sama untuk penyimpanan data sementara. Gunakan volume ini untuk bertukar data antar kontainer atau memperluas memori bersama bagi beban kerja yang intensif memori.
Kasus penggunaan
Ruang sementara (Scratch space): Ruang kerja sementara untuk tugas seperti pengurutan berbasis disk atau pemrosesan file antara.
Berbagi data sidecar: Kontainer sidecar mengambil atau memproses data yang disediakan oleh kontainer aplikasi utama.
Perluasan memori bersama: Tingkatkan ukuran
/dev/shmuntuk proses yang bergantung pada memori bersama POSIX.
Siklus hidup data
Volume emptyDir bersifat ephemeral. Data dihapus ketika Elastic Container Instance (ECI) dihapus atau di-restart.
Jika Anda menggunakan
Memorysebagai media penyimpanan, tentukan ukuran volume dengan hati-hati untuk menghindari konflik sumber daya.
Mengonfigurasi volume emptyDir menggunakan API
Saat memanggil operasi API CreateContainerGroup untuk membuat instans ECI, gunakan parameter terkait Volume untuk mendefinisikan volume dan parameter terkait Container.VolumeMount untuk memasangnya ke kontainer. Untuk referensi API lengkap, lihat CreateContainerGroup.
Mendefinisikan volume
Tentukan tipe dan nama volume terlebih dahulu, lalu konfigurasikan parameter khusus sesuai tipe tersebut.
| Parameter | Tipe | Contoh | Deskripsi |
|---|---|---|---|
Volume.N.Name | String | emptydir-demo | Nama volume N. |
Volume.N.Type | String | EmptyDirVolume | Atur ke EmptyDirVolume untuk membuat volume emptyDir. |
Volume.N.EmptyDirVolume.Medium | String | Memory | Media penyimpanan untuk volume. Biarkan kosong untuk menggunakan sistem file node (default). Nilai yang valid: Memory (menggunakan memori sebagai media penyimpanan), LocalRaid0 (menggabungkan disk lokal menjadi RAID 0; hanya tersedia untuk instans yang memiliki disk lokal terpasang — lihat Buat instans dengan disk lokal). |
Volume.N.EmptyDirVolume.SizeLimit | String | 256Mi | Ukuran penyimpanan volume. Selalu sertakan satuan. Kami menyarankan menggunakan Gi atau Mi. |
Untuk mengubah ukuran shm suatu instans, aturMediumkeMemory, tetapkanSizeLimitke ukuran target, dan pasang volume ke/dev/shm. Lihat Contoh 2 untuk konfigurasi lengkapnya.
Memasang volume ke kontainer
Setelah mendefinisikan volume, pasang volume tersebut menggunakan parameter terkait VolumeMount.
| Parameter | Tipe | Contoh | Deskripsi |
|---|---|---|---|
Container.N.VolumeMount.N.Name | String | emptydir-demo | Nama volume yang akan dipasang. Harus sesuai dengan nilai Volume.N.Name. |
Container.N.VolumeMount.N.MountPath | String | /data1 | Jalur pemasangan di dalam kontainer. Data yang sudah ada di jalur ini akan ditimpa oleh volume. Verifikasi jalur ini sebelum melakukan deployment. |
Container.N.VolumeMount.N.SubPath | String | /logs | Subdirektori dari volume yang akan dipasang. Gunakan ini untuk memasang subdirektori berbeda dari volume yang sama ke kontainer yang berbeda. |
Container.N.VolumeMount.N.ReadOnly | Boolean | false | Apakah jalur pemasangan bersifat read-only. Default: false. |
Container.N.VolumeMount.N.MountPropagation | String | None | Mode propagasi pemasangan. Nilai yang valid: None (default), HostToContainer, Bidirectional. Lihat tabel di bawah. |
Mode propagasi pemasangan:
| Nilai | Perilaku |
|---|---|
None | Pemasangan volume tidak menerima pemasangan berikutnya pada volume ini atau subdirektorinya. |
HostToContainer | Pemasangan volume menerima semua pemasangan berikutnya pada volume ini atau subdirektorinya. |
Bidirectional | Seperti HostToContainer, ditambah semua pemasangan yang dibuat oleh kontainer dipropagasikan kembali ke host dan ke semua kontainer dari semua Elastic Container Instance yang menggunakan volume yang sama. |
Untuk memasang volume ke init container, gunakan parameter yang sama tetapi gantiContainerdenganInitContainer.
Mengonfigurasi volume emptyDir menggunakan konsol
Pada halaman pembuatan Elastic Container Instance, definisikan volume di bagian Container Group Configurations dan pasang volume tersebut di bagian Container Configurations.
Mendefinisikan volume
Pada langkah Basic Settings, di bagian Container Group Configurations, klik Advanced Settings.
Di bawah Storage, klik tab Temporary Directories, lalu klik Add.
Masukkan nama volume emptyDir di bidang Name.

Memasang volume ke kontainer
Pada langkah Basic Settings, di bagian Container Configurations, pilih kontainer dan klik Advanced Settings.
Aktifkan Storage dan klik Add.
Hanya volume yang telah didefinisikan di bagian Container Group Configurations yang tersedia untuk ditambahkan.

Untuk memasang volume ke beberapa kontainer, ulangi langkah-langkah ini untuk setiap kontainer.
Contoh konfigurasi
Contoh berikut menunjukkan parameter API CreateContainerGroup untuk skenario umum penggunaan volume emptyDir.
Contoh 1: Berbagi data antar kontainer
Pasang volume emptyDir yang sama ke dua kontainer agar keduanya dapat bertukar file melalui direktori bersama.
ContainerGroupName=test-emptydir
# Definisikan volume bersama.
Volume.1.Name=emptydir-demo
Volume.1.Type=EmptyDirVolume
# Pasang volume ke Kontainer 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
# Pasang volume yang sama ke Kontainer 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=/data2Kedua jalur /data1 (Kontainer 1) dan /data2 (Kontainer 2) kosong saat startup. File yang ditulis di satu kontainer dapat langsung dibaca dari kontainer lainnya.
Contoh 2: Memperluas ukuran memori bersama (shm)
Atur media penyimpanan ke Memory dan pasang volume ke /dev/shm untuk meningkatkan ukuran memori bersama instans.
ContainerGroupName=test-emptydir
# Definisikan volume berbasis memori.
Volume.1.Name=emptydir-shm
Volume.1.Type=EmptyDirVolume
Volume.1.EmptyDirVolume.Medium=Memory
Volume.1.EmptyDirVolume.SizeLimit=256Mi
# Pasang ke /dev/shm.
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/shmKonfigurasi ini mengatur ukuran shm menjadi 256 MiB.