Maison > Article > Opération et maintenance > Comment résoudre le problème du blocage du port Docker Swarm
Solution à l'échec du port Swarm Docker : 1. Modifiez le fichier de configuration et ajoutez la configuration "net.ipv4.ip_forward=1" ; 2. Redémarrez le réseau via "systemctl restart network".
L'environnement d'exploitation de cet article : système centOS6.8, Docker version 18.09.x, ordinateur Dell G3.
Comment résoudre le problème du blocage du port Swarm Docker ? Problème de réseau Docker Swarm
Le réseau interne de l'hôte Docker est normal, mais la connexion avec d'autres hôtes échoue. Les autres hôtes ne peuvent pas se connecter au port mappé sur l'hôte Docker et Docker ne peut pas se connecter aux hôtes externes.
WARNING: IPv4 forwarding is disabled WARNING: bridge-nf-call-iptables is disabled WARNING: bridge-nf-call-ip6tables is disabled
Modifier le fichier de configuration
vim /etc/sysctl.conf
Ajouter la configuration
net.bridge.bridge-nf-call-ip6tables=1 net.bridge.bridge-nf-call-iptables=1 net.bridge.bridge-nf-call-arptables=1 net.ipv4.ip_forward=1
Exécuter sysctl -p
pour prendre effet
Redémarrez le réseau
systemctl restart network
Vérifiez à nouveau les informations du docker, l'avertissement disparaît et le réseau docker sur l'hôte revient à la normale.
Le serveur que j'utilise est Alibaba Cloud Server
Si votre cluster utilise le port par défaut 4789, alors vous risquez de rencontrer le même problème que moi.
Il y a cette phrase dans la documentation d'aide d'Alibaba Cloud :
Avant d'ajouter la surveillance UDP, veuillez faire attention aux restrictions suivantes :
Les trois ports 250, 4789 et 4790 pour la surveillance UDP sont des ports réservés au système et ne sont pas ouverts. au public pour le moment.
Détails
Dans les versions 19.03 et ultérieures, docker ajoute l'élément de configuration –data-path-port uint32 au-dessus de swarm init pour modifier le port VXLAN de docker swarm.
Le problème a été résolu avec succès après avoir modifié le port
sudo docker swarm init --data-path-port 5789
Affichez le journal du docker (journalctl -u docker -n 20 -f) et trouvé :
level=error msg="error reading the kernel parameter net.ipv4.vs.expire_nodest_conn" error="open /proc/sys/net/ipv4/vs/expire_nodest_conn: no such file or directory"
La raison en est que l'hôte ne se charge pas le module ip_vs. Redémarrez simplement Docker après avoir chargé le module ip_vs sur chaque nœud. [Apprentissage recommandé : "Tutoriel vidéo Docker"]
modprobe ip_vs service docker restart
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!