【发布时间】:2019-12-16 17:31:05
【问题描述】:
我正在使用 Windows 10 和 docker 桌面。 我从 docker 存储库中提取 consul docker 映像并尝试将 consul docker 服务器容器化以发现 mysql 服务。要将 mysql 服务添加到 consul docker 中,我输入 CONSUL 环境变量。例如,
CONSUL_SERVICE_ID=mysql
CONSUL_SERVICE_NAME=mysql8
CONSUL_SERVICE_ADDRESS=xxx.xxx.xxx.xxx
CONSUL_SERVICE_PORT=3306
但是 consul docker server 在运行 consul 容器时无法发现 mysql 服务。我拉的 docker 镜像是 consul 和 gliderlabs/consul-server 如何将 mysql 服务注册到 consul docker 服务器?在 localhost 上安装 consul 服务器时,不是容器化,consul 服务器成功发现 mysql 服务。我不知道如何在码头上。请回复。
【问题讨论】:
-
你的mysql服务器在哪里运行?它是与领事相同的撰写文件的一部分吗? mysql 是完全容器化还是在机器上独立运行?
-
感谢您的回复。在同一主机上。但在不同的容器上运行。
-
我建议您将它们放在同一个
docker-compose文件中,然后它们就可以使用服务名称(在撰写文件中定义)作为它们的 DS 条目来检测彼此。以防万一,您必须将它们分开,您是否暴露了 mysql 服务器的端口? (看看你是否可以从你的主机访问Mysql(不涉及任何容器)。 -
Mysql docker 容器可以从容器外部的本地主机连接。有consul环境变量吗?