J'essaie d'accéder à un conteneur Docker à partir d'un autre conteneur à l'aide de Le fichier de composition est assez simple. Les deux ports de conteneurs sont exposés.
Il n'y a pas de problèmes lorsque vous construisez. P> dans ma machine hôte, je peux exécuter avec succès Mais à l'intérieur du J'ai essayé de les ajouter dans le même réseau, le résultat toujours pas changement. p> Eh bien si j'essaie d'exécuter avec l'adresse IP interne de ce conteneur comme est-ce le comportement par défaut? Comment puis-je atteindre localhost code> adresse.
curl http: // localhost: 8124 / cod> et obtenir une réponse. P>
django_container code> lorsque vous essayez la même commande que je reçois
la connexion refusée code> erreur. P>
Curl 'http://172.27.0.2:8123/' code> Je reçois la réponse. p>
clickhouse_container code> à l'aide de
localhost code>? P>
3 Réponses :
Alors avec cette ligne ici si Vous souhaitez appuyer sur le conteneur Clickhouse à partir du réseau DockerHost, vous devez utiliser le nom d'hôte pour le conteneur. C'est ce que j'aime faire: p> Si vous apportez les modifications que j'ai apportées ci-dessus, vous devriez accéder à Clickhouse depuis le conteneur Django comme celui-ci - "8124: 8123" CODE> Vous mappez le port de CLICKOUS CONTACHER vers localhost 8124. Ce qui vous permet d'accéder à Clickhouse à partir de localhost au port 8124.
Curl http: // Clickhouse: 8123 Code>. P> P>
Comme dans la réponse de @Billy Ferguson, vous pouvez visiter utiliser Mais quand d'un autre conteneur (Django), vous ne pouvez pas le faire. Mais si vous insistez, il y a une solution de contournement laid: partager l'espace de noms de réseau de l'hôte avec localhost code> dans la machine hôte Juste parce que: Vous définissez un mappage de port à la route
localhost: 8124 code> sur
Clickhouse : 8123 code>.
Network_Mode code>, mais avec ce conteneur Django partagera tout le réseau d'hôte. P>
services:
django:
hostname: djano
container_name: django
build: ./django
ports:
- "8007:8000"
links:
- clickhouse:clickhouse
volumes:
- ./django:/usr/src/run
command: bash /usr/src/run/run.sh
network_mode: "host"
Cela dépend de paramètres config.xml. Si dans config.xml
Vous trouverez certaines questions similaires. Pouvez-vous montrer comment votre question est différente ou comment d'autres réponses à des questions similaires ne fonctionnaient pas pour vous? Stackoverflow.com/search?q=%5BDocker%5D+LocalHost&Mixed=0
Question similaire / Dupliquer Stackoverflow.com/Questtions/48291342/...
Pourquoi voulez-vous accéder via localhost dans un autre conteneur? Vous devriez simplement utiliser le nom du service au lieu de localhost Clickhouse: 8123