How to install Docker on a Jenkins server and configure the Jenkins

To deploy a containerized app, Jenkins needs to be able to interact with Docker. This means that Docker needs to be installed locally on the Jenkins server, and the Jenkins user needs to be provided with the permissions necessary to use that Docker installation.

How to install Docker on a Jenkins server and configure the Jenkins user to be able to access it.

Follow the instruction:

sudo yum -y install docker
sudo systemctl start docker
sudo systemctl enable docker
sudo groupadd docker
sudo adduser jenkins docker
sudo usermod -aG docker jenkins
sudo systemctl restart jenkins
sudo systemctl restart docker

Jenkins Continuous Delivery (CD) questions and answers

1.Which of the following are things that could be a Jenkins Pipeline stage? (Choose all that apply)

A. Building the code. (Correct)
B. Testing the code. (Correct)
C. Executing a command (wrong)
D. Deploying to Production (Correct)

2.What are the basic building blocks of a Jenkins pipeline?

A. Stages and playbooks
B. Stages and commands
C. Stages and steps (Correct)
D. Declarative and scripted
3.Which of the following are styles of syntax allowed in a Jenkins file? (Choose all that apply)

A. Scripted (Correct)
B. Declarative (Correct)
C. Infrastructure as Code (IaC)
D. Bash

4.What is Jenkins Pipelines?

A. A code review process
B. A set of Jenkins plugins that support CD (Correct)
C. A quick way to install a Jenkins server
D. A way to send code back and forth between developers
5.What is a Jenkins file?

A. The configuration file for a Jenkins freestyle project
B. The file that contains the code defining a Jenkins pipeline (Correct)
C. The binary that is used to install Jenkins
D. A file that is downloaded from the Jenkins server

6.What can you do in a Jenkins pipeline to pause execution and wait for user feedback?

A. Implement an empty stage in the pipeline.
B. Set a trigger in Jenkins to pause the deployment.
C. Use an input step to pause the pipeline until a user clicks either abort or proceed. (Correct)
D. Cancel the build in Jenkins.

7.Which of the following are things that could be a Jenkins Pipeline step? (Choose all that apply)

A. Copy files to a server. (Correct)
B. Execute a command. (Correct)
C. Wait for human input. (Correct)
D. Deploy to production.
8.What does the Publish Over SSH Jenkins plugin do?

A. It notifies other servers of a build status using ssh.
B. It downloads files from other servers.
C. It allows you to copy files to another server using ssh. (Correct)
D. It allows you to execute Jenkins builds over ssh.

Setting up GitHub Webhooks in Jenkins

One of the most important aspects of a good Continuous Integration (CI) process is quick feedback whenever there is a change. This means that it is important to execute builds as soon as possible after a code change is pushed to source control. One of the best ways to do this with GitHub and Jenkins is to use webhooks to have GitHub notify Jenkins when there is a change so that Jenkins can automatically start the build.

  1. Create Personal Access token in GitHub by going to | Profile | Settings | Developers Settings


  2. Personal access tokens

    Need an API token for scripts or testing? Generate a personal access token for quick access to the GitHub API.

    Personal access tokens function like ordinary OAuth access tokens. They can be used instead of a password for Git over HTTPS, or can be used to authenticate to the API over Basic Authentication.

    My personal access token is called “Jenkins” and select Admin:repo_hook and click Generate Token


  3. Copy your personal access token


  4. Now go to Jenkins

    Manage Jenkins | Configure System and add GitHub Server


  5. Add Jenkins to GitHub Server


  6. For Kind Select Secret Text and copy and past secret key from personal access token (Step 3). Create a name for ID and Description and ADD


  7. Click drop down in credentials and select new credentials which we just created. In my case I called it as “GitHubKey”  Make sure Manage Hook SELECTED


  8. Now go back to your project and the GitHub URL in Source Code Management and under Build Triggers select GitHub Hook Triggers GitSCM poling


  9. To verify, go to your GitHub Repository | Settings | WebHooks


How to “Unlock Jenkins”?

Unlock Jenkins

To ensure Jenkins is securely set up by the administrator, a password has been written to the log (not sure where to find it?) and this file on the server:


Please copy the password from either location and paste it below.


To Unlock Jenkins, you need to go to following directory

To view the Jenkins password use following commands in Linux
“sudo cat /var/lib/jenkins/secrets/initialAdminPassword”


jenkins.service failed because the control process exited with error code

Job for jenkins.service failed because the control process exited with error code. See “systemctl status jenkins.service” and “journalctl -xe” for details.

If you get above message uninsall Jenkins and try again using this method

sudo yum -y remove java
sudo yum -y install java-1.8.0-openjdk
sudo cp /etc/profile /etc/profile_backup
echo 'export JAVA_HOME=/usr/lib/jvm/jre-1.8.0-openjdk' | sudo tee -a /etc/profile
echo 'export JRE_HOME=/usr/lib/jvm/jre' | sudo tee -a /etc/profile
source /etc/profile
sudo wget -O /etc/yum.repos.d/jenkins.repo
sudo rpm --import
yum install jenkins


Start Jenkins

sudo systemctl enable jenkins
sudo systemctl start jenkins

To access Jenkins in Browser, use your public IP address and port 8080 (I am using Linux Academy Server)