0

我有一个运行 nifi ( --name nifi) 的容器公开端口 8080,另一个容器运行 nifi 注册表 ( --name nifireg) 公开端口 10808。我可以访问两个 UI,并且我可以使用注册表容器的 IP 将 nifi 连接到注册表服务中的注册表( 172.17.0.5)。这些容器也在一个名为nifi-net. 我的问题是注册表客户端在使用容器名称时无法与注册表对话。

从 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

我在事后添加了网络,但这不应该是一个问题。

docker network create nifi-net
docker network connect nifi-net nifi
docker network connect nifi-net nifireg
4

1 回答 1

0

我不明白为什么这解决了问题,但是销毁容器并--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 网络。

于 2021-10-28T14:22:29.487 回答