Lanjutan dari Part 2 - Deploy Traefik sebagai Reverse Proxy di Docker Swarm

Part 3, Setup Server Block/Virtual Host di Traefik

Saya ga tahu kata-kata yang tepat buat sub judulnya, mungkin buat yang biasa pake Apache atau Nginx, terbiasa dengar Server dan Virtual Host.

Yang akan kita deploy adalah aplikasi docker swarm visualizer dan containous/whoami


Deploy Docker Swarm Visualizer

  1. Pertama tambahkan domain di /etc/hosts file, langsung dua saja ya, buat visualizer (visualizer.local) dan whoami (whoami.local)

    Tambahkan Domain di file /etc/hosts

    Tambahkan Domain di file /etc/hosts

  2. Buat docker-compose-visualizer.yml

version: "3.4"

services:
  visualizer:
    image: dockersamples/visualizer
    #allow to access docker socket
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock:ro

    deploy:
      placement:
        constraints:
          #only run traefik at manager
          - node.role == manager
      labels:
        - traefik.enable=true
        - traefik.docker.network=traefik
        - traefik.http.routers.visualizer-http.rule=Host(`visualizer.local`)
        - traefik.http.middlewares.admin-auth.basicauth.users=sahamaneh:$$2y$$05$$i8WQb772W13f0jP.1tTDteaivolUBDjf1YTbjzk0JD33ktIQjsDXe
        - traefik.http.routers.visualizer-http.middlewares=admin-auth
        - traefik.http.routers.visualizer-http.entrypoints=web
        - traefik.http.services.visualizer.loadbalancer.server.port=8080
    networks:
      - traefik

networks:
  traefik:
    external: true
  1. Deploy visualizer stack
docker stack deploy -c docker-compose-visualizer.yml visualizer
  1. Buka browser, tulis domain sesuai di file /etc/hosts (di sini saya gunakan visualizer.local)
    Visualizer Docker Swarm

    Visualizer Docker Swarm


Deploy Stack Whoami

  1. Buat docker-compose-whoami.yml
version: "3.4"

services:
  whoami:
    image: containous/whoami
    deploy:
      placement:
        constraints:
          - node.role == worker
      labels:
        - traefik.enable=true
        - traefik.docker.network=traefik
        - traefik.http.routers.whoami-http.rule=Host(`whoami.local`)
        - traefik.http.routers.whoami-http.entrypoints=web
        - traefik.http.services.whoami.loadbalancer.server.port=80
    networks:
      - traefik

networks:
  traefik:
    external: true
  1. Deploy stack whoami
docker stack deploy -c docker-compose-whoami.yml whoami
  1. Kita cek di browser, ketikan whoami.local di address bar
Whoami Docker Swarm

Whoami Docker Swarm

Whoam di Visualizer

Whoam di Visualizer


Test Scaling Whoami

  1. Kita coba scaling whoami, nanti kita bisa cek apakah benar sudah ter-scaling atau belum di visualizer.local
docker service scale whoami_whoami=3
Setelah Scaling Semua Container Whoami Running

Setelah Scaling Semua Container Whoami Running

  1. Cek di browser, ketik whoami.local lalu refresh beberapa kali