Pour les développeurs qui ont besoin d'utiliser Docker pour créer un environnement de conteneurs, l'utilisation de Docker sur le système d'exploitation Linux est un bon choix. Cependant, certains utilisateurs peuvent rencontrer des problèmes lors de l'utilisation de Docker sur CentOS, dont l'impossibilité d'accéder à Docker via la machine hôte. Cet article explique pourquoi ce problème se produit et propose des solutions possibles.
1. Cause du problème
Après avoir installé Docker sur CentOS, il créera un pont virtuel par défaut nommé "docker0". Chaque conteneur Docker se connectera à ce pont et utilisera une adresse IP de la plage d'adresses IP « docker0 ». De cette manière, l'hôte et les conteneurs Docker peuvent communiquer via le pont partagé « docker0 ». Cependant, comme le pare-feu CentOS n'est pas configuré correctement par défaut, l'hôte Docker n'est pas accessible. En effet, le pare-feu CentOS bloque les paquets entrants provenant d'autres plages d'adresses IP.
2. Solution
sudo firewall-cmd --permanent --zone=trusted --add-interface=docker0 sudo firewall-cmd --permanent --zone=trusted --add-source=172.17.0.0/16 sudo firewall-cmd --permanent --zone=trusted --add-source=172.18.0.0/16 sudo firewall-cmd --reload
Dans la commande ci-dessus, nous avons défini une zone "de confiance" et ajouté le pont "docker0". De plus, nous autorisons les paquets des plages d'adresses IP « 172.17.0.0/16 » et « 172.18.0.0/16 » à entrer dans cette zone. Enfin, utilisez la commande "firewall-cmd --reload" pour vous assurer que les nouvelles règles de pare-feu prennent effet immédiatement.
Pour ce faire, vous devez modifier le fichier de configuration Docker situé sous le chemin "/etc/docker/daemon.json" et ajouter le contenu suivant :
"dns": ["8.8.8.8", "8.8.4.4"]
Cela configurera Google DNS à l'intérieur du conteneur pour aider Docker résoudre les noms DNS.
Pour vérifier votre version de Docker, veuillez taper la commande suivante :
$ docker version
Si vous utilisez une ancienne version de Docker, vous pouvez utiliser la commande suivante pour mettre à niveau :
$ sudo yum update docker
Ou, si vous l'installez à l'aide du référentiel Yum recommandé par Docker, la commande suivante peut effectuer une mise à niveau de Docker :
$ sudo yum install docker-ce
$ docker network ls
Cela listera tous les réseaux Docker. Veuillez vous assurer que tous les réseaux ne sont pas liés à "docker0" et sont correctement configurés.
Résumé
L'utilisation de Docker sur CentOS peut fournir un environnement de conteneur pratique. Cependant, certains utilisateurs peuvent rencontrer différents problèmes. L'un des problèmes les plus courants est que Docker n'est pas accessible via l'hôte. Cet article traite des solutions à ce problème, notamment la configuration du pare-feu, les paramètres DNS de Docker, les mises à jour de la version de Docker et l'inspection des paramètres réseau de Docker. Si vous rencontrez ce problème sur CentOS, vous pouvez essayer l'une des méthodes ci-dessus pour le résoudre.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!