Here we will implement load balance 'Elasticsearch". What is Elasticsearch?
$ docker network create dude $ docker container run -d --net dude --net-alias search elasticsearch:2 $ docker container run -d --net dude --net-alias search elasticsearch:2
$ docker network inspect dude
sample output:
[ { "Name": "dude", "Id": "4834f7a480e2c1ce54cec251c888466896f40a36d07a2955dde376da366141f1", "Created": "2018-08-21T15:25:25.53002801Z", "Scope": "local", "Driver": "bridge", "EnableIPv6": false, "IPAM": { "Driver": "default", "Options": {}, "Config": [ { "Subnet": "172.18.0.0/16", "Gateway": "172.18.0.1" } ] }, "Internal": false, "Attachable": false, "Ingress": false, "ConfigFrom": { "Network": "" }, "ConfigOnly": false, "Containers": { "465cf0425e43233946d89acf4a6473c3e6406d63cd1189cc864862a3a47d83af": { "Name": "elas2", "EndpointID": "3866b46493d8e459ff28687e76a125a234f597460bf0d706857743789391012e", "MacAddress": "02:42:ac:12:00:04", "IPv4Address": "172.18.0.4/16", "IPv6Address": "" }, "cfeba4ef421de14e0c820b1aeb857dcc9d1f40eacd1d8c24c80d32cc58e0a470": { "Name": "elas1", "EndpointID": "1df92ddb794c2dc43ec750b1e3ab1a7c117254b63d709f15edbf74a19df57953", "MacAddress": "02:42:ac:12:00:03", "IPv4Address": "172.18.0.3/16", "IPv6Address": "" } }, "Options": {}, "Labels": {} } ]
$ docker container run -it --net dude --name alpine1 alpine sh /# apk update /# apk add curl
Make multiple search requests, the two Elasticsearch container will take turn provide service to the requests
/# curl -s search:9200 /# curl -s search:9200