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

docker wordpress container can't connect to database container

几天来我一直在使用 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

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

我删除了所有容器,所有图像,重新下载了图像并重建了容器。甚至用新创建的 docker-compose.yml 文件在空文件夹中测试了所有内容。

事实上,在阅读日志时,我什至重新启动了 wordpress 容器 数据库容器已经启动,结果是一样。

为了以防万一,我 运行 使用 docker 快速启动终端在 mac 上将所有这些本地化,如下所述:

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

docker -v 说:

Docker version 1.9.1, build a34a1d5

编辑: 刚刚尝试使用:

image: wordpress:4.4

而不是 "no tag" 下载最新的(在撰写本文时为 4.4.1)并且它有效。所以这似乎是 4.4.1

引入的错误

我在这里开了一个

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

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

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

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

谢谢大家!