当前位置: 首页 > 知识库问答 >
问题:

Nifi无法用docker启动

许昆
2023-03-14

我想用nifi和码头工人一起,但没有用。我有以下docker-file

version: "3.7"
services:
  nifi_one:
    image: apache/nifi
    hostname: nifi_one
    container_name: nifi_one
    environment:
      NIFI_WEB_HTTP_HOST: "http://localhost"
      NIFI_WEB_HTTP_PORT: "8084"
      NIFI_CLUSTER_IS_NODE: "true"
      NIFI_CLUSTER_NODE_PROTOCOL_PORT: "8085"
      NIFI_ZK_CONNECT_STRING: "localhost:2181"
      NIFI_ELECTION_MAX_WAIT: "1 min"
    network_mode: host
    volumes:
      - ./nifi:/nifi

  nifi_two:
    image: apache/nifi
    hostname: nifi_two
    container_name: nifi_two
    depends_on:
     - nifi_one
    environment:
      NIFI_WEB_HTTP_HOST: "http://localhost"
      NIFI_WEB_HTTP_PORT: "8084"
      NIFI_CLUSTER_IS_NODE: "true"
      NIFI_CLUSTER_NODE_PROTOCOL_PORT: "8085"
      NIFI_ZK_CONNECT_STRING: "localhost:2181"
      NIFI_ELECTION_MAX_WAIT: "1 min"
    network_mode: host
    volumes:
      - ./nifi:/nifi

volumes:
  nifi:

我收到以下错误

共有1个答案

桑坚
2023-03-14

需要做三个更改来修复该问题(如果只做一个更改,将引发其他异常):

  1. 删除nifi_web_http_host:“http://localhost”行,因为它在加载WebServer时引发异常。
  2. nifi_cluster_is_node:“true”应将行nifi_cluster_is_node:“false”更改为nifi_cluster_is_node:“false”,因为未定义群集。
  3. 删除network_mode:host行。

在进行这些更改之后,两个Nifi应用程序被成功加载。

但是,YAML文件中还缺少一个定义,该定义对于向外部访问公开Nifi应用程序至关重要。
添加端口:定义可以修复Nifi应用程序侦听的外部端口。格式为{外部端口}:{内部端口}。

下面的YAML代码创建并加载了两个Nifi应用程序。一个在http://localhost:8088/nifi上公开,另一个在http://localhost:8090/nifi上公开。

请注意三方共享的共享文件夹的定义:容器的主机、nifi_one和nifi_two。

完整的定义是:

version: "2.0"
services:
  nifi_one:
    image: apache/nifi
    hostname: nifi_two
    container_name: nifi_one
    ports:
      - 8088:8080 # the internal port 8080 is exposed as 8088
    environment:
      NIFI_WEB_HTTP_PORT: "8080"
      NIFI_CLUSTER_IS_NODE: "false"
      NIFI_CLUSTER_NODE_PROTOCOL_PORT: "8085"
      NIFI_ZK_CONNECT_STRING: "localhost:2181"
      NIFI_ELECTION_MAX_WAIT: "1 min"
    volumes:
      - ./nifi-vol:/opt/nifi/nifi-current/temp2


  nifi_two:
    image: apache/nifi
    hostname: nifi_two
    container_name: nifi_two
    depends_on:
     - nifi_one
    ports:
      - 8090:8081 # setting a unique port to exemplify this feature 
    environment:
      NIFI_WEB_HTTP_PORT: "8081" # the Nifi listens to port 8081 in the container, which is exposed as 8090 externally
      NIFI_CLUSTER_IS_NODE: "false"
      NIFI_CLUSTER_NODE_PROTOCOL_PORT: "8085"
      NIFI_ZK_CONNECT_STRING: "localhost:2181"
      NIFI_ELECTION_MAX_WAIT: "1 min"
    volumes:
      - ./nifi-vol:/opt/nifi/nifi-current/temp2

volumes:
  nifi:

 类似资料:
  • 我已经尝试了几次运行Apache Nifi服务器,但都不行。我使用的是Windows8,并安装了JavaVersion8。 我会收到以下错误消息: “nifi-env.bat”无法识别为内部或外部命令、可操作程序或批处理文件。 未正确定义JAVA_HOME环境变量。 将使用路径查找java可执行文件。 我尝试了以下类似问题的解决方案,但这没有帮助: windows上的Nifi命令 我也尝试了本视频

  • 我一直在尝试启动NiFi,但每次我这样做,我都得到以下错误:

  • 我正在Ubuntu 16.04上运行PhpStorm,并试图将Xdebug配置为与Docker一起使用。我遵循了本指南: 使用Xdebug和PhpStorm进行零配置Web应用程序调试 这是我做的步骤: 下载捷豹游戏提供的 Docker Xdebug 项目源代码 编辑Xdebug远程主机: 配置 DBGp 代理(在“语言”下) 编辑运行/调试配置 编辑 Docker 的生成、执行和部署 启动Doc

  • 问题内容: 码头工人给我一个困难时期。我按照以下说明进行操作,以便在运行由strato.de托管的Ubuntu 14.04的虚拟服务器上安装docker。 执行此行直接将我带入此错误消息: 安装完成后,我安装了上述两个软件包。现在我的问题是我无法让docker运行。 结果是: 结果是 和 结果是 有人对缺少哪些依赖项有任何线索吗?还有什么可能出问题了?码头工人是否提供任何日志? 我正在来回寻找解决

  • 在 Windows 上执行命令将返回以下结果: 运行诊断程序会产生以下结果:

  • 我正在尝试在CentOS系统上运行Apache NiFi。我下载了它并使用以下命令运行它: 结果如下: 然后,我用命令检查Apache NiFi的状态: 结果是: 但最后当我尝试访问http://localhost:8090/nifi或http://localhost:8080/nifi在我的浏览器上显示:无法连接。(我将http端口更改为8090以避免冲突,但仍然存在相同的问题)。请帮帮我,有什