{"id":929,"date":"2019-01-16T10:42:25","date_gmt":"2019-01-16T19:42:25","guid":{"rendered":"\/blog\/?p=929"},"modified":"2026-06-30T11:10:45","modified_gmt":"2026-06-30T02:10:45","slug":"docker-%ea%b8%b0%eb%b3%b8-%eb%aa%85%eb%a0%b9%ec%96%b4","status":"publish","type":"post","link":"https:\/\/hasu0707.duckdns.org\/blog\/?p=929","title":{"rendered":"docker \uae30\ubcf8 \uba85\ub839\uc5b4"},"content":{"rendered":"\n<pre class=\"wp-block-preformatted\">\u203b container\ub294 VM \ud504\ub85c\uc138\uc2a4 \uac1c\ub150, image\ub294 docker image file \uac1c\ub150.<br><br>\u25a0docker \uc774\ubbf8\uc9c0 \ub2e4\uc6b4\ub85c\ub4dc<br>  docker pull &lt;\uc774\ubbf8\uc9c0:\ubc84\uc804><br>  docker pull &lt;\uc774\ubbf8\uc9c0:latest><br>  ex) docker pull aikidosecurity\/local-scanner<br>  ex) docker image pull debian:bookworm<br>  ex) docker pull ubuntu:latest<br><br>\u25a0docker \ucee8\ud14c\uc774\ub108 \uc0dd\uc131<br>  docker create &lt;\uc774\ubbf8\uc9c0><br><br>\u25a0docker \uc2e4\ud589<br>  docker start my_container<br>  docker start container1 container2 container3<br>  docker start -a my_container<br>    -a: \ucee8\ud14c\uc774\ub108\ub97c \uc2dc\uc791\ud568\uacfc \ub3d9\uc2dc\uc5d0 \ud45c\uc900 \ucd9c\ub825(stdout) \ubc0f \ud45c\uc900 \uc5d0\ub7ec(stderr)\ub97c \ud604\uc7ac \ud130\ubbf8\ub110 \ud654\uba74\uc5d0 \uc5f0\uacb0\ud558\uc5ec \ud504\ub85c\uc138\uc2a4 \ub85c\uadf8\ub97c \uc2e4\uc2dc\uac04\uc73c\ub85c \ud655\uc778<br>    -i: \ub300\ud654\ud615 \ubaa8\ub4dc\ub85c \uc2dc\uc791<br><br>\u25a0docker pull + create + start<br>  docker run &lt;\uc635\uc158> &lt;\uc774\ubbf8\uc9c0 \uc2dd\ubcc4\uc790> &lt;\uba85\ub839\uc5b4> &lt;\uc778\uc790><br>  ex) docker run -it --name myname01 &lt;CONTAINER ID or Name> \/bin\/bash<br>    \uc2e4\ud589 \ud6c4 \/bin\/bash \uc2e4\ud589 (\ub300\ud654\ud615 \ubaa8\ub4dc)<br>  ex) docker run -d python:3.8-alpine python -m http.server<br>      python:3.8-alpine \uc774\ubbf8\uc9c0\ub85c \ubd80\ud130 python -m http.server \uba85\ub839\uc5b4\ub97c \ubc31\uadf8\ub77c\uc6b4\ub4dc\ub85c \uc2e4\ud589<br>    -d: \ubc31\uadf8\ub77c\uc6b4\ub4dc\ub85c \uc2e4\ud589<br>  ex) docker run -it python:3.8-alpine<br>    -it: \ub300\ud654\ud615 \ubaa8\ub4dc\ub85c \uc2e4\ud589 (-t\ub294 TTY \ubaa8\ub4dc(pseudo-TTY)\ub85c \uac00\uc0c1\ud130\ubbf8\ub110 \ud560\ub2f9)<br>    \u203b\ub300\ud654\ud615 \ubaa8\ub4dc\uc5d0\uc11c \ube60\uc838\ub098\uc62c\ub54c<br>      Ctrl+D \ud639\uc740 exit: \ucee8\ud14c\uc774\ub108 \uc911\uc9c0 \ud6c4 \ube60\uc838\ub098\uc634<br>      Ctrl+P + Ctrl+Q: \ucee8\ud14c\uc774\ub108\ub97c \uc2e4\ud589\uc0c1\ud0dc\ub85c \ube60\uc838\ub098\uc634<br>  ex) docker run -d --name my-server python:3.8-alpine python -m http.server<br>    --name: \ucee8\ud14c\uc774\ub108\uc5d0 \uc774\ub984\uc744 \ubd80\uc5ec\ud574\uc8fc\uba74 \ud574\ub2f9 \uc774\ub984\uc73c\ub85c \ucee8\ud14c\uc774\ub108\ub97c \uc2dd\ubcc4\ud560 \uc218 \uc788\uc74c.<br>  ex) docker run -e FOO=bar python:3.8-alpine env<br>    -e: \ud658\uacbd \ubcc0\uc218 \uc800\uc7a5<br>  ex) docker run -d -p 80:8000 python:3.8-alpine python -m http.server<br>      docker run -d -p 1234:6379 redis<br>    -p: [\ud638\uc2a4\ud2b8IP]:[\ud638\uc2a4\ud2b8\ud3ec\ud2b8]:[\ucee8\ud14c\uc774\ub108\ud3ec\ud2b8] (\ud638\uc2a4\ud2b8IP 0.0.0.0 \uac00\ub2a5)<br>  ex) docker run -v `pwd`:\/etc python:3.8-alpine cat \/etc\/test.txt<br>    -v: \ud638\uc2a4\ud2b8 \ucef4\ud4e8\ud130\uc758 \ud604\uc7ac \ub514\ub809\ud130\ub9ac\ub97c \ucee8\ud14c\uc774\ub108\uc758 \/etc \uacbd\ub85c\ub85c \ub9c8\uc6b4\ud2b8\ud55c \ud6c4, \uadf8 \uc548\uc5d0 \uc788\ub294 test.txt \ud30c\uc77c\uc758 \ub0b4\uc6a9\uc744 \ucd9c\ub825<br>  ex) docker run -w \/etc python:3.8-alpine pwd<br>    -w: \ucee8\ud14c\uc774\ub108\uc758 WORKDIR\uc744 \/etc\ub85c \ubcc0\uacbd<br>    \u203bWORKDIR: \ucee8\ud14c\uc774\ub108\uc758 \ud604\uc7ac \uc791\uc5c5 \ub514\ub809\ud1a0\ub9ac, \ub514\ud3f4\ud2b8\ub294 \/<br>  ex) docker run --entrypoint python python:3.8-alpine --version<br>    --entrypoint: Dockerfile\uc758 ENTRYPOINT \uc124\uc815\uc744 \ub36e\uc5b4\uc4f0\uae30 \uc704\ud574\uc11c \uc0ac\uc6a9<br>    \u203bEntrypoint: \ub3c4\ucee4 \ucee8\ud14c\uc774\ub108\uac00 \uc2e4\ud589\ud560 \ub54c \uace0\uc815\uc801\uc73c\ub85c \uc2e4\ud589\ub418\ub294 \uc2a4\ud06c\ub9bd\ud2b8 \ud639\uc740 \uba85\ub839\uc5b4<br>  ex) docker run --rm -it wernight\/funbox nyancat<br>    --rm: \ucee8\ud14c\uc774\ub108\ub97c \uc77c\ud68c\uc131\uc73c\ub85c \uc2e4\ud589\ud560 \ub54c \uc8fc\ub85c \uc0ac\uc6a9. \ucee8\ud14c\uc774\ub108\uac00 \uc885\ub8cc\ub420 \ub54c \ucee8\ud14c\uc774\ub108\uc640 \uad00\ub828\ub41c \ub9ac\uc18c\uc2a4(\ud30c\uc77c \uc2dc\uc2a4\ud15c, \ubcfc\ub968)\uae4c\uc9c0 \uae68\ub057\uc774 \uc81c\uac70<br><br>\u25a0docker container \ud655\uc778<br>  docker ps<br>  docker ps -a (\uc8fd\uc740 docker container\uae4c\uc9c0 \ud655\uc778)<br>  docker ps --format \"table {{.Names}}\\t{{.Ports}}\"<br>  docker name\uacfc port\ub9cc \ucd9c\ub825<br><br>\u25a0docker \uc258\ub85c \uc9c4\uc785<br>  docker exec -i -t  &lt;CONTAINER ID or Name> \/bin\/bash<br><br>\u25a0docker image \ud655\uc778<br>  docker images<br><br>\u25a0docker image \uc0ad\uc81c<br>  docker rmi &lt;REPOSITORY>:&lt;TAG> -f<br>  -f: force<br><br>\u25a0docker image \ubaa8\ub450 \uc0ad\uc81c<br>  docker rmi $(docker images -q) -f<br><br>\u25a0docker container \ub85c\uadf8 \uc5f4\ub78c<br>  docker logs &lt;CONTAINER ID or Name><br>  docker logs --since 44640m --details haproxy 2>&amp;1 | grep -E \"ERR|WARN\"<br>  haproxy \ucee8\ud14c\uc774\ub108\uc5d0\uc11c 44640\ubd84(31\uc77c) \uc804\ubd80\ud130 \ud604\uc7ac\uae4c\uc9c0\uc758 ERR or WARN\uc774 \ud3ec\ud568\ub41c \ub85c\uadf8\ub97c \ucd9c\ub825\ud55c\ub2e4.<br><br>\u25a0docker container Low-Level \uc815\ubcf4<br>  docker inspect &lt;CONTAINER ID or Name><br>  docker inspect haproxy | grep \"IPAddress\"<br>  \ucee8\ud14c\uc774\ub108\uac00 \uc0ac\uc6a9\ud558\ub294 IP \uc8fc\uc18c\ub97c \ucd9c\ub825\ud55c\ub2e4.<br><br>\u25a0docker container \uc7ac\ubd80\ud305<br>  docker restart &lt;CONTAINER ID or Name><br><br>\u25a0docker container \uc911\uc9c0<br>  docker stop &lt;CONTAINER ID or Name><br><br>\u25a0docker container \ubaa8\ub450 \uc911\uc9c0<br>  docker stop $(docker ps -a -q)<br><br>\u25a0docker container \uc0ad\uc81c<br>  docker rm &lt;CONTAINER ID or Name> -f<br><br>\u25a0docker container \ubaa8\ub450 \uc0ad\uc81c<br>  docker rm $(docker ps -a -q) -f<br><br>\u25a0docker image \ubc31\uc5c5\/\ubcf5\uc6d0<br>  docker ps -a<br>  docker stop &lt;CONTAINER ID><br>  docker commit -p &lt;CONTAINER ID> &lt;\uc0c8\ub85c\uc6b4 \uc774\ubbf8\uc9c0 \uba85><br>    ex) docker commit -p 20186168bd2b \"aikidosecurity\/local-scanner:latest\"<br>  docker save -o &lt;\ucd9c\ub825 tar \ud30c\uc77c\uba85> &lt;\uc774\ubbf8\uc9c0 \uba85><br>    ex) docker save -o local-scanner.tar \"aikidosecurity\/local-scanner:latest\"<br>        gzip -9 local-scanner.tar<br>  docker load -i (tar \ud30c\uc77c\uba85)<br>    ex) docker load -i local-scanner.tar.gz<\/pre>\n","protected":false},"excerpt":{"rendered":"<p>\u203b container\ub294 VM \ud504\ub85c\uc138\uc2a4 \uac1c\ub150, image\ub294 docker image file \uac1c\ub150.\u25a0docker \uc774\ubbf8\uc9c0 \ub2e4\uc6b4\ub85c\ub4dc docker pull &lt;\uc774\ubbf8\uc9c0:\ubc84\uc804> docker pull &lt;\uc774\ubbf8\uc9c0:latest> ex) docker pull aikidosecurity\/local-scanner ex) docker image pull debian:bookworm ex) docker pull ubuntu:latest\u25a0docker \ucee8\ud14c\uc774\ub108 \uc0dd\uc131 docker create &lt;\uc774\ubbf8\uc9c0>\u25a0docker \uc2e4\ud589 docker start my_container docker start container1 container2 container3 docker start -a my_container -a: \ucee8\ud14c\uc774\ub108\ub97c \uc2dc\uc791\ud568\uacfc \ub3d9\uc2dc\uc5d0 \ud45c\uc900 \ucd9c\ub825(stdout) [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"site-sidebar-layout":"default","site-content-layout":"","ast-site-content-layout":"default","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"","ast-breadcrumbs-content":"","ast-featured-img":"","footer-sml-layout":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"set","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_feature_clip_id":0,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_post_was_ever_published":false},"categories":[39],"tags":[],"class_list":["post-929","post","type-post","status-publish","format-standard","hentry","category-os_linux_unix_macos"],"jetpack_sharing_enabled":true,"jetpack_featured_media_url":"","_links":{"self":[{"href":"https:\/\/hasu0707.duckdns.org\/blog\/index.php?rest_route=\/wp\/v2\/posts\/929","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/hasu0707.duckdns.org\/blog\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/hasu0707.duckdns.org\/blog\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/hasu0707.duckdns.org\/blog\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/hasu0707.duckdns.org\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=929"}],"version-history":[{"count":0,"href":"https:\/\/hasu0707.duckdns.org\/blog\/index.php?rest_route=\/wp\/v2\/posts\/929\/revisions"}],"wp:attachment":[{"href":"https:\/\/hasu0707.duckdns.org\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=929"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/hasu0707.duckdns.org\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=929"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/hasu0707.duckdns.org\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=929"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}