The jenkinsci/docker repository is the official Docker image for Jenkins, the continuous integration and delivery server. It provides a containerized, fully functional Jenkins installation available on Docker Hub, enabling users to run Jenkins as a Docker container with minimal setup. The repository is written primarily in PowerShell and serves as the canonical way to deploy Jenkins in containerized environments.
The repository addresses core Jenkins deployment challenges through Docker. Jenkins data, including plugins and configuration, is stored in the /var/jenkins_home directory within the container. Users can create named volumes that persist across container lifecycle events, or extract data using docker cp commands. The image supports both detached mode operation with port forwarding and provides mechanisms to retrieve the initial admin password for setup completion.
Configuration flexibility is a major feature set. Users can customize JVM parameters through JENKINS_JAVA_OPTS and JAVA_OPTS environment variables to adjust system properties and heap memory settings. The image supports reverse proxy configuration for deployments behind Apache or Nginx with URL prefixes. DNS configuration is documented for scenarios where containers cannot resolve update center hostnames. Jenkins launcher parameters can be passed directly to the docker run command or defined via JENKINS_OPTS environment variables, allowing customization of HTTPS certificates, agent ports, and other runtime behaviors.
Agent connectivity is explicitly supported through port mapping. The default agent port 50000 enables inbound TCP connections from build agents to the controller, though this port is unnecessary for SSH outbound agents or WebSocket connections. The image defaults to two executors on the built-in node but allows customization through Groovy scripts, with documentation recommending zero executors on the controller for distributed builds.
Plugin management is handled through the plugin installation manager CLI, which downloads plugins and dependencies from configurable update centers. Users can preinstall plugins by copying HPI files into /usr/share/jenkins/ref/plugins/ or by specifying plugin lists. Environment variables control update center URLs, including the main center, experimental center, incrementals repository mirror, and plugin information endpoints. The image supports environment variable substitution in configuration files with ${VAR} and ${VAR:-default} syntax for XML, conf, properties, and Groovy files when JENKINS_ENABLE_ENV_SUBST is enabled.
The repository is classified across devops, deployment, continuous-integration, build-environment, orchestration, containerization, and automation-tools domains, reflecting its role in CI/CD infrastructure.