2017-08-18 1 views
2

Je voudrais mettre en place le scénario suivant:Traefik comme proxy pour conteneur Docker avec des machines hôtes réseau

  • Une machine physique avec des conteneurs Docker
  • traefik dans un conteneur avec le réseau backend
  • une autre conteneur qui utilise le réseau de machines hôtes (network_mode: host)

Traefik a trouvé le conteneur et l'a ajouté à l'adresse IP s 127.0.0.1 qui évidemment n'est pas accessible depuis le conteneur traefik (réseau/pont différent).

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 

Le conteneur app est ajouté avec

Server  URL      Weight 
server-app http://127.0.0.1:8080 0 
Load Balancer: wrr 

Bien sûr, je peux accéder à app avec http://127.0.0.1:8080 sur la machine hôte ou http://$HOST_IP:8080 du récipient de traefik. Puis-je d'une manière ou d'une autre convaincre traefik d'utiliser une autre adresse IP pour le conteneur?

Merci!

+0

Essayez d'ajouter l'application au réseau principal. – yamenk

+0

J'ai oublié d'ajouter 'network_mode' à la configuration du conteneur de l'application. – efpe

Répondre

1

Sans réseau de dockers commun, traefik ne pourra pas accéder à votre conteneur. Comme vous utilisez le réseau hôte, traefik n'a pas besoin de proxy pour le conteneur, il suffit d'y accéder directement. Ou si vous n'avez besoin d'y accéder que via le proxy, placez-le sur le réseau backend. Si vous avez besoin que certains ports soient publiés sur l'hôte et que d'autres le soient via traefik, placez-le sur le réseau principal et publiez les ports que vous avez besoin de publier, plutôt que d'utiliser directement le réseau hôte.

+0

Vous avez raison, j'ai ajouté mon support statiquement, car il fonctionne toujours. – efpe