Exemples de volumes Docker pour Amazon ECS - Amazon Elastic Container Service

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Exemples de volumes Docker pour Amazon ECS

Les exemples suivants montrent comment fournir un stockage éphémère pour un conteneur et comment fournir un volume partagé pour plusieurs conteneurs, et comment fournir un stockage persistant NFS pour un conteneur.

Pour fournir un stockage éphémère à un conteneur à l'aide d'un volume Docker

Dans cet exemple, un conteneur utilise un volume de données vide qui est éliminé une fois la tâche terminée. Un exemple d'utilisation est que vous pourriez avoir un conteneur qui doit accéder à un emplacement de stockage de fichiers de travail pendant une tâche. Cette tâche peut être réalisée à l'aide d'un volume Docker.

  1. Dans la section volumes de la définition de tâche, définissez un volume de données avec les valeurs name et DockerVolumeConfiguration. Dans cet exemple, nous spécifions la portée sous la forme task. Le volume est donc supprimé après l'arrêt de la tâche et il utilise le pilote local intégré.

    "volumes": [ { "name": "scratch", "dockerVolumeConfiguration" : { "scope": "task", "driver": "local", "labels": { "scratch": "space" } } } ]
  2. Dans la section containerDefinitions, définissez un conteneur avec des valeurs mountPoints qui font référence au nom du volume défini et la valeur containerPath sur laquelle monter le volume sur le conteneur.

    "containerDefinitions": [ { "name": "container-1", "mountPoints": [ { "sourceVolume": "scratch", "containerPath": "/var/scratch" } ] } ]
Pour fournir un stockage persistant à plusieurs conteneurs à l'aide d'un volume Docker

Dans cet exemple, vous voulez un volume partagé qui sera utilisé par plusieurs conteneurs et vous souhaitez qu'il persiste après l'arrêt des tâches qui l'utilisent. Le pilote local intégré est en cours d'utilisation. Ainsi, le volume est toujours lié au cycle de vie de l'instance de conteneur.

  1. Dans la section volumes de la définition de tâche, définissez un volume de données avec les valeurs name et DockerVolumeConfiguration. Dans cet exemple, spécifiez une portée shared pour que le volume persiste, définissez autoprovision sur true. C'est ainsi que le volume est créé pour être utilisé. Ensuite, utilisez également le pilote local intégré.

    "volumes": [ { "name": "database", "dockerVolumeConfiguration" : { "scope": "shared", "autoprovision": true, "driver": "local", "labels": { "database": "database_name" } } } ]
  2. Dans la section containerDefinitions, définissez un conteneur avec des valeurs mountPoints qui font référence au nom du volume défini et la valeur containerPath sur laquelle monter le volume sur le conteneur.

    "containerDefinitions": [ { "name": "container-1", "mountPoints": [ { "sourceVolume": "database", "containerPath": "/var/database" } ] }, { "name": "container-2", "mountPoints": [ { "sourceVolume": "database", "containerPath": "/var/database" } ] } ]
Pour fournir un stockage permanent NFS pour un conteneur à l'aide d'un volume Docker

Dans cet exemple, un conteneur utilise un volume de données NFS qui est automatiquement monté lorsque la tâche démarre et démonté lorsque la tâche s'arrête. Cela utilise le pilote local intégré Docker. Un exemple d'utilisation est que vous pourriez avoir un stockage NFS local et que vous devez y accéder à l'aide d'une tâche ECS Anywhere. Cela peut être réalisé à l'aide d'un volume Docker avec option de pilote NFS.

  1. Dans la section volumes de la définition de tâche, définissez un volume de données avec les valeurs name et DockerVolumeConfiguration. Dans cet exemple, spécifiez une portée task de telle sorte que le volume soit démonté une fois la tâche terminée. Utilisez le pilote local et configurez le driverOpts avec le type, device et les options o en conséquence. Remplacez NFS_SERVER par le point de terminaison du serveur NFS.

    "volumes": [ { "name": "NFS", "dockerVolumeConfiguration" : { "scope": "task", "driver": "local", "driverOpts": { "type": "nfs", "device": "$NFS_SERVER:/mnt/nfs", "o": "addr=$NFS_SERVER" } } } ]
  2. Dans la section containerDefinitions, définissez un conteneur avec des valeurs mountPoints qui font référence au nom du volume défini et la valeur containerPath sur laquelle monter le volume sur le conteneur.

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