{"componentChunkName":"component---src-templates-post-template-jsx","path":"/history/posts/2021-01-02--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":"b1de2108-9bbe-547d-a4de-8831e41d2c01","html":"<h3>#. 하이퍼바이저 기반의 VM 구조</h3>\n<ul>\n<li>하이퍼바이저에 의해 구동되는 VM은 각 VM마다 독립된 가상 하드웨어 자원을 할당받는다.</li>\n<li>논리적으로 분리 되어 있어 한 VM에 오류가 발생해도 다른 VM으로 퍼지지 않는다는 장점이 있다.\n\n  <a\n    class=\"gatsby-resp-image-link\"\n    href=\"/devHistoryBlog/static/b8ecd51a61f731a26976525442c72c68/5caea/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: 64.16666666666666%; position: relative; bottom: 0; left: 0; background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAANCAYAAACpUE5eAAAACXBIWXMAABJ0AAASdAHeZh94AAAB5UlEQVQ4y22T627bMAyF/f4Ps3Uv0RZY/y7Blvwa4CS+3y+y5XD8GKsYggogLInk4eGhHG3bJs/mvZfT6STDMAiL83PM/X7/0qJ5nsU5J33fS9d14hZnQOM42hc/1jatTNNke3wkf7UiwLzfpKoqDZysOkCcKcB5VqCyrIzpsizm575t20dxNfbrukoU6KdJagAsGAAI63C+3RLxeywggE/KNstzSdJMZiVGMWPo3KwJN8mL4pNB0zQGSCL7+HKRXu8XjacA4JP6p7aRoa5lVp8xDILXyii9Xj81A4REfHyTOJZO2/K7BCgYf/yUw8s3Ofz4Ln/fXmVDQwOgat9Jl6aWQCVYwpb9otYmN5kYksaSA2Dx57fE769yeX+T/PBLPFMOz2DV6c7KqlSmWZaZhnleSIEMCohvVTA0RCYKObUOebpeFu10RUMcKwetOqkWlVqhQtNyWZY2XRLxLao1Ej1ehjcpkIo4npRp6PYWGhyq4aiOYX8GDGUcBxtGeb1YDH6Sw7PJtXiqUrGnSMQGWzTI6ZeWEJ12eUZeq6KX02nO4+PPQVsA6eJ8PsvxeJRaOzBAKkCZNossN9qAhumz6CDVZ0USi5jQ8vM+IpkN1er97eH832CKttaJsrMpa17470Nx7v4B8dTuaAG0grgAAAAASUVORK5CYII='); 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/b8ecd51a61f731a26976525442c72c68/d9199/001-01.png\"\n        srcset=\"/devHistoryBlog/static/b8ecd51a61f731a26976525442c72c68/8ff5a/001-01.png 240w,\n/devHistoryBlog/static/b8ecd51a61f731a26976525442c72c68/e85cb/001-01.png 480w,\n/devHistoryBlog/static/b8ecd51a61f731a26976525442c72c68/d9199/001-01.png 960w,\n/devHistoryBlog/static/b8ecd51a61f731a26976525442c72c68/5caea/001-01.png 996w\"\n        sizes=\"(max-width: 960px) 100vw, 960px\"\n      />\n    </span>\n  </span>\n  \n  </a>\n    </li>\n</ul>\n<br>\n<h3>#. 도커 VS 기존 가상화 기술(VM)</h3>\n<h4>#1. 공통점</h4>\n<ul>\n<li>도커 컨테이너와 가상 머신은 기본 하드웨어에서 격리된 환경 내에서 애플리케이션을 배치하는 방법</li>\n</ul>\n<h4>#2. 차이점</h4>\n<ul>\n<li>\n<p>vm과 비교했을 때 컨테이너는 하이퍼바이저와 게스트 OS가 필요하지 않으므로 더 가볍다.</p>\n<h5>#2.1. 도커 컨테이너에서 돌아가는 애플리케이션은</h5>\n</li>\n<li>컨테이너가 제공하는 격리 기능 내무에 샌드박스가 있지만, 여전히 같은 호스트의 다른 컨테이너와 동일한 커널을 공유한다.</li>\n<li>컨테이너가 전체 OS를 내장할 필요가 없는 결과, 매우 가볍고 일반적으로 약 5-100MB 이다.</li>\n</ul>\n<h5>#2.2. 가상머신</h5>\n<ul>\n<li>VM 내부에서 실행되는 모든 것은 호스트 운영체제 또는 하이퍼바이저와 독립되어 있다.</li>\n<li>게스트 OS를 부팅하여 어플리케이션을 실행하기 때문에 무겁다.</li>\n</ul>\n<p>\n  <a\n    class=\"gatsby-resp-image-link\"\n    href=\"/devHistoryBlog/static/459af3404c9060b9e2104252a608888a/748b0/001-02.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: 868px; margin-left: auto; margin-right: auto;\"\n  >\n    <span\n      class=\"gatsby-resp-image-background-image\"\n      style=\"padding-bottom: 71.66666666666667%; position: relative; bottom: 0; left: 0; background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAOCAYAAAAvxDzwAAAACXBIWXMAABJ0AAASdAHeZh94AAAB50lEQVQ4y1WU2Y7CMAxF8/9/NyMeGAmomC5Quq9pK8CT45LCRHLjJDf29ZKaJLlIlmUyTZNMdhI7WpV5mmUcx1WfF2nqRuIolvP5V+fgFEgQBHK9XsVau4npuk6qspK6rmXoB8nzXPVxGKUsSxUwOLTOIfPiHCzLogbmeZa+7xXTd70YDp7PpxoYhkHu97uCMQ748XjoPudqxDHGAIY5B0ck3EM3MABASFVVSdu2Kk3TKtOu7VTwDnswTdNs7LlXFuUaWVWLybNcF0VRbCBy2jqDRV6sOk7cOk1TuaU3dcSd7JYpHhvoiMG6B2DU63gDvDFyuOPhqIWA1el4UmE/DCM5HA6SJIkYDrmAgS25bkbYwwHsCFtxrzSQr94JumJcFBTXkHQGMx5ogyiKlKUf2j6uop/ryLUOeBz7oW3Dhr+AFxjikSJQSWXSrYzR2QNPZOCpvt8jEkPpEQrwWRzfj7SKNwbOn2kBCwq46uAgo30I0IfLnF5TieNY15tB14vonF0uFz1P4kRnhGbXxuYDXfVerC2A4O3fK3gViicJW79HyOCYSYMWBc9hGMrP/ke+v75lt9vJfr/XV6Ev4PVSeFEMUhH+hsqQFPnCgjP6Q3AF0YS/3urkWGAMAPPn3hszvX8o1m4/lj+Yoi+QcA0zuAAAAABJRU5ErkJggg=='); 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 02\"\n        title=\"\"\n        src=\"/devHistoryBlog/static/459af3404c9060b9e2104252a608888a/748b0/001-02.png\"\n        srcset=\"/devHistoryBlog/static/459af3404c9060b9e2104252a608888a/8ff5a/001-02.png 240w,\n/devHistoryBlog/static/459af3404c9060b9e2104252a608888a/e85cb/001-02.png 480w,\n/devHistoryBlog/static/459af3404c9060b9e2104252a608888a/748b0/001-02.png 868w\"\n        sizes=\"(max-width: 868px) 100vw, 868px\"\n      />\n    </span>\n  </span>\n  \n  </a>\n    </p>\n<br>\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/a6203456312d4ec94a4f3b5da6048abb/91f10/001-03.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: 75%; position: relative; bottom: 0; left: 0; background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAPCAYAAADkmO9VAAAACXBIWXMAABJ0AAASdAHeZh94AAACJklEQVQ4y2VUiW7bMAzN/3/a0C7LNmwDgrRZGwxp4kM+dFGW30j6WIwJICQ/UdTjI+UdMEJGHgZc3l7w9csz+rYGBQvX1wg8hxhBbJEtpYTbvcCnp8+4ftzhfIRpLbre6d4O80gU4WyDOzufz6+4Xq+MBb5vABGhLEveu+uhSAPKqkZVVajrGs55+EDbgDF4ZmFBDPZ9x2YVG1JQZs5ZWGt1LQGJEoL3jDt4H2BdYAKE3ThOKQ8DcYCe50HTzznzocCXOMUezXGAEGn9luCWsXHMzHAJmIhv7HSTOH2ZY3BsVteSjhqzkMM+RJVCTDTurVcSm5QTOV0vrMecmG3Uddd1aupLwiwvR5HZXzWUlBeQYphTzsw2aSpSlEReMdEuhKAshF18TJn9VUMpysIm50EDpjTM6Q2zhsz8Pw3jrGGaq06KSQuuDDk/NsJ2ZIYXbFyloJQX6dchmIydpCAaSMqNKdC20jK9WtvU8G4pFK0mTWyadvUzTYOm7aeinE4nbuQzfv38ge/f9jgej3h+esJ+v8fl/bf2oaRZVSUaPjjOBXh7v6jP4XDAy+uZg3bqpxoKfdHCWQNT31Hc/qAsruiaQjXUPrNTY6sft03NAT5uhT6/sm7QdnYKuD49dgxzb0lVhf5SWZmni8ep77jFJmzrtwkooAAyhIkxzdqTsvd4sZiMG79tY8yK06YP+WP5m3h+nxJ0fQkh/Kvw/C1+0uiLDILJ3l/hepEXGjfEBAAAAABJRU5ErkJggg=='); 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 03\"\n        title=\"\"\n        src=\"/devHistoryBlog/static/a6203456312d4ec94a4f3b5da6048abb/d9199/001-03.png\"\n        srcset=\"/devHistoryBlog/static/a6203456312d4ec94a4f3b5da6048abb/8ff5a/001-03.png 240w,\n/devHistoryBlog/static/a6203456312d4ec94a4f3b5da6048abb/e85cb/001-03.png 480w,\n/devHistoryBlog/static/a6203456312d4ec94a4f3b5da6048abb/d9199/001-03.png 960w,\n/devHistoryBlog/static/a6203456312d4ec94a4f3b5da6048abb/91f10/001-03.png 992w\"\n        sizes=\"(max-width: 960px) 100vw, 960px\"\n      />\n    </span>\n  </span>\n  \n  </a>\n    </p>\n<br>\n<h3>#.도커 컨테이너를 격리시키는 방법</h3>\n<ul>\n<li>컨테이너와 호스트에서 실행되는 다른 프로세스 사이에 벽을 만드는 리눅스 커널 기능인 Cgroup과 네임스페이스를 사용</li>\n</ul>\n<p>\n  <a\n    class=\"gatsby-resp-image-link\"\n    href=\"/devHistoryBlog/static/e2068bae7be87e83caeb468a821e8a83/ee455/001-04.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: 863px; margin-left: auto; margin-right: auto;\"\n  >\n    <span\n      class=\"gatsby-resp-image-background-image\"\n      style=\"padding-bottom: 31.666666666666664%; position: relative; bottom: 0; left: 0; background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAGCAYAAADDl76dAAAACXBIWXMAABJ0AAASdAHeZh94AAABIUlEQVQY0z1RCXKDMAzk/48LnRLKDTFhwpFyHzkg2XqVNJ7xSJbk1a5kKKUQBiGCIMDtdsPj8cC2bVjXVSxvP81I1BGe68Ky9jhXZzyfT2zrK0/Lf/O8wMjzHFEYwTS/oA4K/w1ofc9HWZa4Xq/IsgxFUeB0ylHkBaZpQtd16Lsebdt+fAPvk8SJsExTzcTz4DquXDIgYK6BxmFEWZTSyNE5c2dKDQGrskJTNzDq3xqpSrHXUqxvC3EcY6cL7b0tTKMowjAM4rtasm3bcH4cDejoEXgCTmUkxKYG5bKIrFjAd+AHAswm/Hg8ZgI6z7NIpc98puOcO2O0Qz/A+OjvezRNI/Q5C77JfhxHdG2HZVleC3svgku73+9iZYE6flku+AM6aL7A2LFOYwAAAABJRU5ErkJggg=='); 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 04\"\n        title=\"\"\n        src=\"/devHistoryBlog/static/e2068bae7be87e83caeb468a821e8a83/ee455/001-04.png\"\n        srcset=\"/devHistoryBlog/static/e2068bae7be87e83caeb468a821e8a83/8ff5a/001-04.png 240w,\n/devHistoryBlog/static/e2068bae7be87e83caeb468a821e8a83/e85cb/001-04.png 480w,\n/devHistoryBlog/static/e2068bae7be87e83caeb468a821e8a83/ee455/001-04.png 863w\"\n        sizes=\"(max-width: 863px) 100vw, 863px\"\n      />\n    </span>\n  </span>\n  \n  </a>\n    </p>","fields":{"tagSlugs":["/tags/docker/","/tags/hypervisor/"],"slug":"/history/posts/2021-01-02--001"},"frontmatter":{"title":"도커와 기존의 가상화 기술과의 차이를 통한 컨테이너 이해","tags":["docker","hypervisor"],"date":"2021-01-02","description":"따라하며 배우는 도커와 CI환경 강의 복습"}}},"pageContext":{"slug":"/history/posts/2021-01-02--001"}},"staticQueryHashes":[]}