{"id":10419,"date":"2023-09-03T05:02:11","date_gmt":"2023-09-03T05:02:11","guid":{"rendered":"https:\/\/www.devopsschool.com\/blog\/?p=10419"},"modified":"2025-02-01T23:03:11","modified_gmt":"2025-02-01T23:03:11","slug":"install-jenkins-as-docker-container","status":"publish","type":"post","link":"https:\/\/www.devopsschool.com\/blog\/install-jenkins-as-docker-container\/","title":{"rendered":"Jenkins Tutorials: Install Jenkins as Docker Container"},"content":{"rendered":"\n<p><a href=\"https:\/\/www.devopsschool.com\/blog\/installing-jenkins-on-tomcat\/\">In the Previous Post we Learned How to install Jenkins as Servlet on Tomcat  server. <\/a><\/p>\n\n\n\n<p>In this post we will try even simple and easy way to run Jenkins on your machine using docker.<\/p>\n\n\n\n<p>Like all major servers Jenkins also comes as a light weight container and is being maintained by community aggressively. <\/p>\n\n\n\n<p>Pre-requisites : <br>1. Basic docker understanding.<br>2. Docker should be up and running on the host machine. <br>If you feel you need refresher for any of the above &#8211; try searching it on <a href=\"https:\/\/www.devopsschool.com\/\">devopsschool.com<\/a> &#8211; we have plenty of content available \ud83d\ude42<\/p>\n\n\n\n<p>Let&#8217;s start, first check docker daemon  is running on the machine where you want to install Jenkins as container.<\/p>\n\n\n\n<p>For me, I&#8217;m going to do it on my mac machine locally &#8211; steps would be pretty much similar if we want to do it on cloud machine as well.<\/p>\n\n\n\n<p>Run, <\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">docker version<\/code><\/span><\/pre>\n\n\n<p>It should some like below on screen :<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"547\" height=\"553\" src=\"https:\/\/www.devopsschool.com\/blog\/wp-content\/uploads\/2020\/02\/image-14.png\" alt=\"\" class=\"wp-image-10420\" srcset=\"https:\/\/www.devopsschool.com\/blog\/wp-content\/uploads\/2020\/02\/image-14.png 547w, https:\/\/www.devopsschool.com\/blog\/wp-content\/uploads\/2020\/02\/image-14-297x300.png 297w, https:\/\/www.devopsschool.com\/blog\/wp-content\/uploads\/2020\/02\/image-14-80x80.png 80w\" sizes=\"auto, (max-width: 547px) 100vw, 547px\" \/><figcaption class=\"wp-element-caption\">docker version<\/figcaption><\/figure>\n\n\n\n<p>Run docker command :<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-1\" data-shcb-language-name=\"CSS\" data-shcb-language-slug=\"css\"><span><code class=\"hljs language-css\"><span class=\"hljs-selector-tag\">docker<\/span> <span class=\"hljs-selector-tag\">run<\/span> <span class=\"hljs-selector-tag\">-p<\/span> 8080<span class=\"hljs-selector-pseudo\">:8080<\/span> <span class=\"hljs-selector-tag\">-d<\/span> <span class=\"hljs-selector-tag\">jenkins<\/span><\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-1\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">CSS<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">css<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>Let me explain what we did above , we are asking docker to run Jenkins container on port 8080 for the localhost host machine which will be routing traffic to port 8080 to the Jenkins container and -d tag tells to run this container in detached mode.<\/p>\n\n\n\n<p>If we don&#8217;t have the Jenkins container image locally, docker will go and download it from the docker hub registry. You will see something like this below as out put.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"406\" src=\"https:\/\/www.devopsschool.com\/blog\/wp-content\/uploads\/2020\/02\/image-15-1024x406.png\" alt=\"\" class=\"wp-image-10422\" srcset=\"https:\/\/www.devopsschool.com\/blog\/wp-content\/uploads\/2020\/02\/image-15-1024x406.png 1024w, https:\/\/www.devopsschool.com\/blog\/wp-content\/uploads\/2020\/02\/image-15-300x119.png 300w, https:\/\/www.devopsschool.com\/blog\/wp-content\/uploads\/2020\/02\/image-15-768x304.png 768w, https:\/\/www.devopsschool.com\/blog\/wp-content\/uploads\/2020\/02\/image-15.png 1290w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><figcaption class=\"wp-element-caption\">running Jenkins container<\/figcaption><\/figure>\n\n\n\n<p>Now goto http:\/\/localhost:8080<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"680\" src=\"https:\/\/www.devopsschool.com\/blog\/wp-content\/uploads\/2020\/02\/image-16-1024x680.png\" alt=\"\" class=\"wp-image-10423\" srcset=\"https:\/\/www.devopsschool.com\/blog\/wp-content\/uploads\/2020\/02\/image-16-1024x680.png 1024w, https:\/\/www.devopsschool.com\/blog\/wp-content\/uploads\/2020\/02\/image-16-300x199.png 300w, https:\/\/www.devopsschool.com\/blog\/wp-content\/uploads\/2020\/02\/image-16-768x510.png 768w, https:\/\/www.devopsschool.com\/blog\/wp-content\/uploads\/2020\/02\/image-16.png 1201w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><figcaption class=\"wp-element-caption\">Jenkins home page<\/figcaption><\/figure>\n\n\n\n<p>Now a big question how to find out admin password ??? as the password would be in container and not in local host machine, we should get it from there.<\/p>\n\n\n\n<p>Run below command :<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-2\" data-shcb-language-name=\"HTML, XML\" data-shcb-language-slug=\"xml\"><span><code class=\"hljs language-xml\">docker exec <span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">containerID<\/span>&gt;<\/span> cat \/var\/jenkins_home\/secrets\/initialAdminPassword<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-2\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">HTML, XML<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">xml<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>This will print out the admin password on screen, something like this:<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"114\" src=\"https:\/\/www.devopsschool.com\/blog\/wp-content\/uploads\/2020\/02\/image-17-1024x114.png\" alt=\"\" class=\"wp-image-10424\" srcset=\"https:\/\/www.devopsschool.com\/blog\/wp-content\/uploads\/2020\/02\/image-17-1024x114.png 1024w, https:\/\/www.devopsschool.com\/blog\/wp-content\/uploads\/2020\/02\/image-17-300x33.png 300w, https:\/\/www.devopsschool.com\/blog\/wp-content\/uploads\/2020\/02\/image-17-768x85.png 768w, https:\/\/www.devopsschool.com\/blog\/wp-content\/uploads\/2020\/02\/image-17.png 1234w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>Note, as container ID gets generated on the run time. It would be different for you and me. <\/p>\n\n\n\n<p>Lets copy this password and enter it on the jenkins dashboard :<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"602\" src=\"https:\/\/www.devopsschool.com\/blog\/wp-content\/uploads\/2020\/02\/image-18-1024x602.png\" alt=\"\" class=\"wp-image-10425\" srcset=\"https:\/\/www.devopsschool.com\/blog\/wp-content\/uploads\/2020\/02\/image-18-1024x602.png 1024w, https:\/\/www.devopsschool.com\/blog\/wp-content\/uploads\/2020\/02\/image-18-300x176.png 300w, https:\/\/www.devopsschool.com\/blog\/wp-content\/uploads\/2020\/02\/image-18-768x452.png 768w, https:\/\/www.devopsschool.com\/blog\/wp-content\/uploads\/2020\/02\/image-18.png 1362w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>If you are seeing dashboard like above &#8211; congratulations you have successfully installed Jenkins as docker container pat your back and start using it. <\/p>\n\n\n\n<p>More on Jenkins in the upcoming lectures. If you like this article feel free to check other articles by me.<\/p>\n\n\n\n<p><a href=\"https:\/\/www.linkedin.com\/in\/gaurav-bajpai-fullstack\/\">Gaurav Bajpai <\/a><\/p>\n\n\n<div class=\"epyt-gallery\" data-currpage=\"1\" id=\"epyt_gallery_90199\"><figure class=\"wp-block-embed wp-block-embed-youtube is-type-video is-provider-youtube epyt-figure\"><div class=\"wp-block-embed__wrapper\"><iframe loading=\"lazy\"  id=\"_ytid_11799\"  width=\"760\" height=\"427\"  data-origwidth=\"760\" data-origheight=\"427\" src=\"https:\/\/www.youtube.com\/embed\/?enablejsapi=1&#038;autoplay=0&#038;cc_load_policy=0&#038;cc_lang_pref=&#038;iv_load_policy=1&#038;loop=0&#038;rel=1&#038;fs=1&#038;playsinline=0&#038;autohide=2&#038;theme=dark&#038;color=red&#038;controls=1&#038;disablekb=0&#038;\" class=\"__youtube_prefs__  no-lazyload\" title=\"YouTube player\"  data-epytgalleryid=\"epyt_gallery_90199\"  allow=\"fullscreen; accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" allowfullscreen data-no-lazy=\"1\" data-skipgform_ajax_framebjll=\"\"><\/iframe><\/div><\/figure><div class=\"epyt-gallery-list\"><div>Sorry, there was a YouTube error.<\/div><\/div><\/div>","protected":false},"excerpt":{"rendered":"<p>In the Previous Post we Learned How to install Jenkins as Servlet on Tomcat server. In this post we will try even simple and easy way to&#8230; <\/p>\n","protected":false},"author":23,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_joinchat":[],"footnotes":""},"categories":[4862,42],"tags":[567,1189,1188,1314,5603,145,830,1214,1217,822],"class_list":["post-10419","post","type-post","status-publish","format-standard","hentry","category-docker","category-jenkins","tag-docker","tag-docker-command-line","tag-docker-guide","tag-docker-images","tag-gauravbajpai","tag-jenkins","tag-jenkins-guide","tag-jenkins-installation-guide","tag-jenkins-installation-process","tag-jenkins-tutorial"],"_links":{"self":[{"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/posts\/10419","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/users\/23"}],"replies":[{"embeddable":true,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/comments?post=10419"}],"version-history":[{"count":6,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/posts\/10419\/revisions"}],"predecessor-version":[{"id":39204,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/posts\/10419\/revisions\/39204"}],"wp:attachment":[{"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/media?parent=10419"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/categories?post=10419"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/tags?post=10419"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}