Docker container with fixed IP address

franckpachot

Franck Pachot

Posted on December 6, 2023

Docker container with fixed IP address

When starting a YugabyteDB cluster, you provide network and host names, but the nodes identify themselves by their IP addresses. In a Docker lab, if you stop and restart them, the assigned IP address may change.

It is recommended to create a Docker network with an IP range using the --subnet flag and start containers with a static IP address using the --ip flag.

Here's an example of how to start a 3-node cluster:

docker network create --subnet=172.16.1.0/16 yb_lab &&
docker run -d --network yb_lab --ip 172.16.1.1 --hostname yb1 \
 --name yb1 -p 15433:15433 yugabytedb/yugabyte \
 yugabyted start --background=false &&
docker exec yb1 bash -c '
 until postgres/bin/pg_isready -h $(hostname) ; do sleep 1 ; done | 
 uniq && yugabyted status
' &&
docker run -d --network yb_lab --ip 172.16.1.2 --hostname yb2 \
 --name yb2 yugabytedb/yugabyte \
 yugabyted start --background=false --join=yb1 &&
docker exec yb2 bash -c '
 until postgres/bin/pg_isready -h $(hostname) ; do sleep 1 ; done | 
 uniq && yugabyted status
' &&
docker run -d --network yb_lab --ip 172.16.1.3 --hostname yb3 \
 --name yb3 yugabytedb/yugabyte \
 yugabyted start --background=false --join=yb1 &&
docker exec yb3 bash -c '
 until postgres/bin/pg_isready -h $(hostname) ; do sleep 1 ; done | 
 uniq && yugabyted status
'
Enter fullscreen mode Exit fullscreen mode

Output:
Image description

The example above has exported the port 15433 to show the console on http://localhost:15433
Image description

More nodes can be added with a similar yugabyted start --join= command.

If you want to delete this network along with all its containers, follow the steps below:


docker rm -f $(docker ps --filter "network=yb_lab" -qa)
docker network rm yb_lab

Enter fullscreen mode Exit fullscreen mode

Image description

💖 💪 🙅 🚩
franckpachot
Franck Pachot

Posted on December 6, 2023

Join Our Newsletter. No Spam, Only the good stuff.

Sign up to receive the latest update from our blog.

Related

Docker container with fixed IP address
yugabytedb Docker container with fixed IP address

December 6, 2023