Docker-to-docker Mysql connection I have a 2 docker setup - one container with a MysqlDB on it and another with a web server. Both are on the same machine.

The db container has it 3306 port exposed though the hosts 3306 port (argument -p 3306:3306). This container is reachable (I can log into the mysql database) both through the host machine and outside, but for some reason, the web server container fails to connect to it.

I have ssh on the container with the web server. When I run:

nmap -p 3306 host.machine.ip.address 


on it, I get:

PORT     STATE    SERVICE  
3306/tcp filtered mysql


and when I actually try to log in I get:

mysql -h host.machine.ip.address -u root -p
Enter password:
ERROR 2003 (HY000): Can't connect to MySQL server on 'host.machine.ip.address' (113)


Can somebody point me to where the issue might be?
First of all are the containers visible to one another i.e. can you ping the mysql box from the webserver?

If not it is a visibility issue, try creating a docker network to put the two containers within.

First create a docker network:

docker network create lamp-network


You can see this by the following command:

docker network ls


Now start your two containers with the additional flag:

--net lamp-network


Now try pinging and seeing if you have connection, if so then MySQL should work, although depending on setup you may have to comment out the bind-address from the config.