Contoh volume Docker untuk Amazon ECS - Amazon Elastic Container Service

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Contoh volume Docker untuk Amazon ECS

Contoh berikut menunjukkan cara menyediakan penyimpanan sementara untuk wadah dan cara menyediakan volume bersama untuk beberapa conatiner, dan cara menyediakan penyimpanan persisten NFS untuk sebuah wadah.

Untuk menyediakan penyimpanan sementara untuk wadah menggunakan volume Docker

Dalam contoh ini, wadah menggunakan volume data kosong yang dibuang setelah tugas selesai. Salah satu contoh kasus penggunaan adalah Anda mungkin memiliki wadah yang perlu mengakses beberapa lokasi penyimpanan file awal selama tugas. Tugas ini dapat dicapai dengan menggunakan volume Docker.

  1. Dalam ketentuan tugas bagian volumes, tentukan volume data dengan name dan nilai DockerVolumeConfiguration. Dalam contoh ini, kami menentukan ruang lingkup sebagai task jadi volume dihapus setelah tugas berhenti dan menggunakan built-in driver local.

    "volumes": [ { "name": "scratch", "dockerVolumeConfiguration" : { "scope": "task", "driver": "local", "labels": { "scratch": "space" } } } ]
  2. Di bagian containerDefinitions, mendefiniskan sebuah kontainer dengan nilai-nilai mountPoints yang mereferensikan nama volume yang didefinisikan dan nilai containerPath untuk memasang volume pada kontainer.

    "containerDefinitions": [ { "name": "container-1", "mountPoints": [ { "sourceVolume": "scratch", "containerPath": "/var/scratch" } ] } ]
Untuk menyediakan penyimpanan persisten untuk beberapa kontainer menggunakan volume Docker

Dalam contoh ini, Anda ingin volume bersama untuk beberapa kontainer untuk digunakan dan Anda ingin tetap ada setelah satu tugas yang menggunakannya dihentikan. localDriver bawaan sedang digunakan. Ini agar volume masih terikat dengan siklus hidup instance kontainer.

  1. Dalam ketentuan tugas bagian volumes, tentukan volume data dengan name dan nilai DockerVolumeConfiguration. Dalam contoh ini, tentukan shared cakupan sehingga volume tetap ada, setel penyediaan otomatis ke. true Ini agar volume dibuat untuk digunakan. Kemudian, gunakan juga local driver bawaan.

    "volumes": [ { "name": "database", "dockerVolumeConfiguration" : { "scope": "shared", "autoprovision": true, "driver": "local", "labels": { "database": "database_name" } } } ]
  2. Di bagian containerDefinitions, mendefiniskan sebuah kontainer dengan nilai-nilai mountPoints yang mereferensikan nama volume yang didefinisikan dan nilai containerPath untuk memasang volume pada kontainer.

    "containerDefinitions": [ { "name": "container-1", "mountPoints": [ { "sourceVolume": "database", "containerPath": "/var/database" } ] }, { "name": "container-2", "mountPoints": [ { "sourceVolume": "database", "containerPath": "/var/database" } ] } ]
Untuk menyediakan penyimpanan persisten NFS untuk wadah menggunakan volume Docker

Dalam contoh ini, kontainer menggunakan volume data NFS yang dipasang secara otomatis saat tugas dimulai dan dilepas saat tugas berhenti. Ini menggunakan local driver bawaan Docker. Salah satu contoh kasus penggunaan adalah Anda mungkin memiliki penyimpanan NFS lokal dan perlu mengaksesnya dari tugas ECS Anywhere. Ini dapat dicapai dengan menggunakan volume Docker dengan opsi driver NFS.

  1. Dalam ketentuan tugas bagian volumes, tentukan volume data dengan name dan nilai DockerVolumeConfiguration. Dalam contoh ini, tentukan task cakupan sehingga volume dilepas setelah tugas berhenti. Gunakan local driver dan konfigurasikan driverOpts dengantype,device, dan o opsi yang sesuai. Ganti NFS_SERVER dengan endpoint server NFS.

    "volumes": [ { "name": "NFS", "dockerVolumeConfiguration" : { "scope": "task", "driver": "local", "driverOpts": { "type": "nfs", "device": "$NFS_SERVER:/mnt/nfs", "o": "addr=$NFS_SERVER" } } } ]
  2. Di containerDefinitions bagian tersebut, tentukan wadah dengan mountPoints nilai yang mereferensikan nama volume yang ditentukan dan containerPath nilai untuk memasang volume pada wadah.

    "containerDefinitions": [ { "name": "container-1", "mountPoints": [ { "sourceVolume": "NFS", "containerPath": "/var/nfsmount" } ] } ]