使用宿主机Docker网关IP:
通常为172.17.0.1(Docker默认网桥)
在容器内尝试连接这个地址
使用host.docker.internal(适用于较新Docker版本):
直接使用这个特殊域名指向宿主机
连接地址:host.docker.internal:3306
使用宿主机实际IP:
在宿主机上运行ip addr show查看真实IP
配置步骤
在宝塔面板中设置MySQL监听:
修改/etc/my.cnf,确保有:
重启MySQL服务
在宝塔安全设置中:
无需放行公网3306端口
但确保防火墙允许Docker网桥的访问
创建专用网络(推荐):
- docker network create my-networkdocker run --network my-network your-container
复制代码然后使用容器名称作为主机名访问
验证方法
在容器内执行:
- ping host.docker.internal# 或telnet 172.17.0.1 3306
复制代码注意事项
确保MySQL用户权限允许从这些内部IP连接
如果使用Docker Compose,可以通过定义自定义网络实现容器间通信
这样配置后,你的Docker容器就能安全地内部访问宝塔MySQL,而无需暴露3306端口到公网。