gpt4 book ai didi

mysql - '拨TCP 127.0.0.1 :3306: getsockopt: connection refused' when trying to run a docker image

转载 作者:可可西里 更新时间:2023-11-01 02:53:26 33 4
gpt4 key购买 nike

这是我正在做的事情的图片:

  1. 我有本地 Go API 代码,我已将其构建到 docker 镜像中。
  2. 我已经从 docker 中提取了 MySQL docker 镜像。
  3. 我在 MySQL 中有数据库,Go API 正在访问 mysql。

一切正常,直到我的 Go API 是本地的并且 mysql 是 docker 容器。现在我已经将本地 Go 代码构建为 docker 镜像,当我尝试使用 docker run --name mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=password -d mysql:5.5 运行此镜像时,Docker 容器立即启动和退出。我尝试 Docker Start -a Container-ID 再次启动容器,我收到此错误“dial tcp 127.0.0.1:3306: getsockopt: connection refused”。

当我搜索这个错误时,我得到了这个输入——“在 mysql 服务器配置中设置绑定(bind)地址:127.0.0.1 后,我能够使用主机 localhost:3306 进行安装。”

但是我不知道如何设置绑定(bind)地址。

与此相关的任何输入都会有所帮助。

谢谢。

最佳答案

您应该使用 Docker 的网络服务发现功能。

将您的两个容器放在同一个网络上,然后它们可以通过 DNS 发现彼此。

例如:

docker network create mynet
docker run --net mynet --name mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=password -d mysql:5.5
docker run --net mynet --name app -p 80:80 -d myappimage:latest

这两个容器都能够将“mysql”或“app”解析为每个容器在“mynet”网络上的 ip。配置您的应用程序以连接到位于“mysql:3306”的 mysql。

关于mysql - '拨TCP 127.0.0.1 :3306: getsockopt: connection refused' when trying to run a docker image,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46904738/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com