{"id":30958,"date":"2022-08-08T20:49:41","date_gmt":"2022-08-08T20:49:41","guid":{"rendered":"https:\/\/www.devopsschool.com\/blog\/?p=30958"},"modified":"2025-07-12T05:41:40","modified_gmt":"2025-07-12T05:41:40","slug":"how-to-install-elasticsearch-and-kibana-using-docker","status":"publish","type":"post","link":"https:\/\/www.devopsschool.com\/blog\/how-to-install-elasticsearch-and-kibana-using-docker\/","title":{"rendered":"How to install elasticsearch and kibana 8.x using Docker?"},"content":{"rendered":"\n<h2 class=\"wp-block-heading\">Prerequisite<\/h2>\n\n\n\n<p>The following requirements and recommendations apply when running Elasticsearch in Docker in production.<\/p>\n\n\n\n<p>The following requirements and recommendations apply when running Elasticsearch in Docker in production.<\/p>\n\n\n\n<p>Set vm.max_map_count to at least 262144<\/p>\n\n\n\n<p>The vm.max_map_count kernel setting must be set to at least 262144 for production use.<\/p>\n\n\n\n<p>How you set vm.max_map_count depends on your platform.<\/p>\n\n\n\n<p>To view the current value for the vm.max_map_count setting, run:<\/p>\n\n\n\n<p>$ grep vm.max_map_count \/etc\/sysctl.conf<br>$ vm.max_map_count=262144<\/p>\n\n\n\n<p>To apply the setting on a live system, run:<br>$ sysctl -w vm.max_map_count=262144<\/p>\n\n\n\n<p>To permanently change the value for the vm.max_map_count setting, update the value in \/etc\/sysctl.conf.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Step 1 &#8211; Install Docker<\/h2>\n\n\n\n<figure class=\"wp-block-embed is-type-wp-embed is-provider-devopsschool-com wp-block-embed-devopsschool-com\"><div class=\"wp-block-embed__wrapper\">\n<blockquote class=\"wp-embedded-content\" data-secret=\"qBiHceaCnU\"><a href=\"https:\/\/www.devopsschool.com\/blog\/docker-installation-and-configurations\/\">Docker Tutorials: Installation and Configurations<\/a><\/blockquote><iframe loading=\"lazy\" class=\"wp-embedded-content\" sandbox=\"allow-scripts\" security=\"restricted\" style=\"position: absolute; clip: rect(1px, 1px, 1px, 1px);\" title=\"&#8220;Docker Tutorials: Installation and Configurations&#8221; &#8212; DevOpsSchool.com\" src=\"https:\/\/www.devopsschool.com\/blog\/docker-installation-and-configurations\/embed\/#?secret=bOaRCqiO1y#?secret=qBiHceaCnU\" data-secret=\"qBiHceaCnU\" width=\"600\" height=\"338\" frameborder=\"0\" marginwidth=\"0\" marginheight=\"0\" scrolling=\"no\"><\/iframe>\n<\/div><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">Step 2 &#8211; Run Elasticsearch on Docker for development<\/h2>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">$ docker network create elastic\n$ docker pull docker.elastic.co\/elasticsearch\/elasticsearch:8.3.3\n$ docker run --name es-node01 --net elastic -p 9200:9200 -p 9300:9300 -t docker.elastic.co\/elasticsearch\/elasticsearch:8.3.3\n$ docker logs es-node01\n<\/code><\/span><\/pre>\n\n\n<p>When you start Elasticsearch for the first time, the following security configuration occurs automatically:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Certificates and keys are generated for the transport and HTTP layers.<\/li>\n\n\n\n<li>The Transport Layer Security (TLS) configuration settings are written to elasticsearch.yml.<\/li>\n\n\n\n<li>A password is generated for the elastic user.<\/li>\n\n\n\n<li>An enrollment token is generated for Kibana.<\/li>\n<\/ul>\n\n\n\n<p>Copy the generated password and enrollment token and save them in a secure location. These values are shown only when you start Elasticsearch for the first time. You\u2019ll use these to enroll Kibana with your Elasticsearch cluster and log in.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"650\" src=\"https:\/\/www.devopsschool.com\/blog\/wp-content\/uploads\/2022\/08\/elasticsearch-kibana-install-1024x650.jpg\" alt=\"\" class=\"wp-image-30962\" srcset=\"https:\/\/www.devopsschool.com\/blog\/wp-content\/uploads\/2022\/08\/elasticsearch-kibana-install-1024x650.jpg 1024w, https:\/\/www.devopsschool.com\/blog\/wp-content\/uploads\/2022\/08\/elasticsearch-kibana-install-300x190.jpg 300w, https:\/\/www.devopsschool.com\/blog\/wp-content\/uploads\/2022\/08\/elasticsearch-kibana-install-768x488.jpg 768w, https:\/\/www.devopsschool.com\/blog\/wp-content\/uploads\/2022\/08\/elasticsearch-kibana-install.jpg 1320w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">Step 3 &#8211; Run Kibana on Docker for development<\/h2>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-1\" data-shcb-language-name=\"JavaScript\" data-shcb-language-slug=\"javascript\"><span><code class=\"hljs language-javascript\">In a <span class=\"hljs-keyword\">new<\/span> terminal session, start Kibana and connect it to your Elasticsearch container:\n\n\n$ docker pull docker.elastic.co\/kibana\/kibana:<span class=\"hljs-number\">8.3<\/span><span class=\"hljs-number\">.3<\/span>\n$ docker run --name kib<span class=\"hljs-number\">-01<\/span> --net elastic -p <span class=\"hljs-number\">5601<\/span>:<span class=\"hljs-number\">5601<\/span> docker.elastic.co\/kibana\/kibana:<span class=\"hljs-number\">8.3<\/span><span class=\"hljs-number\">.3<\/span>\n$ docker logs kib<span class=\"hljs-number\">-01<\/span>\n\nexample  http:<span class=\"hljs-comment\">\/\/192.168.1.16:5601\/?code=036004<\/span>\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-1\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">JavaScript<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">javascript<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>When you start Kibana, a unique link is output to your terminal.<\/p>\n\n\n\n<p>To access Kibana, click the generated link in your terminal.<\/p>\n\n\n\n<p>In your browser, paste the enrollment token that you copied when starting Elasticsearch and click the button to connect your Kibana instance with Elasticsearch.<\/p>\n\n\n\n<p>Log in to Kibana as the elastic user with the password that was generated when you started Elasticsearch.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"843\" src=\"https:\/\/www.devopsschool.com\/blog\/wp-content\/uploads\/2022\/08\/elasticsearch-kibana-install-2-1024x843.jpg\" alt=\"\" class=\"wp-image-30963\" srcset=\"https:\/\/www.devopsschool.com\/blog\/wp-content\/uploads\/2022\/08\/elasticsearch-kibana-install-2-1024x843.jpg 1024w, https:\/\/www.devopsschool.com\/blog\/wp-content\/uploads\/2022\/08\/elasticsearch-kibana-install-2-300x247.jpg 300w, https:\/\/www.devopsschool.com\/blog\/wp-content\/uploads\/2022\/08\/elasticsearch-kibana-install-2-768x632.jpg 768w, https:\/\/www.devopsschool.com\/blog\/wp-content\/uploads\/2022\/08\/elasticsearch-kibana-install-2.jpg 1153w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">Default user name &amp; password<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li>elastic \/ check the output of docker run<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Verification for the ownership<\/h2>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"587\" src=\"https:\/\/www.devopsschool.com\/blog\/wp-content\/uploads\/2023\/10\/image-73-1024x587.png\" alt=\"\" class=\"wp-image-41038\" srcset=\"https:\/\/www.devopsschool.com\/blog\/wp-content\/uploads\/2023\/10\/image-73-1024x587.png 1024w, https:\/\/www.devopsschool.com\/blog\/wp-content\/uploads\/2023\/10\/image-73-300x172.png 300w, https:\/\/www.devopsschool.com\/blog\/wp-content\/uploads\/2023\/10\/image-73-768x440.png 768w, https:\/\/www.devopsschool.com\/blog\/wp-content\/uploads\/2023\/10\/image-73-1536x880.png 1536w, https:\/\/www.devopsschool.com\/blog\/wp-content\/uploads\/2023\/10\/image-73.png 1599w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"217\" src=\"https:\/\/www.devopsschool.com\/blog\/wp-content\/uploads\/2023\/10\/image-74-1024x217.png\" alt=\"\" class=\"wp-image-41039\" srcset=\"https:\/\/www.devopsschool.com\/blog\/wp-content\/uploads\/2023\/10\/image-74-1024x217.png 1024w, https:\/\/www.devopsschool.com\/blog\/wp-content\/uploads\/2023\/10\/image-74-300x64.png 300w, https:\/\/www.devopsschool.com\/blog\/wp-content\/uploads\/2023\/10\/image-74-768x163.png 768w, https:\/\/www.devopsschool.com\/blog\/wp-content\/uploads\/2023\/10\/image-74-1536x326.png 1536w, https:\/\/www.devopsschool.com\/blog\/wp-content\/uploads\/2023\/10\/image-74.png 1813w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n","protected":false},"excerpt":{"rendered":"<p>Prerequisite The following requirements and recommendations apply when running Elasticsearch in Docker in production. The following requirements and recommendations apply when running Elasticsearch in Docker in production. Set vm.max_map_count to&#8230; <\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_joinchat":[],"footnotes":""},"categories":[4862],"tags":[],"class_list":["post-30958","post","type-post","status-publish","format-standard","hentry","category-docker"],"_links":{"self":[{"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/posts\/30958","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\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/comments?post=30958"}],"version-history":[{"count":7,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/posts\/30958\/revisions"}],"predecessor-version":[{"id":49247,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/posts\/30958\/revisions\/49247"}],"wp:attachment":[{"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/media?parent=30958"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/categories?post=30958"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/tags?post=30958"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}