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