I have solved my issue in the following way and used Traefik v2.3. When access the port 80, Traefik will show the service whoami and when access the port 9086, Traefik will show the service mynginximage2.

version: "3.8"

services:
  traefik:
    image: traefik:v2.3
    deploy:
      mode: global
    networks:
      - traefik-net
    command:
      #- "--log.level=DEBUG"
      - "--api.insecure=true"
      - "--providers.docker=true"
      - "--providers.docker.exposedbydefault=false"
      - "--entrypoints.web.address=:80"
      - "--entrypoints.mynginximage2_ep.address=:8086"
    ports:
      - 80:80
      - 9086:8086
      - 8080:8080
    volumes:
      - "/var/run/docker.sock:/var/run/docker.sock:ro"
  whoami:
    image: "traefik/whoami"
    deploy:
      replicas: 2
    networks:
      - traefik-net
    labels:
      - "traefik.enable=true"
      - "traefik.http.routers.whoami.entrypoints=web"
      - "traefik.http.routers.whoami.rule=Host(`192.168.0.1`) || Host(`192.168.0.2`)"
      - "traefik.http.services.whoami-service.loadbalancer.server.port=80"
  mynginximage2:
    image: mynginximage2
    deploy:
      replicas: 2
    networks:
      - traefik-net
    #ports:
    #  - 9080:8086
    labels:
      - "traefik.enable=true"
      - "traefik.http.routers.mynginximage2.entrypoints=mynginximage2_ep"
      - "traefik.http.routers.mynginximage2.rule=Host(`192.168.0.1`) || Host(`192.168.0.2`)"
      - "traefik.http.services.mynginximage2-service.loadbalancer.server.port=8086"      
networks:
  traefik-net:
    external: true
    name: traefik-net

CLICK HERE to find out more related problems solutions.

Leave a Comment

Your email address will not be published.

Scroll to Top