Maison  >  Article  >  Opération et maintenance  >  Docker ne peut pas se connecter à la solution réseau externe

Docker ne peut pas se connecter à la solution réseau externe

尚
original
2020-03-31 11:50:5010885parcourir

Docker ne peut pas se connecter à la solution réseau externe

Docker ne peut pas se connecter au réseau externe Solution :

1 S'il a été utilisé normalement auparavant, l'hôte peut accéder au réseau externe, mais le conteneur. ne peut pas, vous pouvez essayer de redémarrer le service Docker pour résoudre le problème :

>>>sercice docker restart
#debian/ubutun中sh为dash,centos指bash
>>>docker run -it -v /yourfile:/file -p 8000:8000 /bin/bash imageid 
>>>

2. Le conteneur Docker fournit des services et écoute le port 8888. Pour activer l'accès externe, le mappage des ports est requis.

docker run -it --rm -p 8888:8888 server:v1

Un problème est survenu à ce moment. Après le déploiement sur la machine virtuelle A, le service de port 8888 est accessible en A, mais n'est pas accessible en B.

Cela devrait être dû au fait que la demande a été interceptée.

Afficher firewall-cmd --state

Si la sortie est "ne fonctionne pas", FirewallD n'est pas en cours d'exécution et toutes les stratégies de protection ne sont pas démarrées, alors vous pouvez Éliminez le pare-feu qui bloque la connexion.

Si le résultat est "en cours d'exécution", cela signifie que FirewallD est actuellement en cours d'exécution. Vous devez entrer la commande suivante pour voir quels ports et services sont maintenant ouverts :

firewall-cmd --list-ports
firewall-cmd --list-services

Il existe deux solutions. :

1. Désactivez le service FirewallD :

Si vous n'avez pas besoin de pare-feu, désactivez simplement le service FirewallD directement

systemctl stop firewalld.service

2. ouvrir le port spécifié au monde extérieur :

Par exemple, si nous voulons ouvrir le port externe 5000/tcp maintenant, nous pouvons utiliser la commande suivante :

firewall-cmd --add-port=5000/tcp --permanent
firewall-cmd --reload

Si nous n'ouvrons que temporairement le port, supprimez le paramètre "--permanent" dans la première ligne de la commande, puis lorsque Cette politique deviendra invalide au nouveau redémarrage du service FirewallD.

Le transfert IP n'est pas activé

sysctl net.ipv4.ip_forward

Si net.ipv4.ip_forward=0 s'affiche, cela signifie qu'il n'est pas activé.

Ouvrez le fichier sysctl.conf

vi /etc/sysctl.conf

Ajoutez le code suivant :

net.ipv4.ip_forward=1

Pour plus de tutoriels connexes, veuillez faire attention à la colonne docker tutoriel du site PHP chinois.

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn