都有一点涉猎 2023-11-18 18:06 采纳率: 37.5%
浏览 17
已结题

在本地运行docker容器,如何在dockerfile中配置电脑本机的MySQL数据库

我想要在本地window环境下构建docker镜像,并在本地运行容器,在浏览器中输入域名可以访问资源并正常访问数据库
在dockersfile中我通过ENV命令来执行环境变量,配置了数据库的连接信息:

img

然后通过控制台运行容器后,可以正常访问到页面资源,但是在登录和访问数据库的时候就出现了连接异常

img


页面资源可以正常访问 ,然后开始登录

img


出现了这个异常,是因为我的dockerfile配置的不正确吗,有什么解决之法

  • 写回答

21条回答 默认 最新

  • 专家-赤兔[在线] 全栈领域优质创作者 2023-11-18 18:06
    关注
    获得0.45元问题酬金

    引自强大而免费的微信小程序:皆我百晓生

    在Dockerfile中配置连接到本机MySQL数据库,需要确保以下几点:

    1. 在Dockerfile中使用ENV命令设置数据库连接信息时,确保连接的主机地址使用的是宿主机的IP地址,而不是localhost。因为在Docker容器内部,localhost代表的是容器本身,而不是宿主机。

    2. 确保宿主机的MySQL服务已经启动,并且监听在默认的端口号(通常是3306)。

    3. 确保宿主机的防火墙或安全组规则允许容器访问宿主机的MySQL服务的端口。

    在你提供的错误日志中,可以看到连接的URL是jdbc:mysql://localhost:3306/ninearts?...,这可能是导致连接异常的原因之一。可以尝试将localhost替换为宿主机的IP地址。

    另外,如果你正在运行容器时使用了-p-P选项来将宿主机的端口映射到容器的端口上,确保宿主机的MySQL服务监听的是映射后的端口,而不是容器内部的端口。

    如果按照以上步骤操作后仍然无法连接到MySQL数据库,请检查宿主机和容器的网络配置,确保它们在同一网络上,并且允许容器访问宿主机的服务。

    评论 编辑记录

报告相同问题?

问题事件

  • 系统已结题 11月26日
  • 创建了问题 11月18日

悬赏问题

  • ¥100 两个按钮控制一个LED
  • ¥15 用C语言写离散数学相关问题
  • ¥30 如何用python的GephiStreamer连接到gephi中,把Python和Gephi的具体操作过程都展示,重点回答Gephi软件的调试,以及如果代码的端口在浏览器中无法显示怎么处理
  • ¥15 ansys机翼建模肋参数
  • ¥15 Sumo软件无法运行
  • ¥15 如何在vscode里搭建stata的编辑环境?
  • ¥15 dify知识库创建问题
  • ¥15 如何用C#的chart画1000万个点不卡顿
  • ¥15 爬虫技术找到网上看过房源客户的电话
  • ¥20 代码:Python随机森林反演生物量数据处理问题