宝塔618特惠活动,企业版999元/年,宝塔SSL证书买1送1!限时抢购!查看活动
当前位置:论坛首页 > Linux面板 > 讨论

【已解答】Docker里面的容器想访问宝塔的MySQL应该用哪个IP...

发表在 Linux面板前天 23:17 [复制链接] 5 59

Docker里面的容器想访问宝塔的MySQL应该用哪个IP或者地址,不想放行3306端口给外部,如何只在内部访问,填localhost和127.0.0.1都不行
使用道具 举报 只看该作者 回复
发表于 前天 23:19 | 显示全部楼层
使用道具 举报 回复 支持 反对
发表于 昨天 06:57 | 显示全部楼层
本帖最后由 是山河呀 于 2025-6-6 06:58 编辑


  • 使用宿主机Docker网关IP:

    通常为172.17.0.1(Docker默认网桥)
    在容器内尝试连接这个地址

    使用host.docker.internal(适用于较新Docker版本):
    直接使用这个特殊域名指向宿主机
    连接地址:host.docker.internal:3306

    使用宿主机实际IP:
    在宿主机上运行ip addr show查看真实IP


    配置步骤
    在宝塔面板中设置MySQL监听:

    修改/etc/my.cnf,确保有:
    1. bind-address = 0.0.0.0
    复制代码
    重启MySQL服务
    在宝塔安全设置中:
    无需放行公网3306端口
    但确保防火墙允许Docker网桥的访问
    创建专用网络(推荐):
    1. docker network create my-networkdocker run --network my-network your-container
    复制代码
    然后使用容器名称作为主机名访问

    验证方法
    在容器内执行:
    1. ping host.docker.internal# 或telnet 172.17.0.1 3306
    复制代码
    注意事项
    确保MySQL用户权限允许从这些内部IP连接
    如果使用Docker Compose,可以通过定义自定义网络实现容器间通信

    这样配置后,你的Docker容器就能安全地内部访问宝塔MySQL,而无需暴露3306端口到公网。

使用道具 举报 回复 支持 反对
发表于 昨天 08:50 | 显示全部楼层
是山河呀 发表于 2025-6-6 06:57

  • 使用宿主机Docker网关IP:

  • 你这个是ai回答的吧
    使用道具 举报 回复 支持 反对
    发表于 昨天 08:58 | 显示全部楼层
    iKxin 发表于 2025-6-6 08:50
    你这个是ai回答的吧

    之前我在腾讯云社区写过文章,直接复制的
    使用道具 举报 回复 支持 反对
    发表于 昨天 10:30 | 显示全部楼层
    楼上大佬已经给出详细的方案
    一般用docker的网桥IP即可,ifconfig可以查看docker0的IP
    修改mysql的权限,允许docker的网桥IP访问即可
    使用道具 举报 回复 支持 反对
    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    普通问题处理

    论坛响应时间:72小时

    问题处理方式:排队(仅解答)

    工作时间:白班:9:00 - 18:00

    紧急运维服务

    响应时间:3分钟

    问题处理方式:宝塔专家1对1服务

    工作时间:工作日:9:00 - 18:30

    宝塔专业团队为您解决服务器疑难问题

    点击联系技术免费分析

    工作时间:09:00至18:30

    快速回复 返回顶部 返回列表