Some of the links shared in this post are affiliate links. If you click on the link and make a purchase, we will receive an affiliate commission at no additional cost to you.
Lors de l’exécution ou du démarrage de conteneurs Docker, différentes erreurs se produisent souvent. Ces erreurs peuvent être causées par des configurations incorrectes, des dépendances manquantes, des problèmes de réseau ou des images Docker défectueuses. Voici les erreurs les plus fréquentes et les solutions possibles :
1. image not found
- Description : Le nom d’image ou le tag indiqué est incorrect ou n’existe pas dans le registre Docker.
- Message d’erreur :
Error response from daemon : pull access denied for <image>, repository does not exist or may require 'docker login'.
- Solution : assure-toi que le nom de l’image est correct, y compris la bonne balise (par exemple
nginx:latest
). S’il s’agit d’une image privée, connecte-toi avecdocker login
.
2. port déjà utilisé
- Description : Le port hôte indiqué est déjà occupé par un autre processus ou conteneur.
- Message d’erreur :
Error response from daemon : driver failed programming external connectivity on endpoint <container_name> : Bind for 0.0.0.0:<port> failed : port is already allocated
- Solution : Vérifie quel processus utilise le port en exécutant la commande
sudo lsof -i :<port>
et change soit le port du processus en cours, soit celui du nouveau conteneur.
3. conteneur expulsé immédiatement après le démarrage
- Description : Le conteneur démarre, mais le processus principal se termine immédiatement.
- Message d’erreur :
Exited (0)
ouExited (1)
- Solution : Vérifie le journal du conteneur Docker avec
docker logs <nom_conteneur>
pour voir ce qui s’est mal passé. Il se peut qu’il manque une variable d’environnement ou une dépendance. Vérifie que lacommande
CMD
ouENTRYPOINT
définie dans le fichier docker est correcte.
4. erreur de refus de permission
- Description : Le conteneur ou le système hôte n’a pas les autorisations nécessaires pour effectuer une action.
- Message d’erreur :
permission refusée
,EACCES : permission refusée, mkdir
- Solution : assure-toi que les permissions du système de fichiers sont correctement définies. Utilise
sudo chown
ouchmod
pour configurer les droits d’accès. Ne metsles indicateurs
--privileged
ou--user
dans Docker qu’en dernier recours.
5. ne pas se connecter au démon Docker
- Description : le client Docker ne peut pas se connecter au démon Docker.
- Message d’erreur :
Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Le démon docker est-il en cours d'exécution ?
- Solution : assure-toi que Docker est installé et que le démon Docker est lancé. Utilise
sudo systemctl start docker
ousudo service docker start
. Vérifie les autorisations pour le socket docker.
6. les problèmes de connectivité réseau
- Description : les conteneurs ne peuvent pas se connecter aux réseaux externes ou à l’hôte.
- Message d’erreur :
Could not resolve host
,network not found
- Solution : assure-toi que le réseau est correctement défini. Vérifie la configuration du réseau dans
docker-compose.yml
ou utilisedocker network ls
pour t’assurer que le réseau requis est présent.
7. erreurs de montage de volume
- Description : erreur lors du déploiement des volumes car les chemins sont incorrects ou inexistants.
- Message d’erreur :
Error response from daemon : invalid mount config for type "bind" : bind source path does not exist
- Solution : vérifie que le chemin d’accès à l’hôte existe et qu’il est correctement formaté. Fais attention au chemin absolu et vérifie qu’il commence par
/
.
8. out of memory (OOM)
- Description : Le conteneur ou l’hôte s’exécute en raison de restrictions de ressources ou d’applications gourmandes en mémoire.
- Message d’erreur :
Killed
ouOOMKilled
- Solution : Allouer plus de mémoire ou limiter la consommation de mémoire du conteneur avec
le drapeau --memory
(par exemple--memory="1g"
). Vérifie la mémoire de l’hôte avecfree -m
.
9. problèmes de configuration du démon Docker
- Description : Une mauvaise configuration du démon Docker peut empêcher les conteneurs de s’exécuter.
- Message d’erreur : divers, selon l’erreur de configuration.
- Solution : Vérifie et modifie le fichier de configuration
/etc/docker/daemon.json
. Utilisedocker info
etdocker logs
pour d’autres diagnostics. Redémarre le démon avecsudo systemctl restart docker
.
10. erreur de conflit
- Description : Conflit dû à la présence d’un conteneur ou d’une image portant le même nom ou la même balise.
- Message d’erreur :
Conflit : Le nom du conteneur "/<nom_du_conteneur>" est déjà utilisé par le conteneur "<id_du_conteneur>".
- Solution : supprime le conteneur existant ou donne un autre nom au nouveau conteneur. Utilise
docker rm <nom_conteneur>
oudocker rename
.
Ces erreurs fréquentes de Docker peuvent être identifiées et corrigées en examinant attentivement les logs, les fichiers de configuration et les processus en cours sur le système hôte. Les volumes, les images ou les configurations réseau erronés peuvent être résolus par des définitions et des corrections plus précises dans le fichier docker-compose.yml
ou les commandes Docker.