Comment augmenter la limite de stockage des volumes de conteneur Docker pour les instances Amazon ECS lancées à partir d’AMI Amazon Linux 1 ?
Date de la dernière mise à jour : 23/08/2019
Comment augmenter la limite de stockage des volumes de conteneur Docker pour les instances Amazon Elastic Container Service (Amazon ECS) lancées à partir d’images Amazon Machine Image (AMI) Amazon Linux 1 ?
Brève description
Par défaut, Docker alloue 10 gibioctets (Gio) de stockage à chaque volume créé sur une instance de conteneur Amazon ECS. Si un volume atteint la limite de 10 Gio, vous ne pouvez plus écrire de données sur ce volume sans provoquer le blocage de l’instance de conteneur.
Important : cet article vous concerne si vous utilisez des AMI Amazon Linux 1 pour lancer des instances de conteneur dans votre cluster ECS. Les AMI Amazon Linux 2 utilisent le pilote de stockage overlay2 pour Docker, ce qui vous donne une taille de stockage de base de l’espace restant sur votre disque.
Résolution
Remarque : les instructions suivantes s'appliquent aux instances utilisant le pilote de stockage devicemapper.
1. Ouvrez la console Amazon ECS.
2. Dans le volet de navigation, sélectionnez Clusters.
3. Sélectionnez le cluster incluant l’instance de conteneur pour laquelle vous souhaitez augmenter la limite de stockage des volumes.
4. Choisissez la vue ECS Instances (Instances ECS).
5. Connectez-vous à votre instance de conteneur avec SSH.
6. Pour voir la taille de stockage de vos volumes, exécutez la commande suivante :
sudo lsblk
Le résultat de la commande devrait être similaire à celui-ci :
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
nvme0n1 259:1 0 8G 0 disk
├─nvme0n1p1 259:2 0 8G 0 part /
└─nvme0n1p128 259:3 0 1M 0 part
nvme1n1 259:0 0 22G 0 disk
└─nvme1n1p1 259:4 0 22G 0 part
├─docker-docker--pool_tdata 253:1 0 21.7G 0 lvm
│ └─docker-docker--pool 253:2 0 21.7G 0 lvm
│ └─docker-259:2-394380-e76dfeb812faffb7a1b5b9553c76c44b70de4e1da69fadd3b89875fee8a6c624
253:3 0 10G 0 dm /var/lib/docker/devicemapper/mnt/e76dfeb812faffb7a1b5b9553c76c44b70de4e1da69fadd3b89875fee8a6c624
└─docker-docker--pool_tmeta 253:0 0 24M 0 lvm
└─docker-docker--pool 253:2 0 21.7G 0 lvm
└─docker-259:2-394380-e76dfeb812faffb7a1b5b9553c76c44b70de4e1da69fadd3b89875fee8a6c624
253:3 0 10G 0 dm /var/lib/docker/devicemapper/mnt/e76dfeb812faffb7a1b5b9553c76c44b70de4e1da69fadd3b89875fee8a6c624
Remarque : la console indique que la taille des volumes de conteneur est de 10 G (soit l'équivalent de 10 Gio).
7. Pour augmenter la taille de stockage par défaut allouée aux volumes Docker, définissez l’option de stockage dm.basesize sur une valeur supérieure à 10 Gio dans le fichier de configuration du démon Docker /etc/sysconfig/docker sur l’instance de conteneur.
Important : une fois la nouvelle valeur de l’option dm.basesize définie, toutes les nouvelles images extraites par Docker utilisent cette valeur. Tous les conteneurs créés ou en cours d'exécution avant la modification de la valeur continuent à utiliser la valeur de stockage précédente. Pour plus d’informations sur la spécification de la configuration du démon Docker, consultez la rubrique Démon Docker.
Pour appliquer l’option dm.basesize à tous vos conteneurs, définissez sa valeur avant le démarrage du service Docker. Par exemple, vous pouvez utiliser le script suivant dans les données utilisateur de l’instance Amazon Elastic Compute Cloud (Amazon EC2) pour définir la taille de stockage allouée par défaut sur 20 Gio :
#cloud-boothook
#!/bin/bash
cloud-init-per once docker_options echo 'OPTIONS="${OPTIONS} --storage-opt dm.basesize=20G"' >> /etc/sysconfig/docker
8. Pour vérifier que la taille de vos nouveaux volumes de conteneur Docker est supérieure à la limite par défaut de 10 Gio, exécutez la commande suivante :
sudo lsblk
Le résultat de la commande devrait être similaire à celui-ci :
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
nvme0n1 259:1 0 8G 0 disk
├─nvme0n1p1 259:2 0 8G 0 part /
└─nvme0n1p128 259:3 0 1M 0 part
nvme1n1 259:0 0 22G 0 disk
└─nvme1n1p1 259:4 0 22G 0 part
├─docker-docker--pool_tdata 253:1 0 21.7G 0 lvm
│ └─docker-docker--pool 253:2 0 21.7G 0 lvm
│ └─docker-259:2-394381-13ae906f682ac57dcac9c247d0e1677f6da4f9dc35528b853a84f5dcbf570842
253:3 0 20G 0 dm /var/lib/docker/devicemapper/mnt/13ae906f682ac57dcac9c247d0e1677f6da4f9dc35528b853a84f5dcbf570842
└─docker-docker--pool_tmeta 253:0 0 24M 0 lvm
└─docker-docker--pool 253:2 0 21.7G 0 lvm
└─docker-259:2-394381-13ae906f682ac57dcac9c247d0e1677f6da4f9dc35528b853a84f5dcbf570842
253:3 0 20G 0 dm /var/lib/docker/devicemapper/mnt/13ae906f682ac57dcac9c247d0e1677f6da4f9dc35528b853a84f5dcbf570842
Informations connexes
Cet article vous a-t-il été utile ?
Cette page peut-elle être améliorée ?
Vous avez besoin d'aide ?