{"id":3382,"date":"2021-09-16T22:18:12","date_gmt":"2021-09-16T13:18:12","guid":{"rendered":"https:\/\/www.skyer9.pe.kr\/wordpress\/?p=3382"},"modified":"2021-11-06T20:07:04","modified_gmt":"2021-11-06T11:07:04","slug":"docker-out-of-docker-dood","status":"publish","type":"post","link":"https:\/\/www.skyer9.pe.kr\/wordpress\/?p=3382","title":{"rendered":"Docker Out of Docker (DooD)"},"content":{"rendered":"<h1>Docker Out of Docker (DooD)<\/h1>\n<p><a href=\"https:\/\/aidanbae.github.io\/code\/docker\/dinddood\/\">\ucc38\uc870<\/a><\/p>\n<p><a href=\"https:\/\/coding-start.tistory.com\/329\">\ucc38\uc870<\/a><\/p>\n<p>\uc820\ud0a8\uc2a4 \ub3c4\ucee4 \uc774\ubbf8\uc9c0\uc5d0\uc11c Dockerize \ub97c \uc2e4\ud589\uc2dc\ud0a4\ub824 \ubcf4\ub2c8 docker \uac00 \uc5c6\ub2e4\uace0 \ud569\ub2c8\ub2e4.<\/p>\n<pre><code class=\"language-text\">docker: not found<\/code><\/pre>\n<p>\uadf8\ub798\uc11c \uc820\ud0a8\uc2a4 \ub3c4\ucee4 \uc774\ubbf8\uc9c0 \ub0b4\uc5d0,<br \/>\ndocker \ub97c \uc124\uce58 \ubc0f \uc2e4\ud589(Docker in Docker)\ud560\uae4c \ud588\uc9c0\ub9cc,<br \/>\n\uad8c\uc7a5\ub418\ub294 \ubc29\uc2dd\uc774 \uc544\ub2c8\ub78d\ub2c8\ub2e4.<\/p>\n<h2>Docker Out of Docker<\/h2>\n<p>\uc820\ud0a8\uc2a4 \ub3c4\ucee4 \uc774\ubbf8\uc9c0 \ub0b4\uc5d0 docker \ub97c \uc124\uce58\ud558\uc9c0\ub9cc,<br \/>\n\ud638\uc2a4\ud2b8 \uc11c\ubc84\uc5d0 \uc774\ubbf8 \uc124\uce58\ub418\uc5b4 \uc788\ub294,<br \/>\ndocker \ub97c \uc774\uc6a9\ud574 docker \ub97c \uc2e4\ud589\ud558\ub294 \ubc29\ubc95\uc785\ub2c8\ub2e4.<\/p>\n<h2>jenkins-docker \uc774\ubbf8\uc9c0 \uc0dd\uc131<\/h2>\n<pre><code class=\"language-bash\">mkdir jenkins-docker\ncd jenkins-docker<\/code><\/pre>\n<pre><code class=\"language-bash\">vi install_docker.sh\n------------------------------------\n#!\/bin\/sh\n\napt-get update\n\napt-get -y install apt-transport-https \\\n     apt-utils \\\n     ca-certificates \\\n     curl \\\n     gnupg2 \\\n     zip \\\n     unzip \\\n     software-properties-common\n\ncurl -fsSL https:\/\/download.docker.com\/linux\/$(. \/etc\/os-release; echo &quot;$ID&quot;)\/gpg &gt; \/tmp\/dkey; apt-key add \/tmp\/dkey\n\nadd-apt-repository \\\n   &quot;deb [arch=amd64] https:\/\/download.docker.com\/linux\/$(. \/etc\/os-release; echo &quot;$ID&quot;) \\\n   $(lsb_release -cs) \\\n   stable&quot; &amp;&amp; \\\n\napt-get update\n\napt-get -y install docker-ce\n------------------------------------<\/code><\/pre>\n<pre><code class=\"language-bash\">vi Dockerfile\n------------------------------------\nFROM jenkins\/jenkins:lts\n\nUSER root\n\nCOPY install_docker.sh \/install_docker.sh\nRUN chmod +x \/install_docker.sh\nRUN \/install_docker.sh\n\nRUN usermod -aG docker jenkins\nUSER jenkins\n------------------------------------<\/code><\/pre>\n<p>docker hub \uc5d0 \uc774\ubbf8\uc9c0\ub97c \uc5c5\ub85c\ub4dc \ud569\ub2c8\ub2e4.<br \/>\n\uacc4\uc815\uc774 \uc5c6\ub2e4\uba74 \uba3c\uc800 \uacc4\uc815\uc744 \uc0dd\uc131\ud574 \uc90d\ub2c8\ub2e4.<\/p>\n<pre><code class=\"language-bash\">docker build -t skyer9\/jenkins-docker:0.0.1 .\ndocker login\ndocker push skyer9\/jenkins-docker:0.0.1<\/code><\/pre>\n<h2>\ud638\uc2a4\ud2b8 \uc11c\ubc84\uc5d0\uc11c \uc791\uc5c5<\/h2>\n<p>\uc6b0\uc120 \uc820\ud0a8\uc2a4 \ub3c4\ucee4 \uc774\ubbf8\uc9c0 \uc2e4\ud589\uc2dc \uc544\ub798\uc758 \uba85\ub839\uc73c\ub85c,<br \/>\n\ud638\uc2a4\ud2b8 \uc11c\ubc84\uc758 <code>docker.sock<\/code> \ub97c \uacf5\uc720\ud569\ub2c8\ub2e4.<\/p>\n<pre><code class=\"language-bash\">docker run -v \/var\/run\/docker.sock:\/var\/run\/docker.sock ...<\/code><\/pre>\n<p><code>docker.sock<\/code> \ud30c\uc77c\uc744 \ud655\uc778\ud574 \ubd05\ub2c8\ub2e4.<\/p>\n<pre><code class=\"language-bash\">ls -al \/var\/run\/docker.sock\nsrw-rw---- 1 root docker 0  9\uc6d4 14 21:35 \/var\/run\/docker.sock<\/code><\/pre>\n<p>\uc88b\uc740 \ubc29\ubc95\uc740 \uc544\ub2c8\uc9c0\ub9cc&#8230; \uc77c\ub2e8\uc740 \uc544\ub798\ucc98\ub7fc \ud558\ub2c8 \uc791\ub3d9\ud569\ub2c8\ub2e4.<\/p>\n<pre><code class=\"language-bash\">sudo chmod 666 \/var\/run\/docker.sock<\/code><\/pre>\n<h2>chmod \uc758 \ubb38\uc81c\uc810<\/h2>\n<h3>\ubcf4\uc548 \uc774\uc288<\/h3>\n<p>\uc11c\ubc84\uc5d0 \ub85c\uadf8\uc778 \uac00\ub2a5\ud55c \ubaa8\ub4e0 \uacc4\uc815\uc774,<br \/>\ndocker image \ub97c \uc2e4\ud589\/\uc0ad\uc81c\/\uc815\uc9c0 \uc2dc\ud0ac \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n<h3>\uc7ac\ubd80\ud305<\/h3>\n<p>\uc11c\ubc84 reboot \ub9c8\ub2e4 <code>chmod<\/code> \ub97c \ub2e4\uc2dc \uc2e4\ud589\ud574\uc57c \ud569\ub2c8\ub2e4.<\/p>\n<h2>setfacl<\/h2>\n<p><a href=\"https:\/\/serverfault.com\/questions\/444867\/linux-setfacl-set-all-current-future-files-directories-in-parent-directory-to\">\ucc38\uc870<\/a><\/p>\n<p><code>chmod<\/code> \ub294 \uc5c6\uc5b4 \ubcf4\uc774\ubbc0\ub85c \uc6d0\uc0c1\ubcf5\uad6c \ud569\ub2c8\ub2e4.<\/p>\n<pre><code class=\"language-bash\">sudo chmod 660 \/var\/run\/docker.sock<\/code><\/pre>\n<p><code>acl<\/code> \uc744 \uc774\uc6a9\ud574 \ucd94\uac00\uad8c\ud55c\uc744 \ud30c\uc77c\uc5d0 \ubd80\uacfc\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n<pre><code class=\"language-bash\">vi install_docker.sh\n------------------------------------\n#!\/bin\/sh\n\napt-get update\n\napt-get -y install apt-transport-https \\\n     apt-utils \\\n     ca-certificates \\\n     curl \\\n     gnupg2 \\\n     zip \\\n     unzip \\\n     acl \\\n     software-properties-common\n\ncurl -fsSL https:\/\/download.docker.com\/linux\/$(. \/etc\/os-release; echo &quot;$ID&quot;)\/gpg &gt; \/tmp\/dkey; apt-key add \/tmp\/dkey\n\nadd-apt-repository \\\n   &quot;deb [arch=amd64] https:\/\/download.docker.com\/linux\/$(. \/etc\/os-release; echo &quot;$ID&quot;) \\\n   $(lsb_release -cs) \\\n   stable&quot; &amp;&amp; \\\n\napt-get update\n\napt-get -y install docker-ce\n------------------------------------<\/code><\/pre>\n<p><code>setfacl<\/code> \uc744 \uc774\uc6a9\ud574 \uc820\ud0a8\uc2a4 \uc774\ubbf8\uc9c0 docker \uacc4\uc815\uc5d0<br \/>\n<code>docker.sock<\/code> \uc758 \uc811\uc18d \uad8c\ud55c\uc744 \ubd80\uc5ec\ud569\ub2c8\ub2e4.<\/p>\n<p>\uc820\ud0a8\uc2a4 \uc774\ubbf8\uc9c0 \uc2e4\ud589 \uc804\uc5d0\ub294 <code>docker.sock<\/code> \uc774 \uc874\uc7ac\ud558\uc9c0 \uc54a\uc73c\ubbc0\ub85c,<br \/>\n<code>\/var\/run\/<\/code> \ub514\ub809\ud1a0\ub9ac\uc5d0 \uc561\uc138\uc2a4 \uad8c\ud55c\uc744 \ubd80\uc5ec\ud558\uace0,<br \/>\n<code>R<\/code> \ub85c \ud558\uc704 \ud30c\uc77c\ub4e4\uc5d0 \uad8c\ud55c\uc744 \ubd80\uc5ec(Recursive)\ubc1b\uac8c \ud558\uace0,<br \/>\n<code>d<\/code> \ub85c \uc2e0\uaddc\ub85c \uc0dd\uc131\ub418\ub294 \ud30c\uc77c\ub4e4\uc5d0 \uad8c\ud55c\uc744 \ubd80\uc5ec(default)\ud569\ub2c8\ub2e4.<\/p>\n<pre><code class=\"language-bash\">vi Dockerfile\n------------------------------------\nFROM jenkins\/jenkins:lts\n\nUSER root\n\nCOPY install_docker.sh \/install_docker.sh\nRUN chmod +x \/install_docker.sh\nRUN \/install_docker.sh\n\nRUN usermod -aG docker jenkins\nRUN setfacl -Rm d:g:docker:rwx,g:docker:rwx \/var\/run\/\n\nUSER jenkins\n------------------------------------<\/code><\/pre>\n<pre><code class=\"language-bash\">docker build -t skyer9\/jenkins-docker:0.0.2 .\ndocker build -t skyer9\/jenkins-docker:latest .\ndocker login\ndocker push skyer9\/jenkins-docker:0.0.2\ndocker push skyer9\/jenkins-docker:latest<\/code><\/pre>\n<p><code>getfacl<\/code> \ub85c \uc820\ud0a8\uc2a4 \uc774\ubbf8\uc9c0 \ub0b4\uc758 docker \uadf8\ub8f9\uc5d0,<br \/>\n<code>docker.sock<\/code> \uc561\uc138\uc2a4 \uad8c\ud55c\uc774 \ubd80\uc5ec\ub41c \uac83\uc744 \ud655\uc778\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n<p><code>u 0<\/code> \uc740 uid 0 \ubc88 \uacc4\uc815\uc73c\ub85c \ub85c\uadf8\uc778\ud558\ub294 \uac83\uc744 \uc758\ubbf8\ud558\uace0,<br \/>\nuid 0 \ubc88 \uacc4\uc815\uc740 root \ub97c \uc758\ubbf8\ud569\ub2c8\ub2e4.<\/p>\n<pre><code class=\"language-bash\">docker exec -itu 0 &lt;\ucee8\ud14c\uc774\ub108 ID&gt; \/bin\/bash\n\ngetfacl \/var\/run\/docker.sock\ngetfacl: Removing leading &#039;\/&#039; from absolute path names\n# file: var\/run\/docker.sock\n# owner: root\n# group: 130\nuser::rw-\ngroup::rw-\ngroup:docker:rwx\nmask::rwx\nother::---<\/code><\/pre>\n<p>\uad8c\ud55c \ubd80\uc5ec\uac00 \uc2e4\ud328\ud558\uba74 \uc544\ub798 \uba85\ub839\uc744 \ubcc4\ub3c4\ub85c \uc2e4\ud589\uc2dc\ucf1c \uc90d\ub2c8\ub2e4.<\/p>\n<pre><code>docker exec -itu 0 &lt;\ucee8\ud14c\uc774\ub108 ID&gt; sh -c &#039;setfacl -Rm d:g:docker:rwx,g:docker:rwx \/var\/run\/&#039;<\/code><\/pre>\n<h2>nomad \ubc14\uc774\ub108\ub9ac \ucd94\uac00<\/h2>\n<p>\uc774 \ubd80\ubd84\uc740 nomad \uc4f0\uc2dc\ub294 \ubd84\ub9cc \ub530\ub77c\ud558\uc2dc\uae38 \ubc14\ub78d\ub2c8\ub2e4.<\/p>\n<pre><code class=\"language-bash\">vi install_docker.sh\n------------------------------------\n#!\/bin\/sh\n\napt-get update\n\napt-get -y install apt-transport-https \\\n     apt-utils \\\n     ca-certificates \\\n     curl \\\n     gnupg2 \\\n     zip \\\n     unzip \\\n     acl \\\n     wget \\\n     software-properties-common\n\ncurl -fsSL https:\/\/download.docker.com\/linux\/$(. \/etc\/os-release; echo &quot;$ID&quot;)\/gpg &gt; \/tmp\/dkey; apt-key add \/tmp\/dkey\n\nadd-apt-repository \\\n   &quot;deb [arch=amd64] https:\/\/download.docker.com\/linux\/$(. \/etc\/os-release; echo &quot;$ID&quot;) \\\n   $(lsb_release -cs) \\\n   stable&quot; &amp;&amp; \\\n\napt-get update\n\napt-get -y install docker-ce\n\n# nomad\nwget -q https:\/\/releases.hashicorp.com\/nomad\/1.1.4\/nomad_1.1.4_linux_amd64.zip\nunzip nomad_1.1.4_linux_amd64.zip\nchown root:root nomad\nchmod 777 nomad\nmv nomad \/usr\/local\/bin\/\n------------------------------------<\/code><\/pre>\n<pre><code class=\"language-bash\">docker build -t skyer9\/jenkins-docker:0.0.3 .\ndocker build -t skyer9\/jenkins-docker:latest .\ndocker login\ndocker push skyer9\/jenkins-docker:0.0.3\ndocker push skyer9\/jenkins-docker:latest<\/code><\/pre>\n<h2>latest \ubc84\uc804\uc73c\ub85c \ubcc0\uacbd<\/h2>\n<pre><code class=\"language-bash\">vi Dockerfile\n------------------------------------\nFROM jenkins\/jenkins:latest\n\nUSER root\n\nCOPY install_docker.sh \/install_docker.sh\nRUN chmod +x \/install_docker.sh\nRUN \/install_docker.sh\n\nRUN usermod -aG docker jenkins\nRUN setfacl -Rm d:g:docker:rwx,g:docker:rwx \/var\/run\/\n\nUSER jenkins\n------------------------------------<\/code><\/pre>\n<pre><code class=\"language-bash\">docker build -t skyer9\/jenkins-docker:0.0.5 .\ndocker build -t skyer9\/jenkins-docker:latest .\ndocker login\ndocker push skyer9\/jenkins-docker:0.0.5\ndocker push skyer9\/jenkins-docker:latest<\/code><\/pre>\n","protected":false},"excerpt":{"rendered":"<p>Docker Out of Docker (DooD) \ucc38\uc870 \ucc38\uc870 \uc820\ud0a8\uc2a4 \ub3c4\ucee4 \uc774\ubbf8\uc9c0\uc5d0\uc11c Dockerize \ub97c \uc2e4\ud589\uc2dc\ud0a4\ub824 \ubcf4\ub2c8 docker \uac00 \uc5c6\ub2e4\uace0 \ud569\ub2c8\ub2e4. docker: not found \uadf8\ub798\uc11c \uc820\ud0a8\uc2a4 \ub3c4\ucee4 \uc774\ubbf8\uc9c0 \ub0b4\uc5d0, docker \ub97c \uc124\uce58 \ubc0f \uc2e4\ud589(Docker in Docker)\ud560\uae4c \ud588\uc9c0\ub9cc, \uad8c\uc7a5\ub418\ub294 \ubc29\uc2dd\uc774 \uc544\ub2c8\ub78d\ub2c8\ub2e4. Docker Out of Docker \uc820\ud0a8\uc2a4 \ub3c4\ucee4 \uc774\ubbf8\uc9c0 \ub0b4\uc5d0 docker \ub97c \uc124\uce58\ud558\uc9c0\ub9cc, \ud638\uc2a4\ud2b8 \uc11c\ubc84\uc5d0 \uc774\ubbf8 \uc124\uce58\ub418\uc5b4 \uc788\ub294, docker \ub97c\u2026 <span class=\"read-more\"><a href=\"https:\/\/www.skyer9.pe.kr\/wordpress\/?p=3382\">Read More &raquo;<\/a><\/span><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[12],"tags":[],"class_list":["post-3382","post","type-post","status-publish","format-standard","hentry","category-devops"],"_links":{"self":[{"href":"https:\/\/www.skyer9.pe.kr\/wordpress\/index.php?rest_route=\/wp\/v2\/posts\/3382","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.skyer9.pe.kr\/wordpress\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.skyer9.pe.kr\/wordpress\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.skyer9.pe.kr\/wordpress\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.skyer9.pe.kr\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=3382"}],"version-history":[{"count":34,"href":"https:\/\/www.skyer9.pe.kr\/wordpress\/index.php?rest_route=\/wp\/v2\/posts\/3382\/revisions"}],"predecessor-version":[{"id":3778,"href":"https:\/\/www.skyer9.pe.kr\/wordpress\/index.php?rest_route=\/wp\/v2\/posts\/3382\/revisions\/3778"}],"wp:attachment":[{"href":"https:\/\/www.skyer9.pe.kr\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=3382"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.skyer9.pe.kr\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=3382"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.skyer9.pe.kr\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=3382"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}