• 背景说明
  1. 同一台机子(以linux为例)部署以下项目、数据库
  2. docker部署mysql、mongo、postgresql、clickhouse数据库
  3. docker部署spring-boot项目、python、go等项目需要连接数据库
    以spring-boot项目连接mysql为例,通常yml这样配置
jdbc:mysql://127.0.0.1:3306/database_1?useUnicode=true&characterEncoding=utf8&serverTimezone=GMT%2b8
  • 报错原因
    docker部署的项目、数据库是一个一个相互独立的环境。即spring-boot容器连接数据是去该容器内找127.0.0.1的mysql数据库,找不到就报错

  • 解决方案
    使用host.docker.internal替换127.0.0.1,
    示例:

    mysql://host.docker.internal:3306
    mongodb://host.docker.internal:27017
    postgresql://host.docker.internal:5432
    clickhouse://host.docker.internal:8123
    
  • 注意数据库启动时如果创建了网络
    则使用创建的网络ip替换127.0.0.1
    示例:

    # 创建网络 
    docker network create -d bridge --subnet 192.168.0.0/24 --gateway 192.168.0.1 pgnetwork
    # 具体yml使用
    mysql://192.168.0.1:3306
    mongodb://192.168.0.1:27017
    postgresql://192.168.0.1:5432
    clickhouse://192.168.0.1:8123
    
  • docker启动数据库记得加参数,示例
    --network pgnetwork --ip 192.168.0.101

GitHub 加速计划 / li / linux-dash
10.39 K
1.2 K
下载
A beautiful web dashboard for Linux
最近提交(Master分支:2 个月前 )
186a802e added ecosystem file for PM2 4 年前
5def40a3 Add host customization support for the NodeJS version 4 年前
Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