Jenkins Remoting is the subsystem that enables Jenkins to delegate build jobs to remote agent machines. Instead of running all builds on the master server, Jenkins distributes work across multiple nodes — each running independently and reporting results back to the master.
This project demonstrates setting up a fully distributed Jenkins build environment using Docker containers on a single Windows machine. Each Docker container simulates a real remote agent, making the setup equivalent to a real multi-machine CI/CD environment.
| Tool | Version | Purpose |
|---|---|---|
| Jenkins | LTS (latest) | CI/CD master controller |
| Docker Desktop | Latest | Container runtime on Windows |
| Jenkins Remoting | Built-in | Agent-to-master communication protocol |
| JNLP / TCP | Built-in | Agent launch method |
| PowerShell | 5.1+ | Command-line interface on Windows |
| Docker Bridge Network | Built-in | Isolated network for containers |
┌─────────────────────────────────────────────────┐
│ Docker Network: jenkins │
│ │
│ ┌──────────────────┐ │
│ │ Jenkins Master │ ← Port 8080 (Web UI) │
│ │ (controller) │ ← Port 50000 (Agents) │
│ └────────┬─────────┘ │
│ │ Jenkins Remoting (TCP/JNLP) │
│ ┌──────┴──────┐ │
│ │ │ │
│ ┌─┴──────┐ ┌──┴─────┐ │
│ │ Agent 1│ │Agent 2 │ │
│ │ linux │ │ linux │ │
│ │(build) │ │(build) │ │
│ └────────┘ └────────┘ │
└─────────────────────────────────────────────────┘
How it works: