本站支持搜索的镜像仓库:Docker Hub、gcr.io、ghcr.io、quay.io、k8s.gcr.io、registry.gcr.io、elastic.co、mcr.microsoft.com
Apache NiFi是一个强大的数据集成工具,用于自动化和管理系统间的数据流动。本Docker镜像提供Apache NiFi的非官方二进制构建,支持在容器环境中快速部署和运行NiFi实例。该镜像适用于开发、测试及生产环境,提供灵活的认证配置和可定制的运行参数。
| 认证模式 | 适用场景 | 典型用途 |
|---|---|---|
| 单用户认证 | 开发、测试环境,小型独立部署 | 本地数据流程测试、个人项目 |
| 双向TLS认证 | 高安全性环境,需要客户端证书验证 | 金融、医疗等敏感数据处理场景 |
| LDAP认证 | 企业级环境,需集成现有用户目录服务 | 团队协作、多用户权限管理 |
使用默认配置启动NiFi实例,自动生成随机用户名和密码:
docker run --name nifi \ -p 8443:8443 \ -d \ apache/nifi:latest
https://localhost:8443/nifi日志输出格式:docker logs nifi | grep Generated
Generated Username [USERNAME] Generated Password [PASSWORD]
通过环境变量修改HTTPS端口:
docker run --name nifi \ -p 9443:9443 \ -d \ -e NIFI_WEB_HTTPS_PORT='9443' \ apache/nifi:latest
手动设置单用户认证的用户名和密码(密码需至少12个字符):
docker run --name nifi \ -p 8443:8443 \ -d \ -e SINGLE_USER_CREDENTIALS_USERNAME=admin \ -e SINGLE_USER_CREDENTIALS_PASSWORD=ctsBtRBKHRAx69EqUghvvgEvjnaLjFEB \ apache/nifi:latest
注意:若密码长度不足12字符,NiFi将自动生成随机凭据。支持的环境变量可参考容器内
secure.sh和start.sh脚本。
需提供证书文件及配置,通过卷挂载证书目录,并设置相关环境变量:
docker run --name nifi \ -v /本地证书路径:/opt/certs \ # 挂载本地证书目录到容器 -p 8443:8443 \ -e AUTH=tls \ # 指定认证模式为TLS -e KEYSTORE_PATH=/opt/certs/keystore.jks \ # 密钥库路径 -e KEYSTORE_TYPE=JKS \ # 密钥库类型 -e KEYSTORE_PASSWORD=QKZv1hSWAFQYZ+WU1jjF5ank+l4igeOfQRp+OSbkkrs \ # 密钥库密码 -e TRUSTSTORE_PATH=/opt/certs/truststore.jks \ # 信任库路径 -e TRUSTSTORE_PASSWORD=rHkWR1gDNW3R9hgbeRsT3OM3Ue0zwGtQqcFKJD2EXWE \ # 信任库密码 -e TRUSTSTORE_TYPE=JKS \ # 信任库类型 -e INITIAL_ADMIN_IDENTITY='CN=Random User, O=Apache, OU=NiFi, C=US' \ # 初始管理员证书DN -d \ apache/nifi:latest
说明:
INITIAL_ADMIN_IDENTITY需与客户端证书的DN一致,用于初始化管理员权限。
需配置LDAP服务器连接信息,支持SIMPLE、START_TLS、LDAPS等认证策略。
docker run --name nifi \ -v /本地证书路径:/opt/certs \ # 挂载证书目录(HTTPS所需) -p 8443:8443 \ -e AUTH=ldap \ # 指定认证模式为LDAP -e KEYSTORE_PATH=/opt/certs/keystore.jks \ -e KEYSTORE_TYPE=JKS \ -e KEYSTORE_PASSWORD=QKZv1hSWAFQYZ+WU1jjF5ank+l4igeOfQRp+OSbkkrs \ -e TRUSTSTORE_PATH=/opt/certs/truststore.jks \ -e TRUSTSTORE_PASSWORD=rHkWR1gDNW3R9hgbeRsT3OM3Ue0zwGtQqcFKJD2EXWE \ -e TRUSTSTORE_TYPE=JKS \ -e INITIAL_ADMIN_IDENTITY='cn=admin,dc=example,dc=org' \ # LDAP管理员DN(初始管理员) -e LDAP_AUTHENTICATION_STRATEGY='SIMPLE' \ # LDAP认证策略 -e LDAP_MANAGER_DN='cn=admin,dc=example,dc=org' \ # LDAP管理用户DN -e LDAP_MANAGER_PASSWORD='password' \ # LDAP管理用户密码 -e LDAP_USER_SEARCH_BASE='dc=example,dc=org' \ # 用户搜索基准DN -e LDAP_USER_SEARCH_FILTER='cn={0}' \ # 用户搜索过滤器 -e LDAP_IDENTITY_STRATEGY='USE_DN' \ # 身份标识策略 -e LDAP_URL='ldap://ldap:389' \ # LDAP服务器地址 -d \ apache/nifi:latest
添加以下可选环境变量以支持加密LDAP连接:
-e LDAP_TLS_KEYSTORE='' \ # LDAP TLS密钥库路径 -e LDAP_TLS_KEYSTORE_PASSWORD='' \ # 密钥库密码 -e LDAP_TLS_KEYSTORE_TYPE='' \ # 密钥库类型 -e LDAP_TLS_TRUSTSTORE='' \ # LDAP TLS信任库路径 -e LDAP_TLS_TRUSTSTORE_PASSWORD='' \ # 信任库密码 -e LDAP_TLS_TRUSTSTORE_TYPE='' # 信任库类型
通过环境变量配置NiFi集群,需映射nifi.properties和state-management.xml中的关键属性:
| 属性 | 环境变量 | 说明 |
|---|---|---|
| nifi.cluster.is.node | NIFI_CLUSTER_IS_NODE | 是否为集群节点(true/false) |
| nifi.cluster.node.address | NIFI_CLUSTER_ADDRESS | 节点地址 |
| nifi.cluster.node.protocol.port | NIFI_CLUSTER_NODE_PROTOCOL_PORT | 集群通信端口 |
| nifi.cluster.node.protocol.max.threads | NIFI_CLUSTER_NODE_PROTOCOL_MAX_THREADS | 最大通信线程数 |
| nifi.zookeeper.connect.string | NIFI_ZK_CONNECT_STRING | ZooKeeper连接字符串 |
| nifi.zookeeper.root.node | NIFI_ZK_ROOT_NODE | ZooKeeper根节点路径 |
| nifi.cluster.flow.election.max.wait.time | NIFI_ELECTION_MAX_WAIT | 选举最大等待时间 |
| nifi.cluster.flow.election.max.candidates | NIFI_ELECTION_MAX_CANDIDATES | 最大候选节点数 |
| 属性名 | 环境变量 | 说明 |
|---|---|---|
| Connect String | NIFI_ZK_CONNECT_STRING | ZooKeeper连接字符串 |
| Root Node | NIFI_ZK_ROOT_NODE | ZooKeeper根节点路径 |
在运行中的容器内执行Toolkit命令,例如查看当前用户:
# 启动容器 docker run -d --name nifi apache/nifi # 执行Toolkit命令 docker exec -ti nifi nifi-toolkit-current/bin/cli.sh nifi current-user
输出示例:
anonymous
容器内默认端口及功能说明:
| 功能 | 属性 | 端口 | 说明 |
|---|---|---|---|
| HTTP端口 | nifi.web.http.port | 8080 | 未启用HTTPS时的Web端口 |
| HTTPS端口 | nifi.web.https.port | 8443 | 启用HTTPS时的Web端口 |
| 远程输入端口 | nifi.remote.input.socket.port | 10000 | 远程数据输入端口 |
| JVM调试端口 | java.arg.debug | 8000 | JVM调试器端口 |
| 环境变量 | 说明 | 默认值/要求 |
|---|---|---|
| NIFI_WEB_HTTPS_PORT | HTTPS端口 | 8443 |
| SINGLE_USER_CREDENTIALS_USERNAME | 单用户认证用户名 | 随机生成 |
| SINGLE_USER_CREDENTIALS_PASSWORD | 单用户认证密码(至少12字符) | 随机生成 |
| AUTH | 认证模式(single_user/tls/ldap) | single_user |
| INITIAL_ADMIN_IDENTITY | 初始管理员身份(TLS/LDAP模式) | 无(必填) |
| NIFI_VARIABLE_REGISTRY_PROPERTIES | 变量注册表配置文件路径 | 无 |
| NIFI_JVM_HEAP_INIT | JVM初始堆内存(如1g、512m) | 自动计算 |
| NIFI_JVM_HEAP_MAX | JVM最大堆内存(如1g、512m) | 自动计算 |
| NIFI_JVM_DEBUGGER | 启用JVM调试(任意非空值) | 禁用 |
NIFI_WEB_PROXY_CONTEXT_PATH设置代理上下文路径。NIFI_WEB_PROXY_HOST指定受信任的代理主机,格式为host:port。通过以下环境变量调整JVM参数:
NIFI_JVM_HEAP_INIT:初始堆大小(如1g)NIFI_JVM_HEAP_MAX:最大堆大小(如2g)示例:
docker run --name nifi \ -p 8443:8443 \ -e NIFI_JVM_HEAP_INIT=1g \ -e NIFI_JVM_HEAP_MAX=2g \ -d apache/nifi:latest
免费版仅支持 Docker Hub 加速,不承诺可用性和速度;专业版支持更多镜像源,保证可用性和稳定速度,提供优先客服响应。
免费版仅支持 docker.io;专业版支持 docker.io、gcr.io、ghcr.io、registry.k8s.io、nvcr.io、quay.io、mcr.microsoft.com、docker.elastic.co 等。
当返回 402 Payment Required 错误时,表示流量已耗尽,需要充值流量包以恢复服务。
通常由 Docker 版本过低导致,需要升级到 20.x 或更高版本以支持 V2 协议。
先检查 Docker 版本,版本过低则升级;版本正常则验证镜像信息是否正确。
使用 docker tag 命令为镜像打上新标签,去掉域名前缀,使镜像名称更简洁。
探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录方式配置轩辕镜像加速服务,包含7个详细步骤
在 Linux 系统上配置轩辕镜像源,支持主流发行版
在 Docker Desktop 中配置轩辕镜像加速,适用于桌面系统
在 Docker Compose 中使用轩辕镜像加速,支持容器编排
在 k8s 中配置 containerd 使用轩辕镜像加速
在宝塔面板中配置轩辕镜像加速,提升服务器管理效率
在 Synology 群晖NAS系统中配置轩辕镜像加速
在飞牛fnOS系统中配置轩辕镜像加速
在极空间NAS中配置轩辕镜像加速
在爱快ikuai系统中配置轩辕镜像加速
在绿联NAS系统中配置轩辕镜像加速
在威联通NAS系统中配置轩辕镜像加速
在 Podman 中配置轩辕镜像加速,支持多系统
配置轩辕镜像加速9大主流镜像仓库,包含详细配置步骤
无需登录即可使用轩辕镜像加速服务,更加便捷高效
需要其他帮助?请查看我们的 常见问题 或 官方QQ群: 13763429