'拨tcp 127.0.0.1:3306:getsockopt:连接被拒绝'尝试运行泊坞窗图像时

时间:2017-10-24 07:35:54

标签: mysql docker tcp containers

以下是我正在做的事情:

  1. 我有本地Go API代码,我已将其构建为docker镜像。
  2. 我从docker中提取了MySQL docker图像。
  3. 我在MySQL中有DB,Go API正在访问mysql。
  4. 一切正常,直到我的Go API是本地的,而mysql是docker容器。现在我已将本地Go代码构建为docker image,当我尝试使用docker run --name mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=password -d mysql:5.5运行此图像时,Docker容器会立即启动并退出。 我尝试Docker Start -a Container-ID再次启动容器,我收到此错误'拨打tcp 127.0.0.1:3306:getsockopt:连接被拒绝'。

    当我搜索这个错误时,我得到了这个输入 - "在mysql服务器配置中设置bind-address:127.0.0.1后,我能够使用host localhost:3306进行安装。"

    但我不知道如何设置bind-address。

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

    感谢。

1 个答案:

答案 0 :(得分:0)

您应该使用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。