Docker containers that are running on your local machine can't communicate with each other. In this mini post explains why and shows a demonstration of Docker networks.
Create two containers:
docker run -it -d --rm --name one alpine /bin/sh docker run -it -d --rm --name two alpine /bin/sh // -it -d: run in interactive mode and in background // once container is running, enter /bin/sh mode // use apline as base image
Entering 'one' container and run /bin/sh
docker exec -it one /bin/sh
If you try to ping container 'two', you will get a bad address error, because two containers are isolated.
ping two
Run:
exit
docker stop one
docker stop two
In order to let two container talk to each other, we need 'network':
docker network create alpine-network
Add two containers into network:
docker run -it -d --rm --name one --network alpine-network alpine /bin/sh
docker run -it -d --rm --name two --network alpine-network alpine /bin/sh
You can see the configurations:
docker network inspect alpine-network
Entering one container:
docker exec -it one /bin/sh
ping two
Now two container should be able to communicate each other