【问题标题】:Can't access running service using Docker Stack and Official Wordpress Docker image无法使用 Docker Stack 和官方 Wordpress Docker 映像访问正在运行的服务
【发布时间】:2017-08-19 05:30:55
【问题描述】:

我正在尝试使用 official Wordpress Docker image 部署带有撰写文件的堆栈。

我已将我的撰写文件 (stack.yml) 精简为:

version: '3.1'

services:

  wordpress:
    image: wordpress
    ports:
      - 8080:80
    environment:
      WORDPRESS_DB_PASSWORD_FILE: /run/secrets/db_password
    secrets:
      - db_password

  mysql:
    image: mysql:5.7
    environment:
      MYSQL_ROOT_PASSWORD_FILE: /run/secrets/db_password
    secrets:
      - db_password

secrets:
  db_password:
    file: db_password.txt

除了机密之外,这几乎与文档中给出的内容完全相同。

然后我运行$ docker stack deploy -c stack.yml wordpress

运行$ docker stack services wordpress 确认两个服务都已复制并正在运行。

NAME                  MODE                REPLICAS
wordpress_wordpress   replicated          1/1
wordpress_mysql       replicated          1/1

但是,当我尝试在 Chrome 中从 http://localhost:8080 访问时,我收到以下消息:

localhost didn’t send any data.
ERR_EMPTY_RESPONSE

图像文档还提到从http://swarm-ip:8080 访问。

我尝试运行docker node inspect self --format '{{ .Status.Addr }}',它返回了IP 192.168.65.2,但是在Chrome 中访问192.168.65.2:8080 会返回ERR_CONNECTION_TIMED_OUT

我在 Mac Sierra 10.12.6 上运行 Docker 17.06.0-ce-mac19。

这只是我特定机器上的配置错误吗?还是我遗漏了一些非常明显的东西?

【问题讨论】:

  • 使用docker service logs wordpress_wordpress 并查看您在日志中看到的内容
  • @TarunLalwani 唯一看起来奇怪的是这条消息:AH00558:apache2:无法可靠地确定服务器的完全限定域名,使用 10.0.0.5。全局设置“ServerName”指令以禁止显示此消息
  • db_password.txt的内容是什么?我使用环境变量而不是秘密使用docker stack 在我的系统上检查上述内容,这一切都对我有用
  • @TarunLalwani 我无法告诉你我多么感谢你的帮助。事实证明,这是我使用的秘密。我在秘密中输入了一些随机的单词和字符,其中包括一个! 字符。这导致mysql失败。一旦我删除了! 字符,一切都正常运行了。

标签: wordpress docker docker-compose docker-swarm


【解决方案1】:

请检查db_password.txt的内容。我使用docker stack 在我的系统上使用环境变量而不是机密检查了上述内容,这一切都对我有用

【讨论】:

    猜你喜欢
    • 2018-07-25
    • 2017-01-06
    • 2017-10-19
    • 2017-09-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多