Docker部署下无法通过端口访问Grafana及MySQL数据源配置疑问
问题解答
访问Grafana失败的原因
- 端口匹配错误:3306是MySQL容器的服务端口,Grafana自身暴露的服务端口为3000,你用错了端口自然无法访问Grafana服务。
- 容器内部IP访问限制:通过
docker inspect获取的172.19.0.3是Docker网桥分配的容器内网IP,仅支持同一Docker网络下的其他容器访问,宿主机或外部设备无法直接通过该IP访问容器服务。 - 正确访问方式:直接用宿主机IP + 你映射的Grafana端口3000访问即可,本地测试直接打开
http://localhost:3000就能进入Grafana登录页面。
MySQL数据源主机地址配置说明
- 你说的没错,主机地址直接填
mysql-server:3306即可。 - 原理:同一docker-compose中定义的所有服务会默认加入同一个专属Docker网桥,Docker内置的DNS服务可以直接将服务名
mysql-server解析为对应MySQL容器的内网IP,容器之间通信不需要走宿主机的端口映射,也不需要手动填写容器的内网IP。
补充提示:如果配置完成后仍然提示连接失败,大概率是官方mysql镜像默认使用的
caching_sha2_password身份认证插件不被Grafana的MySQL驱动兼容,可以在mysql-server的environment配置段添加一行MYSQL_DEFAULT_AUTHENTICATION_PLUGIN: mysql_native_password,重建容器后再尝试连接即可。
内容的提问来源于stack exchange,提问作者kakaka
相关产品推荐
相关产品推荐

