Unable to link two Docker containers on a custom bridge network on Windows

  docker, java, mysql, tomcat, war

I want two Docker containers to be able to communicate with each other on a Windows machine running Docker Toolbox. I am able to link the containers using the --link option; however, if I try to run the containers on a custom bridge network that I created, the containers are unable to communicate with each other :

Here are the steps I followed :

docker network create web-application-mysql-network

docker run --detach --env MYSQL_ROOT_PASSWORD=somepassword--env MYSQL_USER=some-user --env MYSQL_PASSWORD=pass --env MYSQL_DATABASE=mydb --name mysql --publish 3306:3306 --network=web-application-mysql-network mysql:5.7

docker run -p 8080:8080 -d --network=web-application-mysql-network myrepo/mywebapp:0.0.1-SNAPSHOT

The image in the last command above contains the Tomcat web server Docker image as the base image and a “WAR” (web archive file) that will be hosted in Tomcat. When I check the logs for the container started by the last command, I can see the following errors :

Caused by: com.mysql.cj.exceptions.CJCommunicationsException: Communications link failure

The last packet sent successfully to the server was 0 milliseconds ago. The driver has not received any packets from the server.

I am able to link the two containers without any issues if I used the --link option instead of running them on my custom bridge network.

Additional info : I am using localhost in my web app code for the MySQL URL. This seemed to work fine when using --link

What configuration/command parameters am I missing to make this work?

Source: StackOverflow

LEAVE A COMMENT