Gestion des ressources des conteneurs
Comprendre les ressources des conteneurs
La gestion des ressources des conteneurs est essentielle pour optimiser les performances, garantir une allocation équitable des ressources et éviter la surcharge du système.
Dimensions de la gestion des ressources
mindmap
root((Gestion des ressources des conteneurs))
CPU
Limites
Parts
Mémoire
Limite stricte
Limite souple
Réseau
Bande passante
Limites de connexions
Stockage
E/S disque
Quotas de volume
Contrôle des ressources CPU
Stratégies d'allocation CPU
Stratégie |
Description |
Drapeau Docker |
Parts CPU |
Allocation relative du temps CPU |
--cpu-shares |
Cœurs CPU |
Limiter des cœurs CPU spécifiques |
--cpuset-cpus |
Période CPU |
Contrôler le temps d'allocation CPU |
--cpu-period |
Quota CPU |
Limiter le pourcentage d'utilisation CPU |
--cpu-quota |
Exemples de ressources CPU
## Limiter le conteneur à 50% d'un cœur CPU
docker run -d --cpus=0.5 nginx:latest
## Affecter le conteneur à des cœurs CPU spécifiques
docker run -d --cpuset-cpus="0,1" web-app
## Définir les parts CPU (la valeur par défaut est 1024)
docker run -d --cpu-shares=512 background-service
Gestion de la mémoire
Techniques d'allocation de mémoire
## Définir la limite stricte de mémoire
docker run -d --memory=500m nginx:latest
## Définir la limite souple de mémoire avec une réservation
docker run -d --memory=1g --memory-reservation=750m web-app
## Empêcher le conteneur de consommer une quantité excessive de mémoire
docker run -d --oom-kill-disable=false --memory=500m app
Gestion du stockage et des E/S
flowchart LR
A[Gestion du stockage] --> B[Volumes]
A --> C[Bind Mounts]
A --> D[Tmpfs Mounts]
B --> E[Stockage persistant]
C --> F[Intégration au système hôte]
D --> G[Stockage temporaire en mémoire]
Commandes d'allocation de stockage
## Créer un volume nommé
docker volume create app-data
## Monter le volume dans le conteneur
docker run -v app-data:/app/data nginx:latest
## Limiter les E/S disque du conteneur
docker run --device-write-bps /dev/sda:10mb web-app
Contrôle des ressources réseau
## Limiter la bande passante réseau
docker run --net-alias=limited-network \
--network-bandwidth=100kbps \
web-service
## Contrôler les limites de connexions réseau
docker run --ulimit nproc=50 app-container
Surveillance de l'utilisation des ressources
Commandes de surveillance des ressources Docker
## Statistiques des ressources conteneur en temps réel
docker stats
## Inspecter la configuration des ressources du conteneur
docker inspect --format '{{.HostConfig.Memory}}' container-name
Bonnes pratiques de gestion des ressources
- Définir des limites de ressources appropriées
- Utiliser des réservations de ressources
- Surveiller les performances des conteneurs
- Implémenter des builds multi-étapes
- Utiliser Docker Compose pour des configurations complexes
Outils de gestion avancée des ressources
Outil |
Rôle |
cAdvisor |
Surveillance des conteneurs |
Prometheus |
Collecte des métriques |
Grafana |
Visualisation |
Apprendre avec LabEx
LabEx fournit des environnements pratiques complets pour mettre en pratique les techniques avancées de gestion des ressources Docker, aidant les développeurs à optimiser les performances et l'efficacité des conteneurs.