docker wordpress 容器无法连接到数据库容器

Posted

技术标签:

【中文标题】docker wordpress 容器无法连接到数据库容器【英文标题】:docker wordpress container can't connect to database container 【发布时间】:2016-04-17 06:09:18 【问题描述】:

我使用 docker 构建 wordpress 应用程序已经有几天了。我做了一些工作,但现在我不知道为什么我可以连接数据库容器和 wordpress 容器。

我已将失败的配置减少到最简单的程度。

现在我有以下 docker-compose.yml 文件:

wordpress:
  image: wordpress
  links:
    - db:mysql
  ports:
    - 8080:80

db:
  image: mariadb
  environment:
    MYSQL_ROOT_PASSWORD: example

这是这个官方示例的精确副本:

https://hub.docker.com/_/wordpress/

(向下滚动到“...通过 docker-compose”)。

如果我用这个文件作曲,我会得到以下相关的日志条目:

Creating miqueladell_db_1
Creating miqueladell_wordpress_1
Attaching to miqueladell_db_1, miqueladell_wordpress_1
db_1        | Initializing database

…很多初始化…

wordpress_1 | Warning: mysqli::mysqli(): (HY000/2002): Connection refused in - on line 10

...这会持续一段时间,db_1 说它正在初始化,wordpress_1 说它可以连接 然后……

db_1        | MySQL init process done. Ready for start up.

…更多数据库消息…

db_1        | 2016-01-12 14:34:46 139698309449664 [Note] mysqld: ready for connections.
wordpress_1 | AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 172.17.0.5. Set the 'ServerName' directive globally to suppress this message
wordpress_1 | AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 172.17.0.5. Set the 'ServerName' directive globally to suppress this message
wordpress_1 | [Tue Jan 12 14:34:47.180996 2016] [mpm_prefork:notice] [pid 1] AH00163: Apache/2.4.10 (Debian) php/5.6.17 configured -- resuming normal operations
wordpress_1 | [Tue Jan 12 14:34:47.181253 2016] [core:notice] [pid 1] AH00094: Command line: 'apache2 -D FOREGROUND'

……如果我浏览到我得到的 wordpress 端点……

wordpress_1 | 192.168.99.1 - - [12/Jan/2016:14:34:47 +0000] "GET / HTTP/1.1" 500 586 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_2) AppleWebKit/537.36 (Khtml, like Gecko) Chrome/47.0.2526.106 Safari/537.36"

并且前端出现建立数据库连接时出错

我已将完整日志粘贴在这里,以防有人想查看:http://pastebin.com/Z9U2iMsH

我之前已经运行过我的环境,我确信如果不是这个特定的示例,我已经能够运行容器并使用我今天尝试的一些示例(没有运气)连接到数据库,所以我猜那里我的环境有问题,但我不知道如何调试它。

我已删除所有容器、所有图像、重新下载图像并重建 de 容器。甚至使用新创建的 docker-compose.yml 文件测试了一个 enpty 文件夹中的所有内容。

事实上,在阅读日志时,似乎 wordpress 进程已经用尽了它的尝试,我什至重新启动了 wordpress 容器数据库容器已经启动并且结果是一样的。

以防万一,我使用此处描述的 docker quickstart 终端在 Mac 上本地运行所有这些:

https://docs.docker.com/mac/step_one/

docker -v 说:

Docker version 1.9.1, build a34a1d5

编辑:刚刚尝试使用:

image: wordpress:4.4

而不是“无标签”,它下载最新(撰写本文时为 4.4.1)并且它可以工作。所以这似乎是 4.4.1 引入的一个错误

我在这里开了一个

https://github.com/docker-library/wordpress/issues/120

我会保留这个问题以防万一,但似乎很明显这是一个错误

【问题讨论】:

你能设法获取 PHP 错误日志的内容吗? 这是一个错误,已经解决。下次我会记住 PHP 错误日志。谢谢! 【参考方案1】:

这是 wordpress 容器 4.4.1 版本的一个错误。

我在这里https://github.com/docker-library/wordpress/issues/120 提出了一个问题,现在已经解决了。

谢谢大家!

【讨论】:

为什么docker-compose pull最后解决了你的问题? 因为开发人员确实使用修复 XD Docker pull 更新了图像,只是为了拉出最新的图像 或者可能不是...我确实是这样认为的,我已经去检查了 github 上的推送,一切都是 5 天前的...奇怪

以上是关于docker wordpress 容器无法连接到数据库容器的主要内容,如果未能解决你的问题,请参考以下文章

Django docker 容器无法连接到 mysql 容器,出现错误“无法连接到 'db' (111) 上的 MySQL 服务器”)

Docker:Springboot 容器无法连接到 PostgreSql 容器

无法使用 SSH 连接到 docker 容器 [关闭]

无法连接到 Docker 容器内的 MongoDB

无法连接到 docker 容器内的 SQL Server

Docker 容器无法连接到 Redis