Bird
Raised Fist0
Jenkinsdevops~5 mins

Installing with Docker in Jenkins - Step-by-Step CLI Walkthrough

Choose your learning style10 modes available
Introduction
Installing Jenkins with Docker lets you run Jenkins easily without manual setup. Docker packages Jenkins and its environment so you can start it quickly on any machine.
When you want to try Jenkins without installing it directly on your computer.
When you need to run Jenkins on different machines with the same setup.
When you want to isolate Jenkins from other software to avoid conflicts.
When you want a quick way to start and stop Jenkins without complex installation.
When you want to use Jenkins in a containerized environment for easy updates.
Commands
This command downloads the official Jenkins image with the latest stable version from Docker Hub.
Terminal
docker pull jenkins/jenkins:lts
Expected OutputExpected
lts: Pulling from jenkins/jenkins Digest: sha256:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx Status: Downloaded newer image for jenkins/jenkins:lts docker.io/jenkins/jenkins:lts
This command starts a Jenkins container in the background, mapping ports so you can access Jenkins on your computer's port 8080.
Terminal
docker run -d -p 8080:8080 -p 50000:50000 --name my-jenkins jenkins/jenkins:lts
Expected OutputExpected
a1b2c3d4e5f678901234567890abcdef1234567890abcdef1234567890abcdef
→
-d - Run container in detached mode (in the background)
→
-p 8080:8080 - Map host port 8080 to container port 8080 for web access
→
-p 50000:50000 - Map host port 50000 to container port 50000 for Jenkins agents
→
--name my-jenkins - Assign a name to the container for easy reference
This command shows the startup logs of the Jenkins container, including the initial admin password needed to unlock Jenkins.
Terminal
docker logs my-jenkins
Expected OutputExpected
Running from: /usr/share/jenkins/jenkins.war 2024-06-01 12:00:00.000+0000 [id=1] INFO org.eclipse.jetty.server.Server#main: Started @12345ms ************************************************************* Jenkins initial setup is required. An admin user has been created and a password generated. Please use the following password to proceed to installation: 1234567890abcdef1234567890abcdef *************************************************************
This command stops the running Jenkins container safely.
Terminal
docker stop my-jenkins
Expected OutputExpected
my-jenkins
This command starts the Jenkins container again after it was stopped.
Terminal
docker start my-jenkins
Expected OutputExpected
my-jenkins
Key Concept

If you remember nothing else from this pattern, remember: Docker lets you run Jenkins quickly and consistently by packaging it in a container.

Common Mistakes
Not mapping ports with -p flag when running the container
Without port mapping, you cannot access Jenkins from your browser on your computer.
Always use -p 8080:8080 to map Jenkins web interface port.
Not checking logs to get the initial admin password
You cannot unlock Jenkins and proceed with setup without this password.
Run docker logs my-jenkins and copy the password shown to unlock Jenkins.
Using docker run without --name and then having trouble managing the container
Without a container name, you must use container IDs which are harder to remember.
Use --name my-jenkins to give the container a friendly name.
Summary
Pull the official Jenkins Docker image using docker pull.
Run Jenkins in a container with docker run, mapping ports for access.
Check container logs to find the initial admin password.
Stop and start the Jenkins container using docker stop and docker start.

Practice

(1/5)
1. What is the main advantage of installing Jenkins using Docker?
easy
A. It only works on Windows systems
B. It requires manual setup of all dependencies
C. It disables Jenkins security features
D. It makes Jenkins installation quick and clean

Solution

  1. Step 1: Understand Docker's role in Jenkins installation

    Docker packages Jenkins and its dependencies in a container, simplifying setup.
  2. Step 2: Identify the benefit of containerization

    This containerization makes installation fast and keeps the system clean without leftover files.
  3. Final Answer:

    It makes Jenkins installation quick and clean -> Option D
  4. Quick Check:

    Docker simplifies Jenkins install = A [OK]
Hint: Docker containers isolate Jenkins for easy setup [OK]
Common Mistakes:
  • Thinking Docker disables Jenkins security
  • Assuming Docker only works on Windows
  • Believing manual dependency setup is needed
