我正在尝试将docker wordpress
容器连接到运行另一个容器的MySQL
服务器。
MySQL正在运行127.0.0.1:3306
WP:127.0.0.1:10000
如果我从$link = mysqli_connect("127.0.0.1", "root", "root", "wp_db");
或普通Tinker
脚本运行PHP
,它运行正常;我也可以使用Sequel Pro通过上述设置连接到docker MySQL。但是,当我尝试将这些设置放在WP管理页面中以连接到数据库时,它说
建立数据库连接时出错
有什么我想念的吗?
答案 0 :(得分:1)
您的问题是wp位于容器内部,无法与其他容器通信。
您可以从主机到容器,但不能从容器内部到另一个容器内。
我建议你看看docker-compose,这是一个用docker-compose.yml配置文件定义和运行多容器Docker应用程序的工具。
您的问题的一个非常基本的例子可能是这样的
wp:
image: yourworpressimagefromdockerhub
ports:
- 10000:10000
links:
- mysql:mysql
mysql:
image: yourmysqlimagefromdockerhub
ports:
- 3306:3306
“wp”容器知道带有“links”条目的“mysql”容器。
然后,只要你想从wp容器调用mysql docker容器,你只需使用“mysql”而不是“127.0.0.1”