{"id":1913,"date":"2021-01-06T21:10:50","date_gmt":"2021-01-06T12:10:50","guid":{"rendered":"http:\/\/gotocloud.co.kr\/?p=1913"},"modified":"2023-11-30T18:39:09","modified_gmt":"2023-11-30T09:39:09","slug":"docker-%ec%bb%a8%ed%85%8c%ec%9d%b4%eb%84%88-%ec%9d%b4%eb%af%b8%ec%a7%80%eb%a5%bc-singularity-%ec%bb%a8%ed%85%8c%ec%9d%b4%eb%84%88-%ec%9d%b4%eb%af%b8%ec%a7%80%eb%a1%9c-%eb%b3%80%ed%99%98%ed%95%98","status":"publish","type":"post","link":"https:\/\/gotocloud.co.kr\/?p=1913","title":{"rendered":"Docker \uc774\ubbf8\uc9c0\ub97c Singularity \uc774\ubbf8\uc9c0\ub85c \ubcc0\ud658\ud558\uae30"},"content":{"rendered":"<p>\uc774 \uae00\uc5d0\uc11c\ub294 Docker \ucee8\ud14c\uc774\ub108 \uc774\ubbf8\uc9c0\ub97c Singularity \ucee8\ud14c\uc774\ub108 \uc774\ubbf8\uc9c0\ub85c \ubcc0\ud658\ud558\ub294 \ubc29\ubc95\uc744 \uc124\uba85\ud55c\ub2e4. Docker\uc640 Singularity\uc5d0 \ub300\ud55c \uc0c1\uc138\ud55c \uc124\uba85\uc740 <a href=\"https:\/\/www.docker.com\/\">Docker \ud648\ud398\uc774\uc9c0<\/a>\uc640 <a href=\"https:\/\/sylabs.io\/\">Singularity \ud648\ud398\uc774\uc9c0<\/a>\ub97c \ucc38\uc870\ud558\uae30 \ubc14\ub780\ub2e4.<\/p>\n<p>Docker\uc640 Singularity\ub294 \uc774\ubbf8 \uc124\uce58\ub418\uc5b4 \uc788\uc5b4\uc57c \ud558\uba70, \ud14c\uc2a4\ud2b8\uc5d0 \uc0ac\uc6a9\ub41c Docker \uc774\ubbf8\uc9c0\ub294 CUDA 10.2\uac00 \uc124\uce58\ub41c Ubuntu 18.04 \uc774\ub2e4.<\/p>\n<p>&nbsp;<\/p>\n<h2>Docker \uc774\ubbf8\uc9c0 pull<\/h2>\n<p>\ub2e4\uc74c\uc758 \uba85\ub839\uc744 \ud1b5\ud574 nvidia\/cuda:10.2-devel-ubuntu18.04 \uc774\ubbf8\uc9c0\ub97c pull \ud55c\ub2e4.<\/p>\n<pre>$ sudo docker pull nvidia\/cuda:10.2-devel-ubuntu18.04<\/pre>\n<p>\uc815\uc0c1\uc801\uc73c\ub85c Docker \uc774\ubbf8\uc9c0\uac00 \ub2e4\uc6b4\ub85c\ub4dc \ub418\uc5c8\ub294\uc9c0\ub97c \ub2e4\uc74c\uc758 \uba85\ub839\uc5b4\ub85c \ud655\uc778\ud55c\ub2e4.<\/p>\n<pre>$ sudo docker image list<\/pre>\n<p>\ub2e4\uc74c\uacfc \uac19\uc774 \ub2e4\uc6b4\ub85c\ub4dc \ub41c \uc774\ubbf8\uc9c0\uac00 \ud45c\uc2dc\ub41c\ub2e4.<\/p>\n<pre>REPOSITORY TAG IMAGE ID CREATED SIZE<\/pre>\n<pre>nvidia\/cuda 10.2-devel-ubuntu18.04 004b2ee0f7e3 3 weeks ago 2.93GB<\/pre>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<h2>Docker \uc774\ubbf8\uc9c0 \uc2e4\ud589<\/h2>\n<p>Docker \uc774\ubbf8\uc9c0\uac00 \uc815\uc0c1\uc801\uc73c\ub85c \uc2e4\ud589\ub418\ub294\uc9c0\ub294 \ub2e4\uc74c\uc758 \uba85\ub839\uc5b4\ub85c \ud655\uc778\ud55c\ub2e4.<\/p>\n<pre>$ sudo docker run -ti --rm nvidia\/cuda:10.2-devel-ubuntu18.04 bash<\/pre>\n<p>\uc815\uc0c1\uc801\uc73c\ub85c \uc774\ubbf8\uc9c0\uac00 \uc2e4\ud589\ub418\uba74 \uc544\ub798\uc640 \uac19\uc774 \uc774\ubbf8\uc9c0 \ub0b4\uc5d0\uc11c \uc6d0\ud558\ub294 \ud328\ud0a4\uc9c0\ub97c \uc124\uce58\ud560 \uc218 \uc788\ub2e4. \uc774 \uba85\ub839\uc5b4 \ub4e4\uc740 \uc774\ubbf8\uc9c0 \ub0b4\uc5d0\uc11c \uc218\ud589\ub418\uc5b4\uc57c \ud55c\ub2e4.<\/p>\n<pre>root@077bfec24da1:\/# apt update\r\nroot@077bfec24da1:\/# apt upgrade\r\nroot@077bfec24da1:\/# apt install net-tools openssh-server vim sudo s3fs<\/pre>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<h2>\ucd5c\uc2e0 Docker \uc774\ubbf8\uc9c0 Commit<\/h2>\n<p>Docker \uc774\ubbf8\uc9c0 \ub0b4\uc5d0\uc11c \uc6d0\ud558\ub294 \ud328\ud0a4\uc9c0 \ub4f1\uc744 \uc124\uce58\ud55c \ud6c4\uc5d0, \ucd5c\uc2e0 \uc774\ubbf8\uc9c0\ub97c commit \ud55c\ub2e4. \uc774\ub97c \uc704\ud574 \ub85c\uceec \uc6cc\ud06c\uc2a4\ud14c\uc774\uc158\uc5d0\uc11c \ud130\ubbf8\ud138 \ucc3d\uc744 \ud558\ub098 \ub354 \uc2e4\ud589\ud55c \ud6c4 \ub2e4\uc74c\uc758 \uba85\ub839\uc5b4\ub97c \uc218\ud589\ud558\uc5ec \ud604\uc7ac \uc2e4\ud589 \uc911\uc778 docker \uc774\ubbf8\uc9c0\uc758 id\ub97c \ud655\uc778\ud55c\ub2e4. \ucd9c\ub825 \uacb0\uacfc\uc5d0\uc11c\u00a0<strong>077bfec24da1<\/strong> \uc774 \uc2e4\ud589 \uc911\uc778 \uc774\ubbf8\uc9c0\uc758 id \uc774\ub2e4.<\/p>\n<pre>$ sudo docker ps<\/pre>\n<pre>CONTAINER ID IMAGE COMMAND<\/pre>\n<pre>077bfec24da1 nvidia\/cuda:10.2-devel-ubuntu18.04 \"bash\"<\/pre>\n<p>&nbsp;<\/p>\n<p>\ucd5c\uc2e0 \ubcc0\uacbd \uc0ac\ud56d\uc774 \ubc18\uc601\ub41c \uc774\ubbf8\uc9c0\ub97c docker \uc800\uc7a5\uc18c\uc5d0 commit \ud55c\ub2e4. \uc774 \ub54c \uc55e\uc5d0\uc11c docker ps \uba85\ub839\uc5b4\ub97c \ud1b5\ud574 \ucd9c\ub825\ub41c id\uc778\u00a0<strong>077bfec24da1<\/strong> \ub97c \uc0ac\uc6a9\ud55c\ub2e4. \uc800\uc7a5\uc18c\uc5d0 \uc800\uc7a5\ub420 \uc774\ubbf8\uc9c0\uc758 \uc774\ub984\uc740 <strong>cuda_10_2-ubuntu_18_04<\/strong> \ub85c \uc0ac\uc6a9\ud55c\ub2e4.<\/p>\n<pre>$ sudo docker commit 077bfec24da1 cuda_10_2-ubuntu_18_04<\/pre>\n<p>&nbsp;<\/p>\n<p>Commit\uc774 \uc815\uc0c1\uc801\uc73c\ub85c \uc218\ud589\ub418\uba74 docker image list \uba85\ub839\uc5b4\ub97c \ud1b5\ud574 \uc774\ubbf8\uc9c0\ub97c \ud655\uc778\ud560 \uc218 \uc788\ub2e4.<\/p>\n<pre>$ sudo docker image list<\/pre>\n<pre>REPOSITORY TAG IMAGE ID<\/pre>\n<pre>cuda_10_2-ubuntu_18_04 latest 9c1b03c4d306<\/pre>\n<pre>nvidia\/cuda 10.2-devel-ubuntu18.04 004b2ee0f7e3<\/pre>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<h2>Docker \uc774\ubbf8\uc9c0\ub97c \ud30c\uc77c\ub85c \uc800\uc7a5<\/h2>\n<p>\ub2e4\uc74c\uc758 \uba85\ub839\uc5b4\ub97c \uc0ac\uc6a9\ud558\uc5ec, commit \ub41c \ucd5c\uc2e0 docker \uc774\ubbf8\uc9c0\ub97c tar \ud30c\uc77c\ub85c \uc800\uc7a5\ud55c\ub2e4. \uc800\uc7a5\ub41c \ud30c\uc77c \uc774\ub984\uc740\u00a0cuda_10_2-ubuntu_18_04.tar \uc774\ub2e4.<\/p>\n<p>&nbsp;<\/p>\n<pre>$ sudo docker save cuda_10_2-ubuntu_18_04:latest -o cuda_10_2-ubuntu_18_04.tar<\/pre>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<h2>\uc800\uc7a5\ub41c Docker \ud30c\uc77c Singularity \ud30c\uc77c\ub85c \ubcc0\ud658<\/h2>\n<p>Docker\ub294 sudo \uad8c\ud55c\uc73c\ub85c \uc2e4\ud589\ud558\ub294 \ubc18\uba74, Singularity\ub294 \uc0ac\uc6a9\uc790 \uad8c\ud55c\uc73c\ub85c \uc0dd\uc131, \uc0ad\uc81c \ubc0f \uc774\ubbf8\uc9c0 \ub0b4\uc5d0\uc11c root \uad8c\ud55c \uc2e4\ud589 \ub4f1\uc774 \uac00\ub2a5\ud558\ub2e4. \uc55e\uc5d0\uc11c Docker \uc774\ubbf8\uc9c0\ub97c sudo \uba85\ub839\uc5b4\ub85c \ud30c\uc77c\ub85c \ubcc0\ud658\ud560 \uacbd\uc6b0 \uc800\uc7a5\ub41c \ud30c\uc77c\uc774 root.root\uc5d0 \uc18d\ud558\ubbc0\ub85c, \uc774\ub97c \uc0ac\uc6a9\uc790\uc640 \uadf8\ub8f9 \uad8c\ud55c\uc73c\ub85c \ubcc0\uacbd\ud55c\ub2e4. \uc5ec\uae30\uc5d0\uc11c user.group\uc740 \uc2e4\uc81c \uc0ac\uc6a9\uc790\uc758 \uc720\uc800\uc640 \uadf8\ub8f9\uc73c\ub85c \ubcc0\uacbd\ud55c\ub2e4.<\/p>\n<pre>$ sudo chown <em>user.group<\/em> cuda_10_2-ubuntu_18_04.tar<\/pre>\n<p>&nbsp;<\/p>\n<p>\ubcc0\ud658\ub41c \ud30c\uc77c\uc5d0 \ub300\ud574\uc11c \ub2e4\uc74c\uc758 \uba85\ub839\uc5b4\ub97c \uc0ac\uc6a9\ud558\uc5ec Singularity \ucee8\ud14c\uc774\ub108 \uc774\ubbf8\uc9c0\ub85c \ubcc0\uacbd\ud55c\ub2e4. Singularity \uc774\ubbf8\uc9c0\ub294 \ud604\uc7ac \uc2e4\ud589 \ub514\ub809\ud1a0\ub9ac \uc544\ub798\uc5d0\u00a0<strong>cuda_10_2-ubuntu_18_04.sif<\/strong> \ub514\ub809\ud1a0\ub9ac\ub85c \uc0dd\uc131\ub41c\ub2e4.<\/p>\n<pre>$ singularity build --sandbox cuda_10_2-ubuntu_18_04.sif docker-archive:\/\/cuda_10_2-ubuntu_18_04.tar<\/pre>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<h2>Singularity \uc774\ubbf8\uc9c0 \uc2e4\ud589<\/h2>\n<p>\ubcc0\ud658\ub41c Singularity \uc774\ubbf8\uc9c0\ub294 \ub2e4\uc74c\uc758 \uba85\ub839\uc744 \ud1b5\ud574 \uc2e4\ud589\ud560 \uc218 \uc788\ub2e4.<\/p>\n<pre>$ singularity shell --writable --fakeroot cuda_10_2-ubuntu_18_04.sif<\/pre>\n<p>&nbsp;<\/p>\n<p><strong>writable<\/strong> \uc635\uc158\uc740 \uc774\ubbf8\uc9c0 \ub0b4\uc5d0\uc11c \uc4f0\uae30 \uad8c\ud55c\uc744 \ubd80\uc5ec\ud558\ub294 \uc635\uc158\uc774\uba70, <strong>fakeroot<\/strong> \uc635\uc158\uc740 \uc774\ubbf8\uc9c0 \ub0b4\uc5d0\uc11c root \uad8c\ud55c\uc744 \uc5bb\uc744 \uc218 \uc788\ub294 \uc635\uc158\uc774\ub2e4. \uc774 \ub450\uac00\uc9c0 \uc635\uc158\uc744 \ud1b5\ud574 \uc774\ubbf8\uc9c0 \ub0b4\uc5d0\u00a0 \uc6d0\ud558\ub294 \ud328\ud0a4\uc9c0\ub97c \uc124\uce58\ud560 \uc218 \uc788\ub2e4. \uc774\ub97c \ud1b5\ud574 \uc77c\ubc18 \uc0ac\uc6a9\uc790 \uad8c\ud55c\uc73c\ub85c Singularity \uc774\ubbf8\uc9c0\ub97c \uc0dd\uc131\ud558\uace0, \uc0dd\uc131\ub41c \uc774\ubbf8\uc9c0 \ub0b4\uc5d0\uc11c\ub294 root \uad8c\ud55c\uc73c\ub85c\u00a0 \uc6d0\ud558\ub294 \ud328\ud0a4\uc9c0 \ub4f1\uc744 \uc124\uce58\ud55c \ud6c4\uc5d0, \uc774 \uc774\ubbf8\uc9c0\ub97c Singularity\uac00 \uc124\uce58\ub41c \ub2e4\ub978 \ucef4\ud4e8\ud130\uc5d0\uc11c \uc2e4\ud589\ud560 \uc218 \uc788\uac8c \ub41c\ub2e4.<\/p>\n<p>&nbsp;<\/p>\n<h2>Singularity \uc774\ubbf8\uc9c0 \uc555\ucd95<\/h2>\n<p>Docker\uc5d0\uc11c\ub294 \ubcc0\uacbd\ub41c \uc774\ubbf8\uc9c0\ub97c \uc800\uc7a5\uc18c\uc5d0 commit \ud55c \ud6c4\uc5d0 save \uba85\ub839\uc5b4\ub97c \ud1b5\ud574 \uc774\ub97c \ub85c\uceec \ud30c\uc77c\ub85c \uc800\uc7a5\ud558\ub294 \ubc18\uba74, Singularity \uc774\ubbf8\uc9c0\ub294 \uc544\ub798\uc758 \uba85\ub839\uc5b4\ub97c \ud1b5\ud574 \uc774\ubbf8\uc9c0\uac00 \uc0dd\uc131\ub41c \ub514\ub809\ud1a0\ub9ac\ub97c \uc555\ucd95\ud558\uae30\ub9cc \ud558\uba74, \ub2e4\ub978 \ucef4\ud4e8\ud130\uc5d0 \uc62e\uaca8\uc11c \uadf8\ub300\ub85c \uc0ac\uc6a9\ud560 \uc218 \uc788\ub2e4.<\/p>\n<pre>$ tar czf cuda_10_2-ubuntu_18_04.tar.gz cuda_10_2-ubuntu_18_04.sif<\/pre>\n<p>&nbsp;<\/p>\n<p>\uc774 \uba85\ub839\uc5b4\ub85c \uc0dd\uc131\ub41c\u00a0cuda_10_2-ubuntu_18_04.tar.gz \ud30c\uc77c\uc740 CUDA 10.2\uac00 \uc124\uce58\ub41c Ubuntu 18.04 \ubc84\uc804\uc73c\ub85c Singularity \uc124\uce58\ub41c \ub2e4\ub978 \ucef4\ud4e8\ud130\uc5d0\uc11c \uc555\ucd95\uc744 \ud574\uc81c \ud55c \ud6c4, \uc2e4\ud589\ud558\uae30\ub9cc \ud558\uba74 \ub41c\ub2e4.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>\uc774 \uae00\uc5d0\uc11c\ub294 Docker \ucee8\ud14c\uc774\ub108 \uc774\ubbf8\uc9c0\ub97c Singularity \ucee8\ud14c\uc774\ub108 \uc774\ubbf8\uc9c0\ub85c \ubcc0\ud658\ud558\ub294 \ubc29\ubc95\uc744 \uc124\uba85\ud55c\ub2e4. Docker\uc640 Singularity\uc5d0 \ub300\ud55c \uc0c1\uc138\ud55c \uc124\uba85\uc740 Docker \ud648\ud398\uc774\uc9c0\uc640 Singularity \ud648\ud398\uc774\uc9c0\ub97c \ucc38\uc870\ud558\uae30 \ubc14\ub780\ub2e4. Docker\uc640 Singularity\ub294 \uc774\ubbf8 [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":1916,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[407],"tags":[341,253,340],"_links":{"self":[{"href":"https:\/\/gotocloud.co.kr\/index.php?rest_route=\/wp\/v2\/posts\/1913"}],"collection":[{"href":"https:\/\/gotocloud.co.kr\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/gotocloud.co.kr\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/gotocloud.co.kr\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/gotocloud.co.kr\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=1913"}],"version-history":[{"count":9,"href":"https:\/\/gotocloud.co.kr\/index.php?rest_route=\/wp\/v2\/posts\/1913\/revisions"}],"predecessor-version":[{"id":1943,"href":"https:\/\/gotocloud.co.kr\/index.php?rest_route=\/wp\/v2\/posts\/1913\/revisions\/1943"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/gotocloud.co.kr\/index.php?rest_route=\/wp\/v2\/media\/1916"}],"wp:attachment":[{"href":"https:\/\/gotocloud.co.kr\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=1913"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/gotocloud.co.kr\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=1913"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/gotocloud.co.kr\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=1913"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}