Maison >développement back-end >Golang >Comment rendre un serveur WebSocket accessible depuis l'extérieur d'un conteneur Docker ?

Comment rendre un serveur WebSocket accessible depuis l'extérieur d'un conteneur Docker ?

DDD
DDDoriginal
2024-11-06 21:41:02689parcourir

How can I make a WebSocket server accessible from outside a Docker container?

Dockerisation d'un serveur WebSocket

Afin de dockeriser un serveur WebSocket, il est nécessaire de résoudre le problème de l'écoute basée sur localhost au sein du Environnement Docker.

Le problème

Lorsqu'un serveur WebSocket est configuré pour écouter sur localhost:8000, il devient inaccessible depuis l'extérieur du conteneur Docker. En effet, localhost se résout en 127.0.0.1, une adresse de bouclage qui n'est pas accessible de l'extérieur.

Le correctif

Pour résoudre ce problème, l'adresse d'écoute du serveur doit être remplacé par ":8000", qui demande au serveur d'écouter toutes les adresses IP de son conteneur. Cela permet au trafic d'être transféré vers le conteneur et d'atteindre le serveur.

Informations supplémentaires

Docker utilise les règles iptables pour faciliter la redirection de port. Ces règles peuvent être visualisées à l'aide des commandes suivantes :

iptables -n -L
iptables -t nat -n -L

En exposant les ports dans un conteneur Docker, il est possible de créer un serveur WebSocket accessible publiquement qui peut communiquer avec les clients en dehors du conteneur.

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