2017-08-18 9 views
2

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!

+0

Versuchen Sie, die App zum Back-End-Netzwerk hinzuzufügen. – yamenk

+0

Ich habe vergessen, 'network_mode' zur Konfiguration des App-Containers hinzuzufügen. – efpe

Antwort

1

Ohne ein gemeinsames Andocknetzwerk kann Traefik nicht zu Ihrem Container routen. Da Sie Host-Netzwerke verwenden, ist es für traefik wenig notwendig, den Container zu proxygrafieren, sondern nur direkt darauf zuzugreifen. Oder wenn Sie nur über den Proxy darauf zugreifen müssen, dann platzieren Sie es im Backend-Netzwerk. Wenn Sie einige Ports benötigen, die auf dem Host und andere über traefik veröffentlicht wurden, platzieren Sie sie im Back-End-Netzwerk und veröffentlichen Sie die Ports, die Sie veröffentlichen müssen, anstatt das Host-Netzwerk direkt zu verwenden.

+0

Sie haben Recht, ich habe meine statisch gesichert, wie es immer läuft. – efpe

Verwandte Themen