如何通过Docker网络使用容器名连接NiFi与NiFi Registry
解决方案
1. 修正端口拼写错误
你配置的Registry地址http://nifireg:180880存在端口拼写错误,多写了一位数字。容器间通信直接使用容器名+内部监听端口即可,不需要添加网络名前缀,正确的基础地址为http://nifireg:18080。
2. 修改NiFi Registry监听配置
官方apache/nifi-registry镜像默认绑定127.0.0.1地址,仅支持容器本地访问,跨容器请求会被拒绝,这是连接报错的核心原因,有两种修改方式:
- 新建容器时直接通过环境变量指定绑定地址:
docker run -d --name nifireg -p 18080:18080 -e NIFI_REGISTRY_WEB_HTTP_HOST=0.0.0.0 apache/nifi-registry - 现有容器可进入容器修改配置文件:
编辑conf/nifi-registry.properties,将nifi.registry.web.http.host参数值改为0.0.0.0,保存后重启Registry容器生效。
3. 重启容器确认网络生效
由于你是容器启动完成后才手动加入nifi-net自定义网络,建议重启两个容器确保Docker内部DNS解析和网络路由正常加载:
docker restart nifi nifireg
验证方式
进入NiFi容器内部执行以下命令,确认网络连通:
curl http://nifireg:18080
如果能正常返回Registry的前端页面内容,再到NiFi UI的注册表客户端配置中填写http://nifireg:18080即可正常连接。
内容的提问来源于stack exchange,提问作者supahcraig
相关产品推荐
相关产品推荐

