Skip to main content
  1. Posts/

Using Overlay Network in Docker

·2 mins·
docker docker
Table of Contents

Jaringan overlay memungkinkan setiap container yang ada dibeberapa host docker agar saling terhubung. Driver overlay membuat jaringan terdistribusi diantara beberapa host docker lalu secara transparan menangani perutean ke tujuan container yang terhubung pada jaringan overlay

Create the swarm
#

Untuk prosedur pengetesan, siapkan dua host docker lalu gabungkan ke swarm agar dapat menggunakan jaringan overlay

Node 1 menjadi manager

docker swarm init --advertise-addr=<IP-ADDRESS-OF-MANAGER>

Node 2 menjadi worker

docker swarm join --token <TOKEN> \
  --advertise-addr <IP-ADDRESS-OF-WORKER> \
  <IP-ADDRESS-OF-MANAGER>:2377

List semua node pada node Manager

$ docker node ls
ID                            HOSTNAME             STATUS    AVAILABILITY   MANAGER STATUS   ENGINE VERSION
9ozwo0ro18qryz247xj8lywrl *   control.topan.host   Ready     Active         Leader           23.0.3
ohg51z7r9426wcvdhmp1rfzvd     worker1.topan.host   Ready     Active                          23.0.3

Setelah memastikan Node 1 dan Node 2 terhubung, network overlay akan otomatis terbuat.

$ docker network ls
NETWORK ID     NAME              DRIVER    SCOPE
35c7f5b8e93d   bridge            bridge    local
6cb835d33ecb   docker_gwbridge   bridge    local
c066dfd4012a   host              host      local
mqrinhr1eqmh   ingress           overlay   swarm
266a0a91f950   none              null      local

Create containers
#

Pada node Manager Buat network overlay dengan nama net-alpine

docker network create -d overlay net-alpine --attachable

Selanjutnya buat satu container pada masing-masing node

Node Manager

docker run -dit --name alpa --network net-alpine alpine ash

Node Worker

docker run -dit --name beta --network net-alpine alpine ash

Cek IP container yang ada pada node Worker

$ docker network inspect net-alpine | jq '.[].Containers'
{
  "7e3f0df4787011fb67bebdd02c577b981152014b404b5098d1524d41a9ec6bbf": {
    "Name": "beta",
    "EndpointID": "2c78e4e5b91f5652aecf1cd7de6c570c8b6887aae5130c3656af27afcfd5bd09",
    "MacAddress": "02:42:0a:00:01:04",
    "IPv4Address": "10.0.1.4/24",
    "IPv6Address": ""
  },
  "lb-net-alpine": {
    "Name": "net-alpine-endpoint",
    "EndpointID": "33441655ead0866cd4faa357f8bf09796dc6615010e34769a9272490fc5f795f",
    "MacAddress": "02:42:0a:00:01:05",
    "IPv4Address": "10.0.1.5/24",
    "IPv6Address": ""
  }
}

Pada node Manager masuk ke terminal alpa lalu test ping IP container beta

docker exec -it alpa ash
/ # ping -c4 10.0.1.4
PING 10.0.1.4 (10.0.1.4): 56 data bytes
64 bytes from 10.0.1.4: seq=0 ttl=64 time=0.942 ms
64 bytes from 10.0.1.4: seq=1 ttl=64 time=1.052 ms
64 bytes from 10.0.1.4: seq=2 ttl=64 time=1.002 ms
64 bytes from 10.0.1.4: seq=3 ttl=64 time=0.860 ms

Test ping menggunakan dengan nama container

/ # ping -c4 beta
PING beta (10.0.1.4): 56 data bytes
64 bytes from 10.0.1.4: seq=0 ttl=64 time=0.766 ms
64 bytes from 10.0.1.4: seq=1 ttl=64 time=0.879 ms
64 bytes from 10.0.1.4: seq=2 ttl=64 time=0.828 ms
64 bytes from 10.0.1.4: seq=3 ttl=64 time=0.938 ms

Related

Building Docker Images with Dockerfiles
·1 min
docker docker
Setup NFS Server With Docker
·2 mins
docker docker
Using Bridge Network in Docker
·3 mins
docker docker
Remote Host Docker menggunakan Docker Context
·2 mins
docker docker
Rename Docker Image with Tag
·1 min
docker docker
Install Docker
·3 mins
docker linux docker