Ich mag würde das folgende Szenario einzurichten:Traefik als Proxy für Docker-Container mit Host-Maschinen Netzwerk
- Eine physische Maschine mit Docker Behältern
- traefik in einem Behälter mit Netzwerk
backend
- ein anderes Container, der das Host-Computer-Netzwerk verwendet (
network_mode: host
)
Traefik findet den Container erfolgreich und fügt ihn den IP-Adressen hinzu s 127.0.0.1
die offensichtlich vom traefik container nicht erreichbar ist (anderes Netzwerk/Bridge).
Docker-compose.yml:
version: '3'
services:
traefik:
image: traefik
ports:
- "80:80"
- "443:443"
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- ./traefik.toml:/etc/traefik/traefik.toml
networks:
- backend
app:
image: my_app
labels:
- "traefik.enable=true"
- "traefik.frontend.rule=Host:myapp.example"
- "traefik.port=8080"
network_mode: host
networks:
backend:
driver: bridge
Der app
Behälter hinzugefügt werden mit
Server URL Weight
server-app http://127.0.0.1:8080 0
Load Balancer: wrr
Natürlich habe ich app
mit http://127.0.0.1:8080
auf dem Hostcomputer oder mit http://$HOST_IP:8080
vom traefik Container zugreifen kann.
Kann ich Traefik irgendwie davon überzeugen, eine andere IP für den Container zu verwenden?
Danke!
Versuchen Sie, die App zum Back-End-Netzwerk hinzuzufügen. – yamenk
Ich habe vergessen, 'network_mode' zur Konfiguration des App-Containers hinzuzufügen. – efpe