1. Project Overview

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.


2. Objectives


3. Tools & Technologies

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

4. Architecture

┌─────────────────────────────────────────────────┐
│              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:

5. Phases of the Project