NJet Docker镜像介绍与运行

NJet Docker镜像介绍与运行

aria_

2025-10-29 发布25 浏览 · 0 点赞 · 0 收藏

镜像简介

镜像内NJet文件说明

NJet镜像中NJet安装目录为/usr/local/njet/,如下图所示:

Njet镜像文件介绍
文件名(相对于/usr/local/njet/)
conf
data
logs
modules
lualib
sbin
镜像参数说明
label信息
:-:
label名
njet.org.cn.image.build.target
njet.org.cn.image.build.os
njet.org.cn.image.njet.revision
njet.org.cn.image.njet.version
镜像内NJet二进制也可以查看源码commit id

运行NJet容器

容器启动后,NJet默认监听的端口如下表所述:

端口 描述
8080 NJet数据面端口,实现业务请求处理
8081 NJet控制面端口,实现NJet动态API处理

最小特权

出于安全考虑,在运行NJet容器时,我们推荐使用最小特权启动容器。容器具有指定的能力。 执行如下命令启动NJet。

docker run  -d --rm --cap-drop=ALL --cap-add=cap_dac_override --cap-add=cap_dac_read_search --cap-add=cap_setuid --cap-add=cap_net_bind_service --cap-add=cap_net_admin --cap-add=cap_net_raw --cap-add=cap_setgid --cap-add=cap_audit_write tmlake/njet:latest

–cap-add=cap_setgid 与–cap-add=cap_audit_write 是为了有权限使用sudo,比如sudo iptables -t nat -S

挂载宿主机文件,执行如下命令启动NJet。

docker run -v /root/liuqi/njet/njet.conf:/usr/local/njet/conf/njet.conf -v /root/liuqi/njet/njet_ctrl.conf:/usr/local/njet/conf/njet_ctrl.conf -v /root/liuqi/njet/logs:/usr/local/njet/logs -v /root/liuqi/njet/data:/usr/local/njet/data  -d  --rm --cap-drop=ALL --cap-add=cap_dac_override --cap-add=cap_dac_read_search --cap-add=cap_setuid --cap-add=cap_net_bind_service --cap-add=cap_net_admin --cap-add=cap_net_raw --cap-add=cap_setgid --cap-add=cap_audit_write tmlake/njet:latest

根据自己host目录修改。

-v 宿主机(使用绝对路径,相对路径低版本docker不支持):容器,挂载宿主机文件到容器内

-p 宿主机:容器,将容器端口暴露到宿主机

所有特权

也可以使用privileged启动容器,容器继承内核所有的能力。 执行如下命令启动NJet。

docker run  -d --rm --privileged  tmlake/njet:latest

测试案例

Docker版本

最小特权运行

使用镜像内配置启动

执行docker run启动NJet容器,成功运行后屏幕会输出容器id

登录容器内,查看NJet运行情况

//登录容器
docker exec -it d7aad0334008 /bin/bash


请求测试 容器中执行如下指令
curl http://127.0.0.1:8080/

使用宿主机配置启动

执行如下指令启动

根据自己host目录修改。

-v 宿主机(使用绝对路径,相对路径地版本docker不支持):容器,挂在宿主机文件到容器内

-p 宿主机:容器,>将容器端口暴露到宿主机

登录容器内,查看NJet运行情况

//登录容器
docker exec -it b2b6134b22e2 /bin/bash




请求测试 在宿主机访问/lua

curl http://192.168.40.209:8080/lua


range测试

curl http://192.168.40.209:8081/config/2/config/range | jq


添加range规则

{
    "action": "add",
    "type": "tcp",
    "src_ports": "11000:13000",
    "dst_port": 10001
}

curl -X PUT http://192.168.40.209:8081/config/2/config/range -d @range.json


登录容器内查看规则

docker exec -it b2b6134b22e2 /bin/bash
sudo iptables -t nat -S

请前往 登录/注册 即可发表您的看法…