Halo, kalau kamu merasa tulisan saya ngebantu kamu, kamu bisa ucapkan terima kasih lewat saweria .

If you feel this website help you, you can donate at saweria .



Problem

Client complaint they only can use “network_mode: host” in their swarm environment, it makes they can’t scale their apps


How To Fix The Problem

  1. First, make sure you have network with overlay driver
#create network
docker network create --driver=overlay app-net-prod
#check  new netwokrk
docker network ls
Docker Network

Docker Network

  1. Opened docker swarm communicate port

    a. TCP port 2377

    b. TCP and UDP port 7946

    c. UDP port 4789

  2. If you already setup all of that, but still cannot scale your apps with error “host-mode port already in use on 1 node”.

    Scale Failed

    Scale Failed

Check your compose file, if your network look like this

version: '3.8'

services:
  whoami:
    image: traefik/whoami
    ports:
      - target: 2001
        published: 2001
        mode: host
    command:
       # It tells whoami to start listening on 2001 instead of 80
       - --port=2001
       - --name=iamfoo

You just need to remove mode: host

version: '3.8'

services:
  whoami:
    image: traefik/whoami
    ports:
      - target: 2001
        published: 2001
    command:
       # It tells whoami to start listening on 2001 instead of 80
       - --port=2001
       - --name=iamfoo

Then try to scale your app