【问题标题】:Using Docker Compose to connect to mysql running in another container使用 Docker Compose 连接在另一个容器中运行的 mysql
【发布时间】:2016-05-26 20:29:50
【问题描述】:

我是 docker 和 docker-compose 的新手。

我在 docker 容器中运行 mysql,并初始化了两个数据库。

我可以使用以下方式连接到它:

mysql --port=3306 -h192.0.0.1 -uroot -ppassword

当我跑步时:

docker ps

04bc1d308484        container-mysql   "docker-entrypoint.sh"   2 hours ago         Up 2 hours          3306/tcp            container-mysql

我的查询是现在我想使用

从另一个容器连接到它
docker-compose up.

another-image:
  image: another-image
  command: /opt/start.sh
  ports:
    - "8080:8080"
  environment:
    DB_URL: container-mysql
    DB_USER: root
    DB_PASSWORD: password
  external_links:
    - container-mysql

有人可以指导我缺少什么以及还需要什么。

我的容器-mysql 有两个数据库模式。

示例: 第一数据库 第二个数据库

【问题讨论】:

  • 我不确定我是否理解您的问题!但请始终考虑检查以前这样做过的现有开源项目,阅读代码并调试.. 我建议检查此docker-compose.yml 文件github.com/LaraDock/laradock/blob/master/docker-compose.yml 还要检查 DB 容器及其基本映像,以全面了解正在发生的事情以及它是如何工作的。最好的。

标签: java mysql docker docker-compose dockerfile


【解决方案1】:

好的,找到了答案。万一其他人遇到同样的问题,就这样做

docker network ls

此命令列出所有 docker 网络。

|网络 ID |姓名 |司机 |范围 |
| ------------- | --------------- | -------- | -------- |
| c24bee6b5b8e |网络-mysql |桥 |本地 |

因此,演示这一点的 compose 文件可能如下所示:

another-image:
  image: another-image
  command: /opt/start.sh
  ports:
    - "8080:8080"
  environment:
    DB_URL: container-mysql
    DB_USER: root
    DB_PASSWORD: password
  external_links:
    - container-mysql
  network_mode: network-mysql

【讨论】:

  • 最新版本中没有network_mode: network-mysql这样的东西。使用networks:
猜你喜欢
  • 2016-06-15
  • 2019-08-15
  • 2019-07-20
  • 1970-01-01
  • 2020-03-06
  • 2019-11-01
  • 1970-01-01
  • 1970-01-01
  • 2021-03-04
相关资源
最近更新 更多