Créer un conteneur avec des limites de ressources initiales
Dans cette étape, vous apprendrez à créer un conteneur Docker et à définir des limites initiales pour le CPU et la mémoire. Les limites de ressources sont importantes pour empêcher qu'un seul conteneur ne consomme toutes les ressources disponibles sur la machine hôte, ce qui pourrait affecter les performances des autres conteneurs et de l'hôte lui-même.
Commencez par télécharger l'image ubuntu
depuis Docker Hub. Cette image servira de base pour notre conteneur.
docker pull ubuntu:latest
Vous devriez voir une sortie indiquant que l'image est en cours de téléchargement et d'extraction.
Maintenant, créons un conteneur nommé my-limited-container
avec des limites de ressources spécifiques. Nous utiliserons la commande docker run
avec les options --cpus
et --memory
.
L'option --cpus
limite la quantité de ressources CPU que le conteneur peut utiliser. La valeur est un nombre à virgule flottante représentant le nombre de cœurs CPU. Par exemple, --cpus 0.5
signifie que le conteneur peut utiliser au maximum la moitié d'un cœur CPU.
L'option --memory
limite la quantité de mémoire que le conteneur peut utiliser. La valeur peut être spécifiée en octets, kilo-octets (k), méga-octets (m) ou giga-octets (g). Par exemple, --memory 512m
limite le conteneur à 512 méga-octets de mémoire.
Dans cet exemple, nous allons créer un conteneur qui exécute la commande sleep infinity
, ce qui maintient le conteneur en fonctionnement indéfiniment. Nous limiterons son utilisation CPU à 0,5 cœur et sa mémoire à 256 méga-octets.
docker run -d --name my-limited-container --cpus 0.5 --memory 256m ubuntu:latest sleep infinity
Décomposons cette commande :
docker run
: Cette commande permet de créer et démarrer un nouveau conteneur.
-d
: Cette option exécute le conteneur en mode détaché, c'est-à-dire en arrière-plan.
--name my-limited-container
: Attribue le nom my-limited-container
au conteneur.
--cpus 0.5
: Limite l'utilisation CPU du conteneur à 0,5 cœur.
--memory 256m
: Limite l'utilisation mémoire du conteneur à 256 méga-octets.
ubuntu:latest
: Spécifie l'image Docker à utiliser (la dernière version d'Ubuntu).
sleep infinity
: Commande exécutée à l'intérieur du conteneur. Elle maintient le conteneur en fonctionnement.
Après l'exécution de la commande, Docker affichera l'ID du conteneur.
Pour vérifier que le conteneur est en cours d'exécution et que les limites de ressources sont appliquées, vous pouvez utiliser la commande docker inspect
. Cette commande fournit des informations détaillées sur un conteneur.
docker inspect my-limited-container
La sortie de docker inspect
est un grand objet JSON. Vous pouvez rechercher les champs CpuShares
et Memory
dans la section HostConfig
pour voir les limites appliquées. Notez que --cpus 0.5
est traduit en une valeur CpuShares
de 512 (par défaut, 1 CPU correspond à 1024 parts). La valeur Memory
sera exprimée en octets.