无法从另一个容器访问Docker容器中的MySQL数据库

无法从另一个容器访问Docker容器中的MySQL数据库

我从这里拉取了 MySQL 5.7 容器:https://hub.docker.com/_/mysql/

以下是我的运行方式:

docker run --name mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=pwd -d mysql:5.7

它运行良好,我能够从我的主机连接到 MySQL 数据库。

但是,当我尝试运行另一个容器,其mysql容器链接如下时:

docker run --link mysql:mysql -p 8080:8080 -d app:dev

我的容器无法连接到mysql

# 172.17.0.3 is mysql's ip taken from /etc/hosts of another container.
mysql -h 172.17.0.3 -u root -ppwd

ERROR 2003 (HY000): Can't connect to MySQL server on '172.17.0.3'

我尝试使用 docker 网络但遇到了同样的错误。

输出如下nmap -p 3306 172.17.0.2

Starting Nmap 7.01 ( https://nmap.org ) at 2018-06-03 08:34 UTC
Nmap scan report for e66874413058 (172.17.0.2)
Host is up (0.00012s latency).
PORT     STATE  SERVICE
3306/tcp closed mysql

Nmap done: 1 IP address (1 host up) scanned in 0.39 seconds

由于未知原因,端口已关闭。如果我nmap从主机运行命令,则端口是打开的。

如何从另一个docker容器连接到MySQL服务器?

相关内容