为了账号安全,请及时绑定邮箱和手机立即绑定

Docker-Compose 服务不通信

Docker-Compose 服务不通信

Go
胡子哥哥 2023-06-12 15:37:12
Docker 新手警报。希望这不是一个愚蠢的问题,但我似乎无法弄清楚发生了什么。我正在尝试创建一个 docker-compose 文件,该文件创建一个带有已安装卷的 mysql 数据库和一个连接到 mysql 数据库的 go webserver 应用程序。这是我的 docker-compose 文件:services:  db:    image: mysql:8.0.2    environment:       MYSQL_ROOT_PASSWORD: test      MYSQL_DATABASE: northernairport    ports:      - "3306:3306"    volumes:      - /data:/var/lib/mysql  web:    depends_on:      - db    build: .    ports:      - "8080:8080"虽然我的 go 应用程序似乎无法连接到我的 mysql 数据库,但我认为“depends_on”将确保这是可能的。我得到的错误:panic: dial tcp 127.0.0.1:3306: getsockopt: connection refused谁能告诉我我在这里做错了什么?谢谢。
查看完整描述

2 回答

?
红颜莎娜

TA贡献1842条经验 获得超12个赞

onlydepends_on控制服务的构建和启动顺序。

您的实际问题更有可能是您使用了从 Web 应用程序到数据库的错误地址。我看到您没有定义任何网络,因此您正在使用default为您的应用程序创建的网络docker-compose。这将在默认网络的 DNS 上按名称发布每个服务。

因此,您的 Web 应用程序可能应该用作db:3306数据库地址,而不是localhost:3306错误127.0.0.1:3306消息中指示的地址。


查看完整回答
反对 回复 2023-06-12
?
一只斗牛犬

TA贡献1784条经验 获得超2个赞

ports部分用于以下列格式将容器端口与主机映射ports (HOST:CONTAINER)。这意味着您正在尝试访问主机的机器,而是配置web要连接的应用程序db:3306



查看完整回答
反对 回复 2023-06-12
  • 2 回答
  • 0 关注
  • 87 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信