Ich habe zwei verschiedene Docker-Container und jeder hat ein anderes Bild. Jede App in den Containern verwendet nicht in Konflikt stehende Ports. Siehe docker-compose.yml
:Wie teile ich localhost zwischen zwei verschiedenen Docker-Containern?
version: "2"
services:
service_a:
container_name: service_a.dev
image: service_a.dev
ports:
- "6473:6473"
- "6474:6474"
- "1812:1812"
depends_on:
- postgres
volumes:
- ../configs/service_a/var/conf:/opt/services/service_a/var/conf
postgres:
container_name: postgres.dev
hostname: postgres.dev
image: postgres:9.6
ports:
- "5432:5432"
volumes:
- ../configs/postgres/scripts:/docker-entrypoint-initdb.d/
ich erfolgreich von dem Host-Rechner jedes Bild cURL kann (Mac OS), z.B. curl -k https://localhost:6473/service_a/api/version
funktioniert. Was ich gerne tun würde, ist in der Lage zu postgres
Container von der service_a
Container über localhost
zu beziehen, als ob diese beiden Behälter eins waren und sie die gleichen localhost
teilen. Ich weiß, dass es möglich ist, wenn ich den Host-Namen postgres.dev
aus dem Container service_a
verwenden, aber ich würde gerne localhost
verwenden können. Ist das möglich? Bitte beachten Sie, dass ich mich im Umgang mit Netzwerken oder Docker nicht auskenne.
Mac-Version: 10.12.4
Docker Version: Docker Version 17.03.0-ce, bauen 60ccb22
Ich habe schon einige frühere Untersuchungen durchgeführt, konnte aber keine Lösung finden. Relevant: https://forums.docker.com/t/localhost-and-docker-compose-networking-issue/23100/2
Mehrere (unterschiedliche Grade von Hackiness) Möglichkeiten, dies zu tun, aber wie kommst du dazu? – johnharris85
Ich wiederhole, warum willst du das tun? Die Verwirrung mit 'localhost' wird nur Verwirrung stiften. Das Ausführen beider Prozesse in demselben Container könnte dasselbe ohne Hackerei erreichen. – Matt
Mein Anwendungsfall ist folgender: Diese beiden Dienste müssen aus Sicherheitsgründen auf demselben Host bereitgestellt werden, so dass 'service_a' in der realen Welt so konfiguriert wäre, dass nur 'localhost/127.0.0.1' gehört wird. Im Idealfall würde ich ein Docker-Image erstellen, um sowohl postgres als auch service_a zu haben, aber das schien nicht machbar, daher mein Ansatz hier. – kolistivra