{"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\/\" target=\"_blank\" rel=\"noopener\">Gaurav Bajpai <\/a><\/p>\n\n\n<div class=\"epyt-gallery\" data-currpage=\"1\" id=\"epyt_gallery_65545\"><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_30293\"  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_65545\"  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 run Jenkins on your machine using docker. Like all major servers Jenkins also comes as a light weight container and is being maintained by community aggressively. Pre-requisites :&#8230;<\/p>\n","protected":false},"author":23,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_kad_post_transparent":"","_kad_post_title":"","_kad_post_layout":"","_kad_post_sidebar_id":"","_kad_post_content_style":"","_kad_post_vertical_padding":"","_kad_post_feature":"","_kad_post_feature_position":"","_kad_post_header":false,"_kad_post_footer":false,"_kad_post_classname":"","_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}]}}