我正在尝试运行Wordpress容器,配置为使用外部MySQL数据库服务器,如下所示:
docker run --name wordpress1 -p 801:80 -e WORDPRESS_DB_HOST=MYDBSERVERIPADDRESS:3306 -e WORDPRESS_DB_USER=username -e WORDPRESS_DB_PASSWORD=password -e WORDPRESS_DB_NAME=dbname -it wordpress但是,当我这样做时,我会得到以下错误:
MySQL连接错误:(1045)拒绝对‘用户名’@‘WRONGIPADDRESS’的访问(使用密码: YES)
问题在于它使用的是容器主机的IP地址(我列出的是WRONGIPADDRESS),而不是我使用WORDPRESS_DB_HOST参数指定的IP地址--它实际上完全忽略了WORDPRESS_DB_HOST参数。
知道为什么会发生这种事吗?这应该是一个非常受欢迎的容器Wordpress的完全支持的-e参数,所以您可以提供的任何帮助都是非常感谢的。
发布于 2018-11-26 00:16:14
默认情况下,Docker内部bridge网络在docker0接口上使用NAT与容器主机外部的主机通信。所以外部主机看到的IP地址是容器主机的IP地址,而不是单个容器的IP地址。您所称的“错误”地址实际上是预期的地址,因为您的MySQL服务器不在主机上的另一个Docker容器中运行,而是在外部。您应该在MySQL用户表中修复用户的IP地址。
https://serverfault.com/questions/941520
复制相似问题