我从这里拉取了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服务器?