以下是我正在做的事情:
一切正常,直到我的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。
任何与此相关的输入都会有所帮助。
感谢。
答案 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。