{"componentChunkName":"component---src-templates-post-template-jsx","path":"/history/posts/2020-12-30--001","result":{"data":{"site":{"siteMetadata":{"title":"Blog by Eunyoung","subtitle":"작업 기록 블로그","copyright":"© All rights reserved.","author":{"name":"EunYoung","twitter":"#"},"disqusShortname":"","url":"https://ssongey.github.io"}},"markdownRemark":{"id":"d83fb72d-9d29-50e9-ab77-4370a9c3cb6f","html":"<h3>#. 도커는 무엇인가요?</h3>\n<ul>\n<li>컨테이너를 사용하여 응용프로그램을 더 쉽게 만들고 배포하고 실행할 수 있도록 설계된 도구 이며, 컨테이너 기반의 오픈소스 가상화 플랫폼이며 생태계</li>\n</ul>\n<h3>#. 컨테이너란?</h3>\n<ul>\n<li>코드와 모든 종속성을 패키지화하여 응용 프로그램이 한 컴퓨팅 환경에서 다른 컴퓨팅 환경으로 빠르고 안정적으로 실행되도록 하는 소프트웨어의 표준 단위</li>\n<li>컨테이너 안에 다양한 프로그램, 실행환경을 컨테이너로 추상화하고 동일한 인터페이스를 제공하여 프로그램의 배포 및 관리를 단순하게 해준다.</li>\n</ul>\n<h3>#. 컨테이너 이미지</h3>\n<ul>\n<li>코드, 런타입, 시스템 도구, 시스템 라이브러리 및 설정과 같은 응용 프로그램을 실행하는 데 필요한 모든 것을 포함하는 가볍고 독립적이며 실행 가능한 소프트웨어 패키지</li>\n<li>도커 이미지는 프로그램을 실행하는데 필요한 설정이나 종속성을 갖고 있으며, 도커 이미지를 이용해서 컨테이너를 생성하며(이미지의 인스턴스) 도커 컨테이너를 이용하여 프로그램을 실행</li>\n</ul>\n<p>\n  <a\n    class=\"gatsby-resp-image-link\"\n    href=\"/devHistoryBlog/static/fe627eb7e3afb044becde90e18397f07/7960f/001-01.png\"\n    style=\"display: block\"\n    target=\"_blank\"\n    rel=\"noopener\"\n  >\n  \n  <span\n    class=\"gatsby-resp-image-wrapper\"\n    style=\"position: relative; display: block;  max-width: 960px; margin-left: auto; margin-right: auto;\"\n  >\n    <span\n      class=\"gatsby-resp-image-background-image\"\n      style=\"padding-bottom: 54.58333333333334%; position: relative; bottom: 0; left: 0; background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAALCAYAAAB/Ca1DAAAACXBIWXMAABYlAAAWJQFJUiTwAAABy0lEQVQoz4WRX3OaQBTF/f5fxDz0sZNp08QG/7QmoxK1acegAisCCixGXCKCnFwWEtt00j78Zu8uew/n7qk1xw782QC5oyJdvo+whsjs017WVh/pooeM1gO7xcGbosZdhmx+jdxo4Ujk72G2idMeVKdGBynrImM3SOctZM4YNWyY/Aj2nfj22/onRcOhItXb2GvX2Ho2+GYLPwgR8TXS1S/UUs6Q64p0ALNTOWn/JbifKjRBp4TuZXoLwp5AeAy7tQnhTJC6P1HLuIGDNUAcrrDzFhDcxd6+x1FvysZSpC0Fc/nDkuJ5CpGIegqEo5HgPQkGOlLnB0S8Bw8CROIJ8WqKRGuUI86aEjFpvNbF+dNDA9s1wyYMwX0fu8Cmkclh4huYfD2DelHH8MsZxlfEZR07EoDVfR05mSlvnqGDeDGSLmPnAYINS4dJYCAYnoOPPmOtnkuC0SfppGgsxpOCNHJCZ4l02JQOo8DFJoopmAjikVehhJTygpqWNycqZ7lJsJIXcQnVGSWt968wVxXody2qL5HQ01HKZpUyXaTHfwFV6v/CUz9iqtShEXb3AzK3EHy0cbRucVz239D7T90DnAHg3gErwukj8zU8A72EIZyWtIoIAAAAAElFTkSuQmCC'); background-size: cover; display: block;\"\n    >\n      <img\n        class=\"gatsby-resp-image-image\"\n        style=\"width: 100%; height: 100%; margin: 0; vertical-align: middle; position: absolute; top: 0; left: 0; box-shadow: inset 0px 0px 0px 400px white;\"\n        alt=\"001 01\"\n        title=\"\"\n        src=\"/devHistoryBlog/static/fe627eb7e3afb044becde90e18397f07/d9199/001-01.png\"\n        srcset=\"/devHistoryBlog/static/fe627eb7e3afb044becde90e18397f07/8ff5a/001-01.png 240w,\n/devHistoryBlog/static/fe627eb7e3afb044becde90e18397f07/e85cb/001-01.png 480w,\n/devHistoryBlog/static/fe627eb7e3afb044becde90e18397f07/d9199/001-01.png 960w,\n/devHistoryBlog/static/fe627eb7e3afb044becde90e18397f07/7960f/001-01.png 1274w\"\n        sizes=\"(max-width: 960px) 100vw, 960px\"\n      />\n    </span>\n  </span>\n  \n  </a>\n    </p>\n<br>\n<h3>#. 도커 명령어 모음</h3>\n<h4>#. 컨테이너</h4>\n<div class=\"gatsby-highlight\" data-language=\"text\"><pre class=\"language-text\"><code class=\"language-text\"># 동작중인 컨테이너 확인\n$ docker ps\n\n# 정지된 컨테이너 확인\n$ docker ps -a\n\n# 컨테이너 삭제\n$ docker rm [컨테이너 id], [컨테이너 id] \n\n# 컨테이너 모두 삭제\n$ docker rm `docker ps -a -q`\n\n# 중지된 모든 컨테이너 삭제\n$ docker container prune\n\n# 실행중인 컨테이너에 명령어 전달, interactive, terminal : 명령어 실행 후 터미널 계속 유지\n# docker exec {-it} &lt;컨테이너 아이디&gt; &lt;명령어&gt;\n\n# 해당 컨테이너의 ssh 접속\n$ docker exec -it &lt;컨테이너 아이디&gt; sh\n\n# 실행 시 volume 잡기, 맥에선 -v $(pwd):/usr/src/app\n$ docker run -p 3000:3000 -v /usr/src/app/node_modules -v %cd%:/usr/src/app [이미지 아이디]</code></pre></div>\n<h4>#. 이미지</h4>\n<div class=\"gatsby-highlight\" data-language=\"cmd\"><pre class=\"language-cmd\"><code class=\"language-cmd\"># 이미지 확인\n$ docker images\n$ docker image ls\n\n# 이미지 삭제, 강제옵션 -f\n$ docker image {-f} rm [이미지id], [이미지id]\n$ docker rmi {-f} [이미지id], [이미지id]\n\n# 이름없는 모든 이미지 삭제\n$ docker image prune</code></pre></div>\n<h4>#. docker 리소스정리</h4>\n<div class=\"gatsby-highlight\" data-language=\"cmd\"><pre class=\"language-cmd\"><code class=\"language-cmd\"># 중지된 모든 컨테이너, 사용되지 않은 모든 네트워크, 하나 이상의 컨테이너에서 사용되지 않는 모든 이미지를 삭제\n$ docker system prune -a</code></pre></div>\n<h4>#. dockerfile 빌드</h4>\n<div class=\"gatsby-highlight\" data-language=\"cmd\"><pre class=\"language-cmd\"><code class=\"language-cmd\">$ docker build {-f dockerfile} {-t tag} [context 폴터위치]</code></pre></div>\n<h4>#. docker compose 실행/종료</h4>\n<div class=\"gatsby-highlight\" data-language=\"cmd\"><pre class=\"language-cmd\"><code class=\"language-cmd\">$ docker-compose up {-d --build}\n$ docker-compose down</code></pre></div>","fields":{"tagSlugs":["/tags/docker/"],"slug":"/history/posts/2020-12-30--001"},"frontmatter":{"title":"Docker? 및 명령어 정리","tags":["docker"],"date":"2020-12-30","description":""}}},"pageContext":{"slug":"/history/posts/2020-12-30--001"}},"staticQueryHashes":[]}