小编Lor*_*ine的帖子

如何将 docker 与 compose、mysql 和 golang 连接起来

我有一个我们称之为 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")
Run Code Online (Sandbox Code Playgroud)

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
Run Code Online (Sandbox Code Playgroud)

再次澄清,我不能简单地将主机设为 localhost,因为我使用的数据库位于 docker 中,通常类似于 172.17.0.2 或 .3,但有时它会更改。谢谢!

mysql go docker docker-compose

5
推荐指数
1
解决办法
3934
查看次数

标签 统计

docker ×1

docker-compose ×1

go ×1

mysql ×1