{"id":31095,"date":"2022-09-04T10:54:12","date_gmt":"2022-09-04T10:54:12","guid":{"rendered":"https:\/\/www.devopsschool.com\/blog\/?p=31095"},"modified":"2025-07-12T05:41:39","modified_gmt":"2025-07-12T05:41:39","slug":"gitlab-tutorials-install-self-managed-gitlab-enterprise-in-docker-container","status":"publish","type":"post","link":"https:\/\/www.devopsschool.com\/blog\/gitlab-tutorials-install-self-managed-gitlab-enterprise-in-docker-container\/","title":{"rendered":"GitLab Tutorials: Install self-managed GitLab Enterprise in Docker Container"},"content":{"rendered":"\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<p><strong>URL &#8211; https:\/\/docs.gitlab.com\/ee\/install\/docker.html<\/strong><\/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; Set up the volumes location<\/h2>\n\n\n\n<p>$ export GITLAB_HOME=\/opt\/gitlab<\/p>\n\n\n\n<p>The GitLab container uses host mounted volumes to store persistent data:<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"372\" src=\"https:\/\/www.devopsschool.com\/blog\/wp-content\/uploads\/2022\/09\/image-1024x372.png\" alt=\"\" class=\"wp-image-31096\" srcset=\"https:\/\/www.devopsschool.com\/blog\/wp-content\/uploads\/2022\/09\/image-1024x372.png 1024w, https:\/\/www.devopsschool.com\/blog\/wp-content\/uploads\/2022\/09\/image-300x109.png 300w, https:\/\/www.devopsschool.com\/blog\/wp-content\/uploads\/2022\/09\/image-768x279.png 768w, https:\/\/www.devopsschool.com\/blog\/wp-content\/uploads\/2022\/09\/image.png 1077w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">Step 2 &#8211; Install GitLab using Docker Engine<\/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=\"PHP\" data-shcb-language-slug=\"php\"><span><code class=\"hljs language-php\">sudo docker run --detach \\\r\n  --hostname gitlab.example.com \\\r\n  --publish <span class=\"hljs-number\">443<\/span>:<span class=\"hljs-number\">443<\/span> --publish <span class=\"hljs-number\">80<\/span>:<span class=\"hljs-number\">80<\/span> --publish <span class=\"hljs-number\">22<\/span>:<span class=\"hljs-number\">22<\/span> \\\r\n  --name gitlab \\\r\n  --restart always \\\r\n  --volume $GITLAB_HOME\/config:\/etc\/gitlab \\\r\n  --volume $GITLAB_HOME\/logs:\/<span class=\"hljs-keyword\">var<\/span>\/log\/gitlab \\\r\n  --volume $GITLAB_HOME\/data:\/<span class=\"hljs-keyword\">var<\/span>\/opt\/gitlab \\\r\n  --shm-size <span class=\"hljs-number\">256<\/span>m \\\r\n  gitlab\/gitlab-ee:latest\r\n\r\n$ sudo docker logs -f gitlab<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-1\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">PHP<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">php<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Step 3 &#8211; Access gitab<\/h2>\n\n\n\n<p>After starting a container you can visit gitlab.example.com (or http:\/\/192.168.59.103 if you used boot2docker on macOS). It might take a while before the Docker container starts to respond to queries.<\/p>\n\n\n\n<p>Visit the GitLab URL, and log in with username root and the password from the following command:<\/p>\n\n\n\n<p>sudo docker exec -it gitlab grep &#8216;Password:&#8217; \/etc\/gitlab\/initial_root_password<\/p>\n","protected":false},"excerpt":{"rendered":"<p>URL &#8211; https:\/\/docs.gitlab.com\/ee\/install\/docker.html Step 1 &#8211; Set up the volumes location $ export GITLAB_HOME=\/opt\/gitlab The GitLab container uses host mounted volumes to store persistent data: Step 2 &#8211; Install GitLab using Docker Engine Step 3 &#8211; Access gitab After starting a container you can visit gitlab.example.com (or http:\/\/192.168.59.103 if you used boot2docker on macOS). It&#8230;<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","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],"tags":[],"class_list":["post-31095","post","type-post","status-publish","format-standard","hentry","category-docker"],"_links":{"self":[{"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/posts\/31095","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=31095"}],"version-history":[{"count":1,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/posts\/31095\/revisions"}],"predecessor-version":[{"id":31097,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/posts\/31095\/revisions\/31097"}],"wp:attachment":[{"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/media?parent=31095"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/categories?post=31095"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/tags?post=31095"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}