2. Which Docker command correctly runs Jenkins with port 8080 mapped to the host?
easy
A. docker run -p 8080 jenkins/jenkins
B. docker run -p 80:8080 jenkins/jenkins
C. docker run -p 8080:8080 jenkins/jenkins
D. docker run --port 8080:8080 jenkins/jenkins

Solution

  1. Step 1: Recall Docker port mapping syntax

    The correct syntax is '-p hostPort:containerPort'.
  2. Step 2: Match Jenkins default port

    Jenkins listens on port 8080 inside the container, so map host 8080 to container 8080.
  3. Final Answer:

    docker run -p 8080:8080 jenkins/jenkins -> Option C
  4. Quick Check:

    Port mapping uses -p host:container = A [OK]
Hint: Use -p hostPort:containerPort for port mapping [OK]
Common Mistakes:
  • Using wrong port order in mapping
  • Omitting container port
  • Using --port instead of -p
3. What will be the effect of running this command?
docker run -d -p 8080:8080 -v jenkins_home:/var/jenkins_home jenkins/jenkins
medium
A. Starts Jenkins but data will be lost after container stops
B. Starts Jenkins in detached mode with data persisted in volume 'jenkins_home'
C. Fails because volume name is invalid
D. Runs Jenkins without port mapping

Solution

  1. Step 1: Analyze the command flags

    -d runs container detached; -p maps port 8080; -v mounts volume 'jenkins_home'.
  2. Step 2: Understand volume usage

    Mounting volume '/var/jenkins_home' preserves Jenkins data outside container lifecycle.
  3. Final Answer:

    Starts Jenkins in detached mode with data persisted in volume 'jenkins_home' -> Option B
  4. Quick Check:

    Volume mount + detached run = B [OK]
Hint: Volume mounts keep Jenkins data safe across restarts [OK]
Common Mistakes:
  • Assuming data is lost without volume
  • Confusing detached mode with foreground
  • Thinking volume name must be a path
4. You run Jenkins in Docker but get permission errors accessing files. What is a common fix?
medium
A. Run the Jenkins container as root user
B. Remove the volume mount
C. Change Jenkins port to 80
D. Restart Docker daemon

Solution

  1. Step 1: Identify cause of permission errors

    Permission errors often occur because Jenkins user inside container lacks rights on mounted files.
  2. Step 2: Apply root user workaround

    Running container as root bypasses permission issues by granting full access.
  3. Final Answer:

    Run the Jenkins container as root user -> Option A
  4. Quick Check:

    Permission fix = run as root [OK]
Hint: Run Jenkins container as root to fix permissions [OK]
Common Mistakes:
  • Removing volume loses data
  • Changing port doesn't fix permissions
  • Restarting Docker unrelated to permissions
5. You want to install Jenkins with Docker ensuring data persists and Jenkins runs on port 9090 on your host. Which command is correct?
hard
A. docker run -d -p 9090:8080 -v jenkins_data:/var/jenkins_home jenkins/jenkins
B. docker run -d -p 8080:9090 -v jenkins_data:/var/jenkins_home jenkins/jenkins
C. docker run -d -p 9090:9090 -v /jenkins:/var/jenkins_home jenkins/jenkins
D. docker run -d -p 8080:8080 -v jenkins_data:/var/jenkins_home jenkins/jenkins

Solution

  1. Step 1: Map host port 9090 to Jenkins default port 8080

    Jenkins listens on 8080 inside container, so host port 9090 maps to container 8080.
  2. Step 2: Use a volume to persist Jenkins data

    Mount volume 'jenkins_data' to '/var/jenkins_home' to keep data safe across restarts.
  3. Final Answer:

    docker run -d -p 9090:8080 -v jenkins_data:/var/jenkins_home jenkins/jenkins -> Option A
  4. Quick Check:

    Correct port mapping + volume = C [OK]
Hint: Map host port to 8080 and mount volume for data [OK]
Common Mistakes:
  • Swapping port numbers in mapping
  • Using wrong volume path
  • Not mapping ports correctly
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard