“Inbound Agent”是一种被动连接型代理:代理(Agent)主动向控制端(Master)发起连接(而非 Master 主动连接 Agent),建立通信后接收任务并执行。这种模式的优势是无需在控制端开放额外端口(尤其适合防火墙严格的环境),只需 Agent 能访问 Master 的地址即可。
最典型的场景是 Jenkins Inbound Agent:Jenkins Master 通过 JNLP(Java Network Launch Protocol)协议与 Agent 通信,Agent 运行在容器中,执行构建任务(如编译代码、运行测试、打包镜像等)。
dragonzw/inbound-agent 镜像预集成了运行 Inbound Agent 所需的核心组件,具体功能取决于维护者对“inbound-agent”的定义(结合常见实践推断):
agent.jar(或类似工具的可执行文件),用于与 Master 建立连接。curl、wget),用于下载配置或执行简单命令。作为个人维护镜像(dragonzw 为用户名),可能包含以下定制:
该镜像的核心价值是快速在容器中启动一个“即用型”CI/CD 代理节点,适用于以下场景:
作为 Jenkins Master 的“从节点”,执行构建任务:
dragonzw/inbound-agent 容器作为临时节点,分担编译、测试压力;示例启动命令(连接 Jenkins Master):
docker run -d --name jenkins-agent \
-e JENKINS_URL="http://jenkins-master:8080" \ # Master 地址
-e JENKINS_SECRET="your-agent-secret-token" \ # Master 分配的认证令牌
-e JENKINS_AGENT_NAME="docker-agent-01" \ # Agent 名称(需唯一)
-e JENKINS_AGENT_WORKDIR="/home/jenkins/agent" \ # 工作目录
-v /var/run/docker.sock:/var/run/docker.sock \ # 挂载 Docker 套接字(如需容器内执行 docker 命令)
dragonzw/inbound-agent
除 Jenkins 外,也可能适配其他支持“入站代理”模式的平台(如 GitLab Runner 的 shell executor 模式、TeamCity Agent 等),通过修改配置连接至对应 Master。
需要快速启动一个带预装工具的容器执行单次任务(如拉取代码、运行脚本)时,可作为轻量级“任务容器”使用,避免手动配置环境。
需注意:Jenkins 官方提供了标准的 jenkins/inbound-agent 镜像(https://hub.docker.com/r/jenkins/inbound-agent),而 dragonzw/inbound-agent 是个人维护的定制镜像。两者的核心差异可能包括:
dragonzw/inbound-agent 可能额外集成了常用工具(如 Git、Maven),而官方镜像更精简(仅含 Agent 核心)。docker.sock(如示例中),容器内可获取宿主机的 Docker 控制权,需限制权限;JENKINS_SECRET)需妥善保管,避免泄露。jenkins/inbound-agent),并根据需求通过 Dockerfile 定制(如添加工具),而非直接使用个人维护镜像。dragonzw/inbound-agent 是一个定制化的“入站代理”容器镜像,核心价值是快速提供 CI/CD 任务执行节点,通过预配置环境简化 Agent 的启动和连接流程。其典型用途是作为 Jenkins 等平台的从节点,执行构建、测试等任务,适合开发测试或轻量场景。生产环境建议使用官方镜像并自行定制,以确保稳定性和安全性。
Content type
Image
Digest
sha256:d7984d070…
Size
268.2 MB
Last updated
6 months ago
docker pull dragonzw/inbound-agent:3107.v665000b_51092-15