gpt4 book ai didi

mysql - 如何连接docker与compose、mysql、golang

转载 作者:IT王子 更新时间:2023-10-29 00:46:01 24 4
gpt4 key购买 nike

我有一个称为 mariadb 的数据库 docker ,还有一个使用 golang 的网络 docker 。我想做的是使用 compose 连接两个 docker,但在我的 golang 代码中,我必须提前知道数据库 docker 的 ip 地址。

Golang main.go:

db, err := sql.Open("mysql", 
"root:passsword@tcp(<should_be_database_docker_ip>:3306)/database")

Docker-compose.yml

version: '3'

services:
web:
image: web_docker
ports:
- "8080"
depends_on:
- database

database:
image: mariadb
ports:
- "3306"
environment:
- MYSQL_ROOT_PASSWORD=password
volumes:
- /data:/var/lib/mysql

再次澄清一下,我不能简单地将主机设置为本地主机,因为我使用的数据库位于 docker 中,通常类似于 172.17.0.2 或 .3,但有时会发生变化。谢谢!

最佳答案

您可以只使用您的 docker 服务名称 database,而不是容器 ip

更新您还应该共享端口,例如

"3306:3306"

或者端口会随机映射

查看输出

docker-compose ps

UPD2根据 mysql docker image doc你还需要定义更多的环境变量,例如MYSQL_DATABASE

关于mysql - 如何连接docker与compose、mysql、golang,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45736762/

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