Lewati ke konten utama

CLI Tutorial: Container Volumes

Fungsi manajemen Container (Docker) Volumes di platform memungkinkan pembuatan local storage yang persisten, dirancang agar tidak terpengaruh oleh berbagai operasi selama siklus hidup container. Pembuatan penyimpanan semacam itu tepat di dalam container membantu memastikan tingkat integritas yang tinggi dan mencegah kehilangan data penting.

Menggunakan platform CLI, Anda dapat mengkonfigurasi container volumes dengan dua cara:

Configure Volumes via Environment Topology

Cara pertama untuk membuat volume container yang akan kita pertimbangkan adalah mendefinisikannya langsung selama pembuatan environment (atau saat mengubah topologinya). Jadi, untuk mengatur storage container lokal Anda, parameter berikut dapat digunakan saat mengeksekusi metode CLI yang sesuai:

  • volumes - menetapkan daftar volume lokal
  • volumeMounts - memungkinkan untuk mengkonfigurasi mount points
  • volumesFrom - mengimpor volume yang ada dari node di akun Anda
tip

Parameter ini juga dapat digunakan dalam manifest JPS Anda.

1. Semua parameter ini harus dinyatakan dalam bagian docker yang sesuai. Misalnya, parameter pertama dapat diatur dengan cara berikut:

... "docker":{... "volumes": ["{local_volume}", "{local_volume}", ...]}
CLI volumes parameter

Di sini, {local_volume} adalah placeholder untuk path volume lokal Anda yang harus ditempatkan di dalam container. Anda dapat menentukan beberapa volume sekaligus menggunakan pemisah koma.

Misalnya, dalam gambar di atas, kami membuat environment dengan image jelastic/haproxy di dalamnya dan dua volume lokal terlampir, yaitu: /my_volume_1 dan /my_volume_2.

2. Parameter kedua volumeMounts memiliki sintaksis berikut:

... "docker":{... "volumeMounts" : {"{local_path}" : {"sourcePath" : "{remote_path}", "sourceNodeId" : "{node_ID}", "readOnly" : {true/false}}, ...}}
CLI volumeMounts parameter

Data yang disorot harus diubah ke nilai yang sesuai:

  • {local_path} - path ke folder di dalam nodes dari layer environment tertentu di mana konten yang dipasang harus ditempatkan
  • {remote_path} - lokasi direktori yang diperlukan di container remote (yaitu alamat data sumber)
  • {node_ID} - identifier unik dari node tempat data Anda akan dipasang
catatan

Sebagai alternatif untuk parameter “sourceNodeId”, Anda juga bisa menggunakan “sourceNodeGroup” - mendefinisikan layer environment, yang master node akan digunakan sebagai sumber untuk operasi mount “sourceHost” - eksternal IP atau nama domain kustom dari server penyimpanan data (termasuk eksternal).

  • _**{true/false}` - nilai yang sesuai menentukan hak read only atau read & write untuk nodes klien saat mengoperasikan data yang dipasang (false secara default)

Sebagai contoh, menggunakan perintah pada gambar di atas, kami telah memasang data dari node 111109 dari akun yang digunakan.

3. Dengan parameter terakhir volumesFrom, dimungkinkan untuk memindahkan semua volume yang ada dari satu node ke node lainnya (yaitu menyalinnya), misalnya:

... "docker":{... "volumesFrom":[{"sourceNodeId" : "{node_ID}", "readOnly" : {true/false}, "volumes" : ["{local_volume}", "{local_volume}", ...]}]}
CLI volumesFrom parameter

Di sini:

  • {node_ID} - identifier unik dari node tempat data harus dipasang
catatan

Sebagai alternatif, dimungkinkan untuk menggunakan “sourceNodeGroup” untuk mendefinisikan layer environment, yang master node akan digunakan sebagai sumber untuk operasi mount.

  • {true/false} - nilai yang sesuai menentukan hak read only atau read & write untuk nodes klien saat mengoperasikan data yang dipasang (false secara default)
  • {local_volume} - daftar volume yang akan dipasang (jika tidak ditentukan, semua volume akan disalin)

Dengan cara seperti itu, menggunakan perintah pada gambar di atas, kami telah menambahkan layer baru dengan dua image Docker jelastic/tomcat8 dan memasang volume ke node jelastic/haproxy yang ada.

Direct Volumes Management

Platform ini menyediakan sejumlah metode CLI, yang dikembangkan khusus untuk manajemen volume dan tidak mempengaruhi topologi environment lainnya:

1. Yang pertama adalah perintah AddContainerVolume, yang memungkinkan Anda menambahkan volume baru ke environment yang ada:

~/jelastic/environment/control/addcontainervolume --envName {env_name} --nodeId {node_ID} --path {path}

di mana:

  • {env_name} - nama domain dari environment yang ingin Anda modifikasi
  • {node_ID} - identifier unik dari node dalam environment yang dipilih, container volume baru harus ditambahkan
  • {path} - path dalam sistem file lokal Anda ke direktori volume Anda
CLI AddContainerVolume command

2. Proses penghapusan ini benar-benar mirip dengan proses penambahan yang baru saja dijelaskan dan menggunakan parameter yang sama:

~/jelastic/environment/control/removecontainervolume --envName {env_name} --nodeId {node_ID} --path {path}
CLI RemoveContainerVolume command

3. Jika Anda perlu menambahkan volume tidak ke node tunggal, tetapi ke seluruh layer environment sekaligus, metode AddContainerVolumeByGroup akan lebih cocok:

~/jelastic/environment/control/addcontainervolumebygroup --envName {env_name} --nodeGroup {node_group} --path {path}

Di sini, parameter {node_group} memungkinkan untuk mendefinisikan layer dalam environment saat ini (misalnya cp, bl, storage, dll.), nodes yang harus dimodifikasi dengan volume baru.

CLI AddContainerVolumeByGroup command

4. Tentu saja, Anda juga dapat menghapus volume untuk seluruh layer dalam satu perintah:

~/jelastic/environment/control/removecontainervolumebygroup --envName {env_name} --nodeGroup {node_group} --path {path}
CLI RemoveContainerVolumeByGroup command

Dengan cara seperti itu, menggunakan metode CLI ini, Anda dapat dengan mudah mengendalikan volume container Anda dan mengelolanya dalam hitungan menit. Dan jika Anda memerlukan penambahan beberapa Mount Points bersama dengan volume, gunakan panduan yang terhubung untuk instruksi terperinci.

Jika Anda mengalami masalah saat bekerja dengan platform CLI, jangan ragu untuk meminta bantuan teknis dari para ahli kami di Stackoverflow.

Baca Juga

Ikuti panduan terkait untuk tutorial platform CLI lainnya: