Skip to main content
  1. Posts/

Configure Network Aliases Docker

·2 mins·
docker docker
Table of Contents

Opsi --alias dapat digunakan untuk resolve container dengan nama lain di jaringan yang terhubung.

Network alias ini tidak jauh berbeda seperti saat membuat network baru dengan driver bridge lalu setelah container dihubungkan dengan bridge, container satu sama lain dapat saling ping menggunakan nama container tersebut. Detailnya dapat Anda simak disini

Untuk simulasi network alias akan dicoba dengan menginstall consul di docker.

Docker
#

Buat network bridge dengan nama dc1

docker network create -d bridge dc1

Lalu buat 4 container consul menggunakan perintah berikut.

docker run -dit --name control-1 -e CONSUL_BIND_INTERFACE=eth0 \
--network dc1 --network-alias control_cluster \
consul agent -server -ui -node=control-1 -client=0.0.0.0 -bootstrap-expect=2 -retry-join control_cluster

Selanjutnya cek consul members

$ docker exec control-1 consul members
Node       Address          Status  Type    Build   Protocol  DC   Partition  Segment
control-1  172.19.0.2:8301  alive   server  1.15.2  2         dc1  default    <all>
control-2  172.19.0.3:8301  alive   server  1.15.2  2         dc1  default    <all>
control-3  172.19.0.4:8301  alive   server  1.15.2  2         dc1  default    <all>
control-4  172.19.0.5:8301  alive   server  1.15.2  2         dc1  default    <all>

Status alive berarti 4 container sudah saling terhubung dengan network alias control_cluster.

Pengetesan selanjutnya Anda dapat masuk ke terminal salah satu container

docker exec -it control-1 sh

Test ping ke tujuan network alias control_cluster

/ # ping -c4 control_cluster
PING control_cluster (172.19.0.4) 56(84) bytes of data.
64 bytes from control-3.dc1 (172.19.0.4): icmp_seq=1 ttl=64 time=0.089 ms
64 bytes from control-3.dc1 (172.19.0.4): icmp_seq=2 ttl=64 time=0.140 ms
64 bytes from control-3.dc1 (172.19.0.4): icmp_seq=3 ttl=64 time=0.095 ms
64 bytes from control-3.dc1 (172.19.0.4): icmp_seq=4 ttl=64 time=0.090 ms

Output ping akan mengarah ke container yang terhubung ke network alias yang sama.

Lalu coba test ping kembali

/ # ping -c4 control_cluster
PING control_cluster (172.19.0.5) 56(84) bytes of data.
64 bytes from control-4.dc1 (172.19.0.5): icmp_seq=1 ttl=64 time=0.073 ms
64 bytes from control-4.dc1 (172.19.0.5): icmp_seq=2 ttl=64 time=0.097 ms
64 bytes from control-4.dc1 (172.19.0.5): icmp_seq=3 ttl=64 time=0.100 ms
64 bytes from control-4.dc1 (172.19.0.5): icmp_seq=4 ttl=64 time=0.080 ms

Output akan mengarah ke container lainnya.

Docker Stack
#

Untuk menambahkan network alias agar bisa di deploy dengan docker stack.

Buat file dengan nama stack.yml lalu tambahkan konfig berikut.

version: "3.8"

networks:
  backend:

services:
  consul:
    image: consul:latest
    networks:
       backend:
          aliases:
             - consul_cluster
    environment:
      - CONSUL_BIND_INTERFACE=eth0
    command: agent -server -ui -client 0.0.0.0 -retry-join consul_cluster -bootstrap-expect=2
    deploy:
      replicas: 2
      endpoint_mode: dnsrr
      placement:
        max_replicas_per_node: 1
      update_config:
        parallelism: 1
        delay: 60s
      restart_policy:
        condition: on-failure
    ports:
       - target: 8500
         published: 8500
         protocol: tcp
         mode: host

Deploy dengan perintah

docker stack deploy -c stack.yml consul

Selanjutnya dapat Anda test dengan cara yang sama seperti sebelumnya.

Related

Using IPvlan network in Docker
·5 mins
docker docker
Using Host Network in Docker
·1 min
docker docker
Using Overlay Network in Docker
·2 mins
docker docker
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