【已解答】Docker里面的容器想访问宝塔的MySQL应该用哪个IP...
Docker里面的容器想访问宝塔的MySQL应该用哪个IP或者地址,不想放行3306端口给外部,如何只在内部访问,填localhost和127.0.0.1都不行 关联帖子:https://www.bt.cn/bbs/thread-128737-1-1.html 本帖最后由 是山河呀 于 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,确保有:bind-address = 0.0.0.0重启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端口到公网。
是山河呀 发表于 2025-6-6 06:57
[*]
[*]使用宿主机Docker网关IP:
你这个是ai回答的吧 iKxin 发表于 2025-6-6 08:50
你这个是ai回答的吧
之前我在腾讯云社区写过文章,直接复制的
楼上大佬已经给出详细的方案
一般用docker的网桥IP即可,ifconfig可以查看docker0的IP
修改mysql的权限,允许docker的网桥IP访问即可
页:
[1]