我有一个运行nifi (--name nifi)的容器暴露了8080端口,另一个运行nifi注册表(--name nifireg)的容器暴露了端口10808。我可以访问这两个UI,并且能够通过使用注册中心容器的IP (172.17.0.5)将nifi连接到注册中心服务中的注册中心。这些容器也位于一个名为nifi-net的docker网络上。我的问题是,当使用容器名称时,注册表客户端无法与注册表对话。
从nifi我可以通过容器IP和名称(ping nifireg)来ping,所以有一定程度的连通性。但是,如果我将注册表客户端更改为指向http://nifireg:180880,甚至是http://nifi-net.nifireg:18080,它会计时一段时间,然后最终返回以下错误:
Unable to obtain listing of buckets: java.net.ConnectException: Connection refused (Connection refused)需要做什么才能允许nifi使用容器名称连接到nifi注册表?
编辑:下面是我如何设置所有内容:
docker run -d --name nifi -p 8080:8080 apache/nifi
docker run -d --name nifireg -p 18080:18080 apache/nifi-registry我在事后添加了netorking,但这不应该是问题。
docker network create nifi-net
docker network connect nifi-net nifi
docker network connect nifi-net nifireg发布于 2021-10-28 14:22:29
我不明白为什么这解决了问题,但销毁容器并在启动时使用--net nifi-net选项重新创建容器解决了问题。
docker run -d --name nifi --net nifi-net -p 8080:8080 apache/nifi
docker run -d --name nifireg --net nifi-net -p 18080:18080 apache/nifi-registry文档指出,您可以在事后将它们添加到网络中,我可以使用名称从一个容器ping到另一个容器。我想这只是一个教训,我需要更多地使用docker网络。
https://stackoverflow.com/questions/69741604
复制相似问题