{"id":3909,"date":"2025-10-07T12:24:52","date_gmt":"2025-10-07T05:24:52","guid":{"rendered":"https:\/\/interdata.vn\/blog\/?p=3909"},"modified":"2026-05-08T16:44:37","modified_gmt":"2026-05-08T09:44:37","slug":"docker-la-gi","status":"publish","type":"post","link":"https:\/\/interdata.vn\/blog\/docker-la-gi\/","title":{"rendered":"Docker l\u00e0 g\u00ec? To\u00e0n t\u1eadp v\u1ec1 Docker &#038; \u1ee8ng d\u1ee5ng th\u1ef1c t\u1ebf"},"content":{"rendered":"<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_85 counter-hierarchy ez-toc-counter ez-toc-white ez-toc-container-direction\">\n<div class=\"ez-toc-title-container\">\n<p class=\"ez-toc-title\" style=\"cursor:inherit\">N\u1ed8I DUNG<\/p>\n<span class=\"ez-toc-title-toggle\"><a href=\"#\" class=\"ez-toc-pull-right ez-toc-btn ez-toc-btn-xs ez-toc-btn-default ez-toc-toggle\" aria-label=\"Toggle Table of Content\"><span class=\"ez-toc-js-icon-con\"><span class=\"\"><span class=\"eztoc-hide\" style=\"display:none;\">Toggle<\/span><span class=\"ez-toc-icon-toggle-span\"><svg style=\"fill: #999;color:#999\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" class=\"list-377408\" width=\"20px\" height=\"20px\" viewBox=\"0 0 24 24\" fill=\"none\"><path d=\"M6 6H4v2h2V6zm14 0H8v2h12V6zM4 11h2v2H4v-2zm16 0H8v2h12v-2zM4 16h2v2H4v-2zm16 0H8v2h12v-2z\" fill=\"currentColor\"><\/path><\/svg><svg style=\"fill: #999;color:#999\" class=\"arrow-unsorted-368013\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"10px\" height=\"10px\" viewBox=\"0 0 24 24\" version=\"1.2\" baseProfile=\"tiny\"><path d=\"M18.2 9.3l-6.2-6.3-6.2 6.3c-.2.2-.3.4-.3.7s.1.5.3.7c.2.2.4.3.7.3h11c.3 0 .5-.1.7-.3.2-.2.3-.5.3-.7s-.1-.5-.3-.7zM5.8 14.7l6.2 6.3 6.2-6.3c.2-.2.3-.5.3-.7s-.1-.5-.3-.7c-.2-.2-.4-.3-.7-.3h-11c-.3 0-.5.1-.7.3-.2.2-.3.5-.3.7s.1.5.3.7z\"\/><\/svg><\/span><\/span><\/span><\/a><\/span><\/div>\n<nav><ul class='ez-toc-list ez-toc-list-level-1 eztoc-toggle-hide-by-default' ><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-1\" href=\"https:\/\/interdata.vn\/blog\/docker-la-gi\/#Docker-la-gi\" >Docker l\u00e0 g\u00ec?<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/interdata.vn\/blog\/docker-la-gi\/#Kien-truc-va-cac-thanh-phan-cot-loi-cua-Docker\" >Ki\u1ebfn tr\u00fac v\u00e0 c\u00e1c th\u00e0nh ph\u1ea7n c\u1ed1t l\u00f5i c\u1ee7a Docker<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"https:\/\/interdata.vn\/blog\/docker-la-gi\/#3-Thuat-ngu-Thanh-phan-thuc-chien-phai-biet\" >3 Thu\u1eadt ng\u1eef &amp; Th\u00e0nh ph\u1ea7n th\u1ef1c chi\u1ebfn ph\u1ea3i bi\u1ebft<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-4\" href=\"https:\/\/interdata.vn\/blog\/docker-la-gi\/#Su-khac-biet-cot-loi-Docker-Container-vs-May-ao-Virtual-Machine\" >S\u1ef1 kh\u00e1c bi\u1ec7t c\u1ed1t l\u00f5i: Docker (Container) vs M\u00e1y \u1ea3o (Virtual Machine)<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-5\" href=\"https:\/\/interdata.vn\/blog\/docker-la-gi\/#Loi-ich-va-4-Ung-dung-thuc-te-cua-Docker-trong-doanh-nghiep\" >L\u1ee3i \u00edch v\u00e0 4 \u1ee8ng d\u1ee5ng th\u1ef1c t\u1ebf c\u1ee7a Docker trong doanh nghi\u1ec7p<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-6\" href=\"https:\/\/interdata.vn\/blog\/docker-la-gi\/#Nen-chay-Docker-tren-nen-tang-may-chu-nao-VPS-hay-Cloud-Server\" >N\u00ean ch\u1ea1y Docker tr\u00ean n\u1ec1n t\u1ea3ng m\u00e1y ch\u1ee7 n\u00e0o? VPS hay Cloud Server?<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-7\" href=\"https:\/\/interdata.vn\/blog\/docker-la-gi\/#Tong-hop-cac-cau-lenh-Command-Docker-thiet-yeu-nhat\" >T\u1ed5ng h\u1ee3p c\u00e1c c\u00e2u l\u1ec7nh (Command) Docker thi\u1ebft y\u1ebfu nh\u1ea5t<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-8\" href=\"https:\/\/interdata.vn\/blog\/docker-la-gi\/#Cau-hoi-thuong-gap-FAQ-ve-Docker\" >C\u00e2u h\u1ecfi th\u01b0\u1eddng g\u1eb7p (FAQ) v\u1ec1 Docker<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-9\" href=\"https:\/\/interdata.vn\/blog\/docker-la-gi\/#Docker-Compose-la-gi-No-khac-gi-voi-Docker-thong-thuong\" >Docker Compose l\u00e0 g\u00ec? N\u00f3 kh\u00e1c g\u00ec v\u1edbi Docker th\u00f4ng th\u01b0\u1eddng?<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-10\" href=\"https:\/\/interdata.vn\/blog\/docker-la-gi\/#He-dieu-hanh-Windows-co-chay-duoc-Docker-khong\" >H\u1ec7 \u0111i\u1ec1u h\u00e0nh Windows c\u00f3 ch\u1ea1y \u0111\u01b0\u1ee3c Docker kh\u00f4ng?<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-11\" href=\"https:\/\/interdata.vn\/blog\/docker-la-gi\/#Docker-Image-duoc-luu-tru-o-dau\" >Docker Image \u0111\u01b0\u1ee3c l\u01b0u tr\u1eef \u1edf \u0111\u00e2u?<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-12\" href=\"https:\/\/interdata.vn\/blog\/docker-la-gi\/#Cau-hinh-VPS-toi-thieu-de-chay-Docker-la-bao-nhieu\" >C\u1ea5u h\u00ecnh VPS t\u1ed1i thi\u1ec3u \u0111\u1ec3 ch\u1ea1y Docker l\u00e0 bao nhi\u00eau?<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-13\" href=\"https:\/\/interdata.vn\/blog\/docker-la-gi\/#Docker-va-Kubernetes-K8s-co-phai-la-doi-thu-cua-nhau\" >Docker v\u00e0 Kubernetes (K8s) c\u00f3 ph\u1ea3i l\u00e0 \u0111\u1ed1i th\u1ee7 c\u1ee7a nhau?<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-14\" href=\"https:\/\/interdata.vn\/blog\/docker-la-gi\/#Buoc-tiep-theo-de-lam-chu-he-sinh-thai-Container\" >B\u01b0\u1edbc ti\u1ebfp theo \u0111\u1ec3 l\u00e0m ch\u1ee7 h\u1ec7 sinh th\u00e1i Container<\/a><\/li><\/ul><\/nav><\/div>\n<div class=\"summary\">\n<p><strong>T\u00f3m t\u1eaft nhanh:<\/strong> <a href=\"https:\/\/interdata.vn\/blog\/docker-la-gi\/\"><strong>Docker<\/strong><\/a> l\u00e0 m\u1ed9t n\u1ec1n t\u1ea3ng m\u00e3 ngu\u1ed3n m\u1edf chuy\u00ean d\u1ee5ng \u0111\u1ec3 t\u1ef1 \u0111\u1ed9ng h\u00f3a qu\u00e1 tr\u00ecnh tri\u1ec3n khai, ph\u00e2n ph\u1ed1i v\u00e0 ch\u1ea1y \u1ee9ng d\u1ee5ng b\u00ean trong c\u00e1c m\u00f4i tr\u01b0\u1eddng bi\u1ec7t l\u1eadp \u0111\u01b0\u1ee3c g\u1ecdi l\u00e0 Container. Thay v\u00ec ph\u1ea3i c\u00e0i \u0111\u1eb7t th\u1ee7 c\u00f4ng t\u1eebng th\u01b0 vi\u1ec7n tr\u00ean server, Docker \u0111\u00f3ng g\u00f3i to\u00e0n b\u1ed9 m\u00e3 ngu\u1ed3n v\u00e0 dependencies th\u00e0nh m\u1ed9t kh\u1ed1i th\u1ed1ng nh\u1ea5t, \u0111\u1ea3m b\u1ea3o \u1ee9ng d\u1ee5ng ch\u1ea1y m\u01b0\u1ee3t m\u00e0 tr\u00ean b\u1ea5t k\u1ef3 h\u1ea1 t\u1ea7ng n\u00e0o t\u1eeb laptop c\u00e1 nh\u00e2n \u0111\u1ebfn m\u00e1y ch\u1ee7 Cloud.<\/p>\n<ul>\n<li>Container s\u1eed d\u1ee5ng chung nh\u00e2n (Kernel) v\u1edbi h\u1ec7 \u0111i\u1ec1u h\u00e0nh Host, gi\u00fap kh\u1edfi \u0111\u1ed9ng t\u00ednh b\u1eb1ng gi\u00e2y v\u00e0 ti\u00eau t\u1ed1n c\u1ef1c \u00edt RAM.<\/li>\n<li>Gi\u1ea3i quy\u1ebft tri\u1ec7t \u0111\u1ec3 v\u1ea5n \u0111\u1ec1 &#8220;Code ch\u1ea1y t\u1ed1t tr\u00ean m\u00e1y t\u00f4i nh\u01b0ng l\u1ed7i tr\u00ean server&#8221; nh\u1edd t\u00ednh nh\u1ea5t qu\u00e1n c\u1ee7a Docker Image.<\/li>\n<li>C\u1ea5u tr\u00fac Client-Server c\u1ee7a Docker Engine cho ph\u00e9p qu\u1ea3n l\u00fd h\u00e0ng ng\u00e0n container th\u00f4ng qua c\u00e1c l\u1ec7nh terminal \u0111\u01a1n gi\u1ea3n.<\/li>\n<li>VM (M\u00e1y \u1ea3o) \u1ea3o h\u00f3a ph\u1ea7n c\u1ee9ng v\u00e0 c\u1ea7n Guest OS n\u1eb7ng n\u1ec1, trong khi Docker \u1ea3o h\u00f3a c\u1ea5p h\u1ec7 \u0111i\u1ec1u h\u00e0nh (OS-level virtualization).<\/li>\n<\/ul>\n<\/div>\n<p><!-- INTRODUCTION HOOK --><\/p>\n<p>Bao nhi\u00eau l\u1ea7n b\u1ea1n nh\u1eadn \u0111\u01b0\u1ee3c tin nh\u1eafn t\u1eeb team test: &#8220;Web l\u1ed7i r\u1ed3i&#8221;, trong khi b\u1ea1n v\u1eeba t\u1ef1 tin kh\u1eb3ng \u0111\u1ecbnh: &#8220;L\u1ea1 nh\u1ec9, code v\u1eabn ch\u1ea1y b\u00ecnh th\u01b0\u1eddng tr\u00ean m\u00e1y anh m\u00e0&#8221;? L\u1ed7i xung \u0111\u1ed9t m\u00f4i tr\u01b0\u1eddng, thi\u1ebfu th\u01b0 vi\u1ec7n, hay sai phi\u00ean b\u1ea3n PHP\/Node.js l\u00e0 c\u01a1n \u00e1c m\u1ed9ng kinh \u0111i\u1ec3n c\u1ee7a m\u1ecdi Developer v\u00e0 SysAdmin. Vi\u1ebft code l\u00e0 m\u1ed9t chuy\u1ec7n. \u0110\u01b0a c\u1ee5c code \u0111\u00f3 l\u00ean server ch\u1ea1y tr\u01a1n tru l\u1ea1i l\u00e0 m\u1ed9t c\u00e2u chuy\u1ec7n ho\u00e0n to\u00e0n kh\u00e1c.<\/p>\n<p>\u0110\u00f3 l\u00e0 l\u00fd do th\u1ebf gi\u1edbi c\u00f4ng ngh\u1ec7 d\u1ecbch chuy\u1ec3n sang Container h\u00f3a. Thay v\u00ec ph\u1ea3i c\u1ea5u h\u00ecnh l\u1ea1i t\u1eeb \u0111\u1ea7u m\u1ed7i khi chuy\u1ec3n nh\u00e0 t\u1eeb m\u00e1y c\u00e1 nh\u00e2n l\u00ean m\u00f4i tr\u01b0\u1eddng production, b\u1ea1n ch\u1ec9 c\u1ea7n n\u00e9m m\u1ecdi th\u1ee9 v\u00e0o m\u1ed9t chi\u1ebfc &#8220;h\u1ed9p&#8221; v\u00e0 kh\u00f3a l\u1ea1i. Chi\u1ebfc h\u1ed9p ma thu\u1eadt \u0111\u00f3 ch\u00ednh l\u00e0 Docker. N\u00f3 thay \u0111\u1ed5i v\u0129nh vi\u1ec5n c\u00e1ch ch\u00fang ta ph\u00e1t tri\u1ec3n, ki\u1ec3m th\u1eed v\u00e0 v\u1eadn h\u00e0nh ph\u1ea7n m\u1ec1m tr\u00ean internet.<\/p>\n<p><!-- H2.1 --><\/p>\n<h2><span class=\"ez-toc-section\" id=\"Docker-la-gi\"><\/span>Docker l\u00e0 g\u00ec?<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Docker l\u00e0 m\u1ed9t n\u1ec1n t\u1ea3ng ph\u1ea7n m\u1ec1m cho ph\u00e9p c\u00e1c l\u1eadp tr\u00ecnh vi\u00ean \u0111\u00f3ng g\u00f3i \u1ee9ng d\u1ee5ng c\u00f9ng v\u1edbi to\u00e0n b\u1ed9 c\u00e1c th\u01b0 vi\u1ec7n (dependencies) c\u1ea7n thi\u1ebft v\u00e0o m\u1ed9t \u0111\u01a1n v\u1ecb ti\u00eau chu\u1ea9n g\u1ecdi l\u00e0 Container. N\u1ec1n t\u1ea3ng n\u00e0y \u0111\u01b0\u1ee3c ra m\u1eaft l\u1ea7n \u0111\u1ea7u v\u00e0o n\u0103m 2013 b\u1edfi c\u00f4ng ty Docker, Inc., v\u00e0 nhanh ch\u00f3ng tr\u1edf th\u00e0nh ti\u00eau chu\u1ea9n de facto trong ng\u00e0nh c\u00f4ng nghi\u1ec7p ph\u1ea7n m\u1ec1m hi\u1ec7n \u0111\u1ea1i.<\/p>\n<p>\u0110\u1ec3 d\u1ec5 h\u00ecnh dung, Container c\u0169ng gi\u1ed1ng nh\u01b0 nh\u1eefng chi\u1ebfc container ch\u1edf h\u00e0ng b\u1eb1ng th\u00e9p tr\u00ean t\u00e0u bi\u1ec3n. Tr\u01b0\u1edbc \u0111\u00e2y, ng\u01b0\u1eddi ta v\u1ea5t v\u1ea3 x\u1ebfp t\u1eebng bao g\u1ea1o, ki\u1ec7n h\u00e0ng l\u00ean t\u00e0u \u2014 k\u00edch th\u01b0\u1edbc l\u1ed9n x\u1ed9n, d\u1ec5 h\u01b0 h\u1ecfng khi b\u1ed1c d\u1ee1. S\u1ef1 ra \u0111\u1eddi c\u1ee7a container v\u1eadn t\u1ea3i \u0111\u00e3 th\u1ed1ng nh\u1ea5t k\u00edch th\u01b0\u1edbc th\u00f9ng ch\u1ee9a. C\u1ea9u tr\u1ee5c b\u1ebfn c\u1ea3ng hay xe t\u1ea3i kh\u00f4ng c\u1ea7n bi\u1ebft b\u00ean trong ch\u1ee9a tivi hay qu\u1ea7n \u00e1o, ch\u00fang ch\u1ec9 vi\u1ec7c nh\u1ea5c \u0111\u00fang chi\u1ebfc th\u00f9ng \u0111\u00f3 \u0111i. Docker l\u00e0m \u0111i\u1ec1u t\u01b0\u01a1ng t\u1ef1 v\u1edbi m\u00e3 ngu\u1ed3n. Khi \u0111\u01b0\u1ee3c \u0111\u01b0a l\u00ean <a href=\"https:\/\/interdata.vn\/blog\/cloud-computing-la-gi\/\" target=\"_blank\" rel=\"noopener\">h\u1ea1 t\u1ea7ng \u0111i\u1ec7n to\u00e1n \u0111\u00e1m m\u00e2y<\/a>, h\u1ec7 th\u1ed1ng kh\u00f4ng c\u1ea7n quan t\u00e2m \u1ee9ng d\u1ee5ng vi\u1ebft b\u1eb1ng ng\u00f4n ng\u1eef g\u00ec, ch\u1ec9 c\u1ea7n ch\u1ea1y container l\u00e0 xong.<\/p>\n<figure id=\"attachment_40991\" aria-describedby=\"caption-attachment-40991\" style=\"width: 800px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-40991\" src=\"https:\/\/interdata.vn\/blog\/wp-content\/uploads\/2025\/10\/Docker.webp\" alt=\"Docker\" width=\"800\" height=\"597\" title=\"\" srcset=\"https:\/\/interdata.vn\/blog\/wp-content\/uploads\/2025\/10\/Docker.webp 800w, https:\/\/interdata.vn\/blog\/wp-content\/uploads\/2025\/10\/Docker-300x224.webp 300w, https:\/\/interdata.vn\/blog\/wp-content\/uploads\/2025\/10\/Docker-768x573.webp 768w\" sizes=\"auto, (max-width: 800px) 100vw, 800px\" \/><figcaption id=\"caption-attachment-40991\" class=\"wp-caption-text\">Docker<\/figcaption><\/figure>\n<p><!-- H2.2 --><\/p>\n<h2><span class=\"ez-toc-section\" id=\"Kien-truc-va-cac-thanh-phan-cot-loi-cua-Docker\"><\/span>Ki\u1ebfn tr\u00fac v\u00e0 c\u00e1c th\u00e0nh ph\u1ea7n c\u1ed1t l\u00f5i c\u1ee7a Docker<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Docker ho\u1ea1t \u0111\u1ed9ng d\u1ef1a tr\u00ean m\u00f4 h\u00ecnh Client-Server. Ng\u01b0\u1eddi d\u00f9ng (Client) s\u1ebd g\u1eedi c\u00e1c l\u1ec7nh th\u00f4ng qua terminal \u0111\u1ebfn m\u1ed9t daemon ch\u1ea1y ng\u1ea7m (Server) \u0111\u1ec3 th\u1ef1c thi. C\u1ee5m h\u1ec7 sinh th\u00e1i n\u00e0y xoay quanh 4 th\u00e0nh ph\u1ea7n thi\u1ebft y\u1ebfu sau:<\/p>\n<ul>\n<li><strong>Docker Engine:<\/strong> Tr\u00e1i tim c\u1ee7a h\u1ec7 th\u1ed1ng. \u0110\u00e2y l\u00e0 m\u1ed9t ti\u1ebfn tr\u00ecnh n\u1ec1n (daemon) ch\u1ecbu tr\u00e1ch nhi\u1ec7m x\u00e2y d\u1ef1ng, ch\u1ea1y v\u00e0 qu\u1ea3n l\u00fd v\u00f2ng \u0111\u1eddi c\u1ee7a c\u00e1c container d\u1ef1a tr\u00ean l\u1ec7nh b\u1ea1n g\u1eedi.<\/li>\n<li><strong>Docker Images:<\/strong> B\u1ea3n thi\u1ebft k\u1ebf (blueprint) ch\u1ec9 \u0111\u1ecdc ch\u1ee9a h\u01b0\u1edbng d\u1eabn t\u1ea1o ra container. N\u00f3 ch\u1ee9a m\u00e3 ngu\u1ed3n, runtime, th\u01b0 vi\u1ec7n v\u00e0 c\u00e1c bi\u1ebfn m\u00f4i tr\u01b0\u1eddng c\u1ea7n thi\u1ebft.<\/li>\n<li><strong>Docker Containers:<\/strong> Th\u1ef1c th\u1ec3 s\u1ed1ng \u0111\u01b0\u1ee3c t\u1ea1o ra t\u1eeb Image. M\u1ed9t container \u0111ang ch\u1ea1y l\u00e0 m\u1ed9t m\u00f4i tr\u01b0\u1eddng ho\u00e0n to\u00e0n bi\u1ec7t l\u1eadp, b\u1ea1n c\u00f3 th\u1ec3 kh\u1edfi \u0111\u1ed9ng, d\u1eebng, ho\u1eb7c x\u00f3a n\u00f3 b\u1ea5t k\u1ef3 l\u00fac n\u00e0o m\u00e0 kh\u00f4ng \u1ea3nh h\u01b0\u1edfng \u0111\u1ebfn h\u1ec7 th\u1ed1ng g\u1ed1c.<\/li>\n<li><strong>Docker Registry (Docker Hub):<\/strong> Kho l\u01b0u tr\u1eef kh\u1ed5ng l\u1ed3 ch\u1ee9a c\u00e1c Images. B\u1ea1n c\u00f3 th\u1ec3 k\u00e9o (pull) m\u1ed9t image c\u00f3 s\u1eb5n nh\u01b0 Ubuntu, Nginx, MySQL t\u1eeb Docker Hub v\u1ec1 m\u00e1y ho\u1eb7c \u0111\u1ea9y (push) image t\u1ef1 build c\u1ee7a b\u1ea1n l\u00ean \u0111\u00f3.<\/li>\n<\/ul>\n<figure id=\"attachment_40992\" aria-describedby=\"caption-attachment-40992\" style=\"width: 800px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-40992\" src=\"https:\/\/interdata.vn\/blog\/wp-content\/uploads\/2025\/10\/Nguyen-ly-hoat-dong-cua-Docker.webp\" alt=\"Nguy\u00ean l\u00fd ho\u1ea1t \u0111\u1ed9ng c\u1ee7a Docker\" width=\"800\" height=\"597\" title=\"\" srcset=\"https:\/\/interdata.vn\/blog\/wp-content\/uploads\/2025\/10\/Nguyen-ly-hoat-dong-cua-Docker.webp 800w, https:\/\/interdata.vn\/blog\/wp-content\/uploads\/2025\/10\/Nguyen-ly-hoat-dong-cua-Docker-300x224.webp 300w, https:\/\/interdata.vn\/blog\/wp-content\/uploads\/2025\/10\/Nguyen-ly-hoat-dong-cua-Docker-768x573.webp 768w\" sizes=\"auto, (max-width: 800px) 100vw, 800px\" \/><figcaption id=\"caption-attachment-40992\" class=\"wp-caption-text\">Nguy\u00ean l\u00fd ho\u1ea1t \u0111\u1ed9ng c\u1ee7a Docker<\/figcaption><\/figure>\n<p><!-- H2.3 --><\/p>\n<h2><span class=\"ez-toc-section\" id=\"3-Thuat-ngu-Thanh-phan-thuc-chien-phai-biet\"><\/span>3 Thu\u1eadt ng\u1eef &amp; Th\u00e0nh ph\u1ea7n th\u1ef1c chi\u1ebfn ph\u1ea3i bi\u1ebft<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Hi\u1ec3u l\u00fd thuy\u1ebft ch\u01b0a \u0111\u1ee7 \u0111\u1ec3 b\u1ea1n \u0111\u01b0a d\u1ef1 \u00e1n l\u00ean production. Khi b\u1eaft tay v\u00e0o g\u00f5 l\u1ec7nh, c\u00f3 3 kh\u00e1i ni\u1ec7m sinh t\u1eed m\u00e0 b\u1ea5t k\u1ef3 ai l\u00e0m vi\u1ec7c v\u1edbi n\u1ec1n t\u1ea3ng n\u00e0y c\u0169ng ph\u1ea3i th\u00e0nh th\u1ea1o:<\/p>\n<ul>\n<li><strong>Dockerfile:<\/strong> M\u1ed9t file v\u0103n b\u1ea3n thu\u1ea7n t\u00fay (text file) ch\u1ee9a danh s\u00e1ch c\u00e1c t\u1eadp l\u1ec7nh (script). Docker Engine s\u1ebd \u0111\u1ecdc file n\u00e0y t\u1eeb tr\u00ean xu\u1ed1ng d\u01b0\u1edbi \u0111\u1ec3 t\u1ef1 \u0111\u1ed9ng build ra m\u1ed9t Image t\u00f9y ch\u1ec9nh theo \u0111\u00fang \u00fd \u0111\u1ed3 c\u1ee7a l\u1eadp tr\u00ecnh vi\u00ean.<\/li>\n<li><strong>Docker Volume:<\/strong> C\u01a1 ch\u1ebf c\u1ee9u c\u00e1nh d\u1eef li\u1ec7u. B\u1ea3n ch\u1ea5t container l\u00e0 t\u1ea1m th\u1eddi \u2014 khi b\u1ea1n x\u00f3a container, d\u1eef li\u1ec7u b\u00ean trong (nh\u01b0 database kh\u00e1ch h\u00e0ng) c\u0169ng bay m\u00e0u. Volume gi\u00fap \u00e1nh x\u1ea1 th\u01b0 m\u1ee5c l\u01b0u tr\u1eef ra ngo\u00e0i m\u00e1y ch\u1ee7 th\u1eadt (Host), \u0111\u1ea3m b\u1ea3o d\u1eef li\u1ec7u t\u1ed3n t\u1ea1i v\u0129nh vi\u1ec5n d\u00f9 container c\u00f3 b\u1ecb ph\u00e1 h\u1ee7y.<\/li>\n<li><strong>Docker Compose:<\/strong> Tr\u00ecnh qu\u1ea3n l\u00fd \u0111a nh\u1ecbp \u0111i\u1ec7u. R\u1ea5t \u00edt \u1ee9ng d\u1ee5ng th\u1ef1c t\u1ebf ch\u1ec9 ch\u1ea1y 1 container. M\u1ed9t website c\u01a1 b\u1ea3n c\u1ea7n 1 container cho Web Server (Nginx) v\u00e0 1 container cho Database (PostgreSQL). Compose d\u00f9ng m\u1ed9t file YAML duy nh\u1ea5t \u0111\u1ec3 kh\u1edfi \u0111\u1ed9ng to\u00e0n b\u1ed9 c\u1ee5m h\u1ec7 th\u1ed1ng n\u00e0y ch\u1ec9 b\u1eb1ng m\u1ed9t l\u1ec7nh b\u1ea5m.<\/li>\n<\/ul>\n<p><!-- H2.4 --><\/p>\n<h2><span class=\"ez-toc-section\" id=\"Su-khac-biet-cot-loi-Docker-Container-vs-May-ao-Virtual-Machine\"><\/span>S\u1ef1 kh\u00e1c bi\u1ec7t c\u1ed1t l\u00f5i: Docker (Container) vs M\u00e1y \u1ea3o (Virtual Machine)<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Hi\u1ec3u nh\u1ea7m l\u1edbn nh\u1ea5t c\u1ee7a ng\u01b0\u1eddi m\u1edbi l\u00e0 coi Docker gi\u1ed1ng h\u1ec7t nh\u01b0 m\u1ed9t m\u00e1y \u1ea3o (VM) ki\u1ec3u VMware hay VirtualBox. Th\u1ef1c t\u1ebf, ch\u00fang ti\u1ebfp c\u1eadn b\u00e0i to\u00e1n \u1ea3o h\u00f3a \u1edf hai t\u1ea7ng ho\u00e0n to\u00e0n kh\u00e1c bi\u1ec7t. VM \u1ea3o h\u00f3a ph\u1ea7n c\u1ee9ng (Hardware-level) v\u00e0 c\u1ea7n m\u1ed9t h\u1ec7 \u0111i\u1ec1u h\u00e0nh kh\u00e1ch (Guest OS) c\u1ed3ng k\u1ec1nh. \u1ede chi\u1ec1u ng\u01b0\u1ee3c l\u1ea1i, Docker th\u1ef1c hi\u1ec7n \u1ea3o h\u00f3a c\u1ea5p h\u1ec7 \u0111i\u1ec1u h\u00e0nh (OS-level), c\u00e1c container d\u00f9ng chung nh\u00e2n (Kernel) c\u1ee7a m\u00e1y ch\u1ee7 v\u1eadt l\u00fd.<\/p>\n<p>S\u1ef1 kh\u00e1c bi\u1ec7t n\u00e0y mang l\u1ea1i l\u1ee3i th\u1ebf hi\u1ec7u n\u0103ng \u00e1p \u0111\u1ea3o cho h\u1ec7 sinh th\u00e1i container.<\/p>\n<table>\n<thead>\n<tr>\n<th>Ti\u00eau ch\u00ed<\/th>\n<th>Docker (Container)<\/th>\n<th>M\u00e1y \u1ea3o (Virtual Machine)<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td><strong>C\u01a1 ch\u1ebf \u1ea2o h\u00f3a<\/strong><\/td>\n<td>D\u00f9ng chung Host OS (Shared Kernel)<\/td>\n<td>C\u1ea7n c\u00e0i \u0111\u1eb7t Guest OS ri\u00eang bi\u1ec7t cho m\u1ed7i VM<\/td>\n<\/tr>\n<tr>\n<td><strong>K\u00edch th\u01b0\u1edbc<\/strong><\/td>\n<td>C\u1ef1c nh\u1eb9, t\u00ednh b\u1eb1ng Megabytes (MB)<\/td>\n<td>R\u1ea5t n\u1eb7ng, t\u00ednh b\u1eb1ng Gigabytes (GB)<\/td>\n<\/tr>\n<tr>\n<td><strong>T\u1ed1c \u0111\u1ed9 kh\u1edfi \u0111\u1ed9ng<\/strong><\/td>\n<td>G\u1ea7n nh\u01b0 ngay l\u1eadp t\u1ee9c (v\u00e0i gi\u00e2y)<\/td>\n<td>M\u1ea5t v\u00e0i ph\u00fat \u0111\u1ec3 boot to\u00e0n b\u1ed9 OS<\/td>\n<\/tr>\n<tr>\n<td><strong>C\u00e1ch ly t\u00e0i nguy\u00ean<\/strong><\/td>\n<td>C\u00e1ch ly \u1edf m\u1ee9c ti\u1ebfn tr\u00ecnh (Process-level isolation)<\/td>\n<td>C\u00e1ch ly ho\u00e0n to\u00e0n \u1edf m\u1ee9c ph\u1ea7n c\u1ee9ng \u1ea3o<\/td>\n<\/tr>\n<tr>\n<td><strong>Hi\u1ec7u su\u1ea5t CPU\/RAM<\/strong><\/td>\n<td>G\u1ea7n b\u1eb1ng m\u00e1y ch\u1ee7 v\u1eadt l\u00fd (Native performance)<\/td>\n<td>Hao h\u1ee5t do qua l\u1edbp Hypervisor x\u1eed l\u00fd<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p><!-- H2.5 --><\/p>\n<figure id=\"attachment_40990\" aria-describedby=\"caption-attachment-40990\" style=\"width: 800px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-40990\" src=\"https:\/\/interdata.vn\/blog\/wp-content\/uploads\/2025\/10\/Docker-va-Virtual-Machine.webp\" alt=\"Docker v\u00e0 Virtual Machine\" width=\"800\" height=\"597\" title=\"\" srcset=\"https:\/\/interdata.vn\/blog\/wp-content\/uploads\/2025\/10\/Docker-va-Virtual-Machine.webp 800w, https:\/\/interdata.vn\/blog\/wp-content\/uploads\/2025\/10\/Docker-va-Virtual-Machine-300x224.webp 300w, https:\/\/interdata.vn\/blog\/wp-content\/uploads\/2025\/10\/Docker-va-Virtual-Machine-768x573.webp 768w\" sizes=\"auto, (max-width: 800px) 100vw, 800px\" \/><figcaption id=\"caption-attachment-40990\" class=\"wp-caption-text\">Docker v\u00e0 Virtual Machine<\/figcaption><\/figure>\n<h2><span class=\"ez-toc-section\" id=\"Loi-ich-va-4-Ung-dung-thuc-te-cua-Docker-trong-doanh-nghiep\"><\/span>L\u1ee3i \u00edch v\u00e0 4 \u1ee8ng d\u1ee5ng th\u1ef1c t\u1ebf c\u1ee7a Docker trong doanh nghi\u1ec7p<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>C\u00e1c \u00f4ng l\u1edbn c\u00f4ng ngh\u1ec7 nh\u01b0 Netflix hay Spotify kh\u00f4ng ng\u1eabu nhi\u00ean chuy\u1ec3n \u0111\u1ed5i to\u00e0n b\u1ed9 h\u1ea1 t\u1ea7ng sang container. Vi\u1ec7c g\u00f3i g\u1ecdn m\u00f4i tr\u01b0\u1eddng mang l\u1ea1i t\u00ednh nh\u1ea5t qu\u00e1n tuy\u1ec7t \u0111\u1ed1i, lo\u1ea1i b\u1ecf ho\u00e0n to\u00e0n r\u1ee7i ro sai l\u1ec7ch c\u1ea5u h\u00ecnh gi\u1eefa m\u00f4i tr\u01b0\u1eddng Dev v\u00e0 m\u00f4i tr\u01b0\u1eddng Live.<\/p>\n<ul>\n<li><strong>Tri\u1ec3n khai ki\u1ebfn tr\u00fac Microservices:<\/strong> Thay v\u00ec code m\u1ed9t kh\u1ed1i Monolithic kh\u1ed5ng l\u1ed3, \u1ee9ng d\u1ee5ng \u0111\u01b0\u1ee3c chia nh\u1ecf th\u00e0nh nhi\u1ec1u d\u1ecbch v\u1ee5 \u0111\u1ed9c l\u1eadp (Thanh to\u00e1n, Gi\u1ecf h\u00e0ng, User). M\u1ed7i d\u1ecbch v\u1ee5 ch\u1ea1y trong m\u1ed9t container ri\u00eang, l\u1ed7i \u1edf \u0111\u00e2u khoanh v\u00f9ng s\u1eeda \u1edf \u0111\u00f3.<\/li>\n<li><strong>T\u00edch h\u1ee3p v\u00e0o quy tr\u00ecnh CI\/CD:<\/strong> T\u1ef1 \u0111\u1ed9ng h\u00f3a qu\u00e1 tr\u00ecnh ki\u1ec3m th\u1eed v\u00e0 deploy. Khi developer \u0111\u1ea9y code m\u1edbi, h\u1ec7 th\u1ed1ng t\u1ef1 \u0111\u1ed9ng build Docker Image, test l\u1ed7i v\u00e0 \u0111\u1ea9y th\u1eb3ng l\u00ean m\u00e1y ch\u1ee7 production m\u00e0 kh\u00f4ng c\u1ea7n ng\u01b0\u1eddi can thi\u1ec7p.<\/li>\n<li><strong>Kh\u1edfi t\u1ea1o m\u00f4i tr\u01b0\u1eddng si\u00eau t\u1ed1c:<\/strong> S\u1eed d\u1ee5ng Docker gi\u00fap kh\u1edfi t\u1ea1o nhanh c\u00e1c m\u00f4i tr\u01b0\u1eddng <a href=\"https:\/\/interdata.vn\/blog\/lamp-stack-la-gi\/\" target=\"_blank\" rel=\"noopener\">LAMP Stack<\/a> hay <a href=\"https:\/\/interdata.vn\/blog\/lemp-stack-la-gi\/\" target=\"_blank\" rel=\"noopener\">LEMP Stack<\/a> chu\u1ea9n x\u00e1c ch\u1ec9 v\u1edbi 1 d\u00f2ng l\u1ec7nh duy nh\u1ea5t, thay v\u00ec t\u1ed1n h\u00e0ng gi\u1edd c\u00e0i \u0111\u1eb7t Apache, MySQL, PHP theo c\u00e1ch th\u1ee7 c\u00f4ng.<\/li>\n<li><strong>T\u1ed1i \u01b0u h\u00f3a t\u00e0i nguy\u00ean ph\u1ea7n c\u1ee9ng:<\/strong> M\u1ed9t server v\u1eadt l\u00fd ch\u1ec9 g\u00e1nh \u0111\u01b0\u1ee3c 5-10 m\u00e1y \u1ea3o, nh\u01b0ng c\u00f3 th\u1ec3 nh\u1ed3i nh\u00e9t h\u00e0ng tr\u0103m container \u0111ang ho\u1ea1t \u0111\u1ed9ng c\u00f9ng l\u00fac nh\u1edd vi\u1ec7c d\u00f9ng chung OS kernel.<\/li>\n<\/ul>\n<p><!-- H2.6 --><\/p>\n<h2><span class=\"ez-toc-section\" id=\"Nen-chay-Docker-tren-nen-tang-may-chu-nao-VPS-hay-Cloud-Server\"><\/span>N\u00ean ch\u1ea1y Docker tr\u00ean n\u1ec1n t\u1ea3ng m\u00e1y ch\u1ee7 n\u00e0o? VPS hay Cloud Server?<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>T\u00f9y thu\u1ed9c v\u00e0o quy m\u00f4 d\u1ef1 \u00e1n, VPS ph\u00f9 h\u1ee3p cho m\u00f4i tr\u01b0\u1eddng testing\/development c\u00e1 nh\u00e2n, trong khi Cloud Server l\u00e0 <a href=\"https:\/\/interdata.vn\/blog\/cloud-server-va-vps\/\" target=\"_blank\" rel=\"noopener\">l\u1ef1a ch\u1ecdn gi\u1eefa VPS v\u00e0 Cloud Server<\/a> t\u1ed1i \u01b0u nh\u1ea5t cho h\u1ec7 th\u1ed1ng production c\u1ea7n t\u00ednh s\u1eb5n s\u00e0ng cao v\u00e0 kh\u1ea3 n\u0103ng m\u1edf r\u1ed9ng li\u00ean t\u1ee5c. Docker Engine b\u1ea3n ch\u1ea5t kh\u00f4ng k\u00e9n ph\u1ea7n c\u1ee9ng, nh\u01b0ng c\u1ea5u h\u00ecnh th\u1ef1c t\u1ebf l\u1ea1i quy\u1ebft \u0111\u1ecbnh \u0111\u1ed9 m\u01b0\u1ee3t m\u00e0 c\u1ee7a h\u1ec7 th\u1ed1ng.<\/p>\n<p>N\u1ebfu b\u1ea1n l\u00e0 sinh vi\u00ean ho\u1eb7c dev \u0111ang t\u00ecm hi\u1ec3u, m\u1ed9t g\u00f3i VPS gi\u00e1 r\u1ebb v\u1edbi c\u1ea5u h\u00ecnh t\u1ed1i thi\u1ec3u RAM 1GB, 1 Core CPU l\u00e0 \u0111\u1ee7 \u0111\u1ec3 ch\u1ea1y v\u00e0i container c\u01a1 b\u1ea3n. Tuy nhi\u00ean, n\u1ebfu b\u1ea1n v\u1eadn h\u00e0nh database th\u1ef1c t\u1ebf ho\u1eb7c k\u1ebft h\u1ee3p v\u1edbi c\u00f4ng c\u1ee5 \u0111i\u1ec1u ph\u1ed1i m\u1ea1nh m\u1ebd nh\u01b0 Kubernetes, c\u1ea5u h\u00ecnh khuy\u1ebfn ngh\u1ecb b\u1eaft bu\u1ed9c ph\u1ea3i t\u1eeb RAM 2GB &#8211; 4GB, CPU 2 Cores c\u00f9ng \u1ed5 c\u1ee9ng NVMe \u0111\u1ec3 \u0111\u00e1p \u1ee9ng IOPS (t\u1ed1c \u0111\u1ed9 \u0111\u1ecdc ghi) li\u00ean t\u1ee5c c\u1ee7a container.<\/p>\n<p><!-- CTA BOX (CLUSTER) --><\/p>\n<div style=\"border-left: 4px solid #0f6cbf; background: #f0f7ff; border-radius: 0 8px 8px 0; padding: 20px 24px; margin: 40px 0; max-width: 100%;\">\n<div style=\"display: flex; align-items: center; margin-bottom: 12px;\"><span style=\"font-size: 22px; margin-right: 10px;\">\ud83d\udca1<\/span><br \/>\n<strong style=\"color: #1a3c6e; font-size: 17px;\">GI\u1ea2I PH\u00c1P M\u00c1Y CH\u1ee6 \u1ea2O (VPS \/ CLOUD) GI\u00c1 R\u1eba &#8211; HI\u1ec6U N\u0102NG \u1ed4N \u0110\u1ecaNH<\/strong><\/div>\n<p style=\"color: #333; font-size: 14px; margin: 0 0 16px 0; line-height: 1.6;\">N\u1ec1n t\u1ea3ng h\u1ea1 t\u1ea7ng m\u1ea1nh m\u1ebd, c\u1ea5u h\u00ecnh cao chuy\u00ean bi\u1ec7t d\u00e0nh ri\u00eang cho vi\u1ec7c tri\u1ec3n khai Docker v\u00e0 Kubernetes. X\u1eed l\u00fd h\u00e0ng tr\u0103m Container m\u01b0\u1ee3t m\u00e0 kh\u00f4ng lo ngh\u1ebdn IOPS.<\/p>\n<p style=\"color: #555; font-size: 13px; margin: 0 0 18px 0;\"><strong style=\"color: #0f6cbf;\">\u2713<\/strong> Root Access to\u00e0n quy\u1ec1n c\u00e0i \u0111\u1eb7t <strong style=\"color: #0f6cbf;\">\u2713<\/strong> \u1ed4 c\u1ee9ng NVMe si\u00eau t\u1ed1c <strong style=\"color: #0f6cbf;\">\u2713<\/strong> Uptime 99.99% chu\u1ea9n Enterprise<\/p>\n<p><a style=\"display: inline-block; background: #0f6cbf; color: #fff; font-size: 14px; font-weight: 600; text-decoration: none; padding: 10px 22px; border-radius: 6px;\" href=\"https:\/\/interdata.vn\/cloud-server\/\" target=\"_blank\" rel=\"noopener\">Xem B\u1ea3ng Gi\u00e1 Cloud Server R\u1ebb \u2192<\/a><\/p>\n<p><a style=\"display: inline-block; background: #0f6cbf; color: #fff; font-size: 14px; font-weight: 600; text-decoration: none; padding: 10px 22px; border-radius: 6px;\" href=\"https:\/\/interdata.vn\/thue-vps\/\" target=\"_blank\" rel=\"noopener\">Xem B\u1ea3ng Gi\u00e1 Thu\u00ea VPS R\u1ebb \u2192<\/a><\/p>\n<\/div>\n<p><!-- H2.7 --><\/p>\n<h2><span class=\"ez-toc-section\" id=\"Tong-hop-cac-cau-lenh-Command-Docker-thiet-yeu-nhat\"><\/span>T\u1ed5ng h\u1ee3p c\u00e1c c\u00e2u l\u1ec7nh (Command) Docker thi\u1ebft y\u1ebfu nh\u1ea5t<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Terminal l\u00e0 chi\u1ebfn tr\u01b0\u1eddng ch\u00ednh khi l\u00e0m vi\u1ec7c v\u1edbi container. Thay v\u00ec ph\u1ea3i nh\u1edb h\u00e0ng tr\u0103m l\u1ec7nh, b\u1ea1n ch\u1ec9 c\u1ea7n n\u1eafm v\u1eefng 3 nh\u00f3m thao t\u00e1c c\u1ed1t l\u00f5i d\u01b0\u1edbi \u0111\u00e2y \u0111\u1ec3 x\u1eed l\u00fd h\u1ea7u h\u1ebft c\u00e1c t\u00e1c v\u1ee5 qu\u1ea3n tr\u1ecb h\u00e0ng ng\u00e0y.<\/p>\n<table>\n<thead>\n<tr>\n<th>Nh\u00f3m L\u1ec7nh<\/th>\n<th>C\u00e2u l\u1ec7nh (Command)<\/th>\n<th>Ch\u1ee9c n\u0103ng \/ Gi\u1ea3i th\u00edch<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td rowspan=\"3\"><strong>Qu\u1ea3n l\u00fd Image<\/strong><\/td>\n<td><code>docker pull [image_name]<\/code><\/td>\n<td>T\u1ea3i m\u1ed9t image t\u1eeb kho Docker Hub v\u1ec1 m\u00e1y ch\u1ee7 c\u1ee7a b\u1ea1n.<\/td>\n<\/tr>\n<tr>\n<td><code>docker build -t[t\u00ean] .<\/code><\/td>\n<td>\u0110\u1ecdc Dockerfile trong th\u01b0 m\u1ee5c hi\u1ec7n t\u1ea1i \u0111\u1ec3 t\u1ef1 \u0111\u1ed9ng \u0111\u00f3ng g\u00f3i t\u1ea1o ra Image m\u1edbi.<\/td>\n<\/tr>\n<tr>\n<td><code>docker images<\/code><\/td>\n<td>Li\u1ec7t k\u00ea danh s\u00e1ch to\u00e0n b\u1ed9 c\u00e1c Images \u0111ang \u0111\u01b0\u1ee3c l\u01b0u tr\u1eef tr\u00ean local.<\/td>\n<\/tr>\n<tr>\n<td rowspan=\"4\"><strong>Qu\u1ea3n l\u00fd Container<\/strong><\/td>\n<td><code>docker run -d -p 80:80[image]<\/code><\/td>\n<td>Kh\u1edfi t\u1ea1o v\u00e0 ch\u1ea1y container \u1edf ch\u1ebf \u0111\u1ed9 n\u1ec1n (daemon), map port 80 c\u1ee7a host v\u1edbi port 80 c\u1ee7a container.<\/td>\n<\/tr>\n<tr>\n<td><code>docker ps<\/code><\/td>\n<td>Hi\u1ec3n th\u1ecb danh s\u00e1ch c\u00e1c container \u0111ang ho\u1ea1t \u0111\u1ed9ng (Th\u00eam c\u1edd <code>-a<\/code> \u0111\u1ec3 xem c\u1ea3 container \u0111\u00e3 t\u1eaft).<\/td>\n<\/tr>\n<tr>\n<td><code>docker stop [container_id]<\/code><\/td>\n<td>D\u1eebng an to\u00e0n m\u1ed9t container \u0111ang ch\u1ea1y.<\/td>\n<\/tr>\n<tr>\n<td><code>docker rm [container_id]<\/code><\/td>\n<td>X\u00f3a v\u0129nh vi\u1ec5n m\u1ed9t container (c\u1ea7n stop tr\u01b0\u1edbc khi x\u00f3a).<\/td>\n<\/tr>\n<tr>\n<td rowspan=\"2\"><strong>System &amp; Debug<\/strong><\/td>\n<td><code>docker logs[container_id]<\/code><\/td>\n<td>Xem l\u1ea1i l\u1ecbch s\u1eed log\/l\u1ed7i c\u1ee7a \u1ee9ng d\u1ee5ng \u0111ang ch\u1ea1y b\u00ean trong container.<\/td>\n<\/tr>\n<tr>\n<td><code>docker exec -it [id] \/bin\/bash<\/code><\/td>\n<td>M\u1edf shell t\u01b0\u01a1ng t\u00e1c, &#8220;chui&#8221; th\u1eb3ng v\u00e0o b\u00ean trong container \u0111\u1ec3 thao t\u00e1c nh\u01b0 m\u1ed9t m\u00e1y Linux th\u1eadt.<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h2><span class=\"ez-toc-section\" id=\"Cau-hoi-thuong-gap-FAQ-ve-Docker\"><\/span>C\u00e2u h\u1ecfi th\u01b0\u1eddng g\u1eb7p (FAQ) v\u1ec1 Docker<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<h3><span class=\"ez-toc-section\" id=\"Docker-Compose-la-gi-No-khac-gi-voi-Docker-thong-thuong\"><\/span>Docker Compose l\u00e0 g\u00ec? N\u00f3 kh\u00e1c g\u00ec v\u1edbi Docker th\u00f4ng th\u01b0\u1eddng?<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>Docker Compose l\u00e0 c\u00f4ng c\u1ee5 qu\u1ea3n l\u00fd d\u00f9ng \u0111\u1ec3 \u0111\u1ecbnh ngh\u0129a v\u00e0 ch\u1ea1y h\u1ec7 th\u1ed1ng g\u1ed3m nhi\u1ec1u container c\u00f9ng l\u00fac th\u00f4ng qua m\u1ed9t file c\u1ea5u h\u00ecnh <code>docker-compose.yml<\/code>. Trong khi l\u1ec7nh Docker th\u00f4ng th\u01b0\u1eddng ch\u1ec9 x\u1eed l\u00fd kh\u1edfi t\u1ea1o t\u1eebng container \u0111\u01a1n l\u1ebb, Compose cho ph\u00e9p b\u1ea1n b\u1eadt\/t\u1eaft to\u00e0n b\u1ed9 stack \u1ee9ng d\u1ee5ng (v\u00ed d\u1ee5: Frontend + Backend + Database) ch\u1ec9 b\u1eb1ng m\u1ed9t thao t\u00e1c <code>docker-compose up -d<\/code>, \u0111\u1ea3m b\u1ea3o c\u00e1c d\u1ecbch v\u1ee5 k\u1ebft n\u1ed1i m\u1ea1ng n\u1ed9i b\u1ed9 tr\u01a1n tru v\u1edbi nhau.<\/p>\n<h3><span class=\"ez-toc-section\" id=\"He-dieu-hanh-Windows-co-chay-duoc-Docker-khong\"><\/span>H\u1ec7 \u0111i\u1ec1u h\u00e0nh Windows c\u00f3 ch\u1ea1y \u0111\u01b0\u1ee3c Docker kh\u00f4ng?<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>C\u00f3, b\u1ea1n ho\u00e0n to\u00e0n c\u00f3 th\u1ec3 ch\u1ea1y Docker tr\u00ean Windows th\u00f4ng qua ph\u1ea7n m\u1ec1m Docker Desktop. Nh\u1edd t\u00edch h\u1ee3p ch\u1eb7t ch\u1ebd v\u1edbi WSL2 (Windows Subsystem for Linux), Windows gi\u1edd \u0111\u00e2y cung c\u1ea5p m\u1ed9t nh\u00e2n Linux th\u1ef1c s\u1ef1 ch\u1ea1y ng\u1ea7m. \u0110i\u1ec1u n\u00e0y gi\u00fap c\u00e1c container kh\u1edfi \u0111\u1ed9ng m\u01b0\u1ee3t m\u00e0 v\u00e0 \u0111\u1ea1t hi\u1ec7u su\u1ea5t g\u1ea7n nh\u01b0 t\u01b0\u01a1ng \u0111\u01b0\u01a1ng v\u1edbi m\u00f4i tr\u01b0\u1eddng Linux native g\u1ed1c.<\/p>\n<h3><span class=\"ez-toc-section\" id=\"Docker-Image-duoc-luu-tru-o-dau\"><\/span>Docker Image \u0111\u01b0\u1ee3c l\u01b0u tr\u1eef \u1edf \u0111\u00e2u?<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>C\u00e1c Image m\u1eb7c \u0111\u1ecbnh \u0111\u01b0\u1ee3c k\u00e9o v\u1ec1 v\u00e0 l\u01b0u tr\u1eef tr\u00ean b\u1ed9 nh\u1edb v\u1eadt l\u00fd c\u1ee7a m\u00e1y ch\u1ee7 (local storage). V\u1ec1 kho l\u01b0u tr\u1eef trung t\u00e2m, ph\u1ed5 bi\u1ebfn nh\u1ea5t l\u00e0 public registry Docker Hub \u2014 n\u01a1i ch\u1ee9a h\u00e0ng tri\u1ec7u image s\u1eb5n c\u00f3 c\u1ee7a c\u1ed9ng \u0111\u1ed3ng. Ngo\u00e0i ra, c\u00e1c doanh nghi\u1ec7p th\u01b0\u1eddng t\u1ef1 x\u00e2y d\u1ef1ng Private Registry (nh\u01b0 AWS ECR, GitLab Registry) \u0111\u1ec3 l\u01b0u tr\u1eef n\u1ed9i b\u1ed9 m\u00e3 ngu\u1ed3n \u0111\u1ed9c quy\u1ec1n, \u0111\u1ea3m b\u1ea3o an to\u00e0n b\u1ea3o m\u1eadt.<\/p>\n<h3><span class=\"ez-toc-section\" id=\"Cau-hinh-VPS-toi-thieu-de-chay-Docker-la-bao-nhieu\"><\/span>C\u1ea5u h\u00ecnh VPS t\u1ed1i thi\u1ec3u \u0111\u1ec3 ch\u1ea1y Docker l\u00e0 bao nhi\u00eau?<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>Engine c\u1ee7a Docker r\u1ea5t nh\u1eb9, nh\u01b0ng c\u1ea5u h\u00ecnh th\u1ef1c t\u1ebf ph\u1ee5 thu\u1ed9c v\u00e0o \u1ee9ng d\u1ee5ng b\u00ean trong container c\u1ee7a b\u1ea1n. M\u1ee9c y\u00eau c\u1ea7u tham kh\u1ea3o c\u01a1 b\u1ea3n nh\u01b0 sau:<\/p>\n<ul>\n<li><strong>CPU:<\/strong> 1 &#8211; 2 Cores l\u00e0 \u0111\u1ee7 cho nhu c\u1ea7u c\u01a1 b\u1ea3n.<\/li>\n<li><strong>RAM:<\/strong> T\u1ed1i thi\u1ec3u 1GB (khuy\u1ebfn ngh\u1ecb t\u1eeb 2GB tr\u1edf l\u00ean n\u1ebfu ch\u1ea1y Database ho\u1eb7c nhi\u1ec1u d\u1ecbch v\u1ee5 c\u00f9ng l\u00fac).<\/li>\n<li><strong>\u1ed4 c\u1ee9ng:<\/strong> T\u1ed1i thi\u1ec3u 20GB SSD\/NVMe tr\u1ed1ng \u0111\u1ec3 ch\u1ee9a c\u00e1c file Images v\u00e0 Volumes ng\u00e0y c\u00e0ng ph\u00ecnh to theo th\u1eddi gian.<\/li>\n<\/ul>\n<h3><span class=\"ez-toc-section\" id=\"Docker-va-Kubernetes-K8s-co-phai-la-doi-thu-cua-nhau\"><\/span>Docker v\u00e0 Kubernetes (K8s) c\u00f3 ph\u1ea3i l\u00e0 \u0111\u1ed1i th\u1ee7 c\u1ee7a nhau?<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>Kh\u00f4ng, \u0111\u00e2y l\u00e0 m\u1ed9t s\u1ef1 hi\u1ec3u l\u1ea7m r\u1ea5t ph\u1ed5 bi\u1ebfn. Hai c\u00f4ng c\u1ee5 n\u00e0y sinh ra \u0111\u1ec3 b\u1ed5 tr\u1ee3 cho nhau. Docker \u0111\u00f3ng vai tr\u00f2 l\u00e0 &#8220;c\u00f4ng nh\u00e2n&#8221; ch\u1ecbu tr\u00e1ch nhi\u1ec7m t\u1ea1o v\u00e0 ch\u1ea1y t\u1eebng Container. Trong khi \u0111\u00f3, Kubernetes (K8s) \u0111\u00f3ng vai tr\u00f2 l\u00e0 &#8220;ng\u01b0\u1eddi qu\u1ea3n \u0111\u1ed1c&#8221; (Orchestration system) gi\u00fap t\u1ef1 \u0111\u1ed9ng ph\u00e2n b\u1ed5 t\u00e0i nguy\u00ean, c\u00e2n b\u1eb1ng t\u1ea3i v\u00e0 gi\u00e1m s\u00e1t h\u00e0ng ng\u00e0n container \u0111\u00f3 tr\u00ean nhi\u1ec1u c\u1ee5m m\u00e1y ch\u1ee7 kh\u00e1c nhau \u0111\u1ec3 h\u1ec7 th\u1ed1ng kh\u00f4ng bao gi\u1edd b\u1ecb s\u1eadp.<\/p>\n<p><!-- K\u1ebeT LU\u1eacN --><\/p>\n<h2><span class=\"ez-toc-section\" id=\"Buoc-tiep-theo-de-lam-chu-he-sinh-thai-Container\"><\/span>B\u01b0\u1edbc ti\u1ebfp theo \u0111\u1ec3 l\u00e0m ch\u1ee7 h\u1ec7 sinh th\u00e1i Container<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>\u1ea2o h\u00f3a c\u1ea5p h\u1ec7 \u0111i\u1ec1u h\u00e0nh kh\u00f4ng ph\u1ea3i l\u00e0 xu h\u01b0\u1edbng nh\u1ea5t th\u1eddi, n\u00f3 \u0111\u00e3 tr\u1edf th\u00e0nh x\u01b0\u01a1ng s\u1ed1ng c\u1ee7a ki\u1ebfn tr\u00fac h\u1ea1 t\u1ea7ng ph\u1ea7n m\u1ec1m hi\u1ec7n \u0111\u1ea1i. Khi hi\u1ec3u r\u00f5 <strong>Docker l\u00e0 g\u00ec<\/strong>, b\u1ea1n \u0111\u00e3 n\u1eafm trong tay c\u00f4ng c\u1ee5 \u0111\u1ec3 lo\u1ea1i b\u1ecf v\u0129nh vi\u1ec5n c\u00e2u n\u00f3i b\u00e0o ch\u1eefa &#8220;l\u1ed7i t\u1ea1i m\u00f4i tr\u01b0\u1eddng&#8221;. Kh\u00f4ng xung \u0111\u1ed9t. Kh\u00f4ng gi\u00e1n \u0111o\u1ea1n. Kh\u00f4ng l\u00e3ng ph\u00ed t\u00e0i nguy\u00ean.<\/p>\n<p>B\u01b0\u1edbc ti\u1ebfp theo c\u1ee7a b\u1ea1n? H\u00e3y thu\u00ea ngay m\u1ed9t m\u00e1y ch\u1ee7 \u0111\u1ec3 t\u1ef1 tay g\u00f5 nh\u1eefng d\u00f2ng l\u1ec7nh <code>docker run<\/code> \u0111\u1ea7u ti\u00ean. Tr\u1ea3i nghi\u1ec7m th\u1ef1c t\u1ebf vi\u1ec7c build m\u1ed9t Dockerfile hay \u00e1nh x\u1ea1 Volume s\u1ebd gi\u00fap c\u00e1c kh\u00e1i ni\u1ec7m tr\u1eebu t\u01b0\u1ee3ng tr\u1edf n\u00ean r\u00f5 r\u00e0ng h\u01a1n bao gi\u1edd h\u1ebft.<\/p>\n<p>N\u1ebfu ch\u01b0a bi\u1ebft b\u1eaft \u0111\u1ea7u t\u1eeb \u0111\u00e2u, b\u1ea1n c\u00f3 th\u1ec3 tham kh\u1ea3o <a href=\"https:\/\/interdata.vn\/blog\/huong-dan-cai-dat-docker-tren-vps\/\" target=\"_blank\" rel=\"noopener\">H\u01b0\u1edbng d\u1eabn c\u00e0i \u0111\u1eb7t Docker tr\u00ean VPS (Ubuntu &amp; Debian)<\/a> \u0111\u1ec3 qu\u00e1 tr\u00ecnh kh\u1edfi \u0111\u1ea7u di\u1ec5n ra su\u00f4n s\u1ebb nh\u1ea5t. Ch\u00fac b\u1ea1n s\u1edbm l\u00e0m ch\u1ee7 c\u00f4ng ngh\u1ec7 m\u1ea1nh m\u1ebd n\u00e0y v\u00e0 t\u1ed1i \u01b0u h\u00f3a th\u00e0nh c\u00f4ng quy tr\u00ecnh tri\u1ec3n khai d\u1ef1 \u00e1n c\u1ee7a m\u00ecnh.<\/p>\n<p><strong>N\u1ebfu b\u1ea1n \u0111ang quan t\u00e2m \u0111\u1ebfn gi\u1ea3i ph\u00e1p m\u00e1y ch\u1ee7 \u1ea3o (VPS \/ Cloud Server) t\u1ed1i \u01b0u cho docker. H\u00e3y li\u00ean h\u1ec7 ngay cho InterData \u0111\u1ec3 \u0111\u01b0\u1ee3c t\u01b0 v\u1ea5n c\u1ee5 th\u1ec3, k\u00e8m c\u00e1c \u01b0u \u0111\u00e3i h\u1ea5p d\u1eabn.<\/strong><\/p>\n<ul>\n<li><strong>Website: <a href=\"https:\/\/interdata.vn\/\" target=\"_blank\" rel=\"noopener\">interdata.vn<\/a><\/strong><\/li>\n<li><strong>Facebook: <a href=\"https:\/\/www.facebook.com\/interdata.com.vn\/\" target=\"_blank\" rel=\"nofollow noopener\">facebook.com\/interdata.com.vn<\/a><\/strong><\/li>\n<li><strong>Hotline: 1900636822<\/strong><\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>T\u00f3m t\u1eaft nhanh: Docker l\u00e0 m\u1ed9t n\u1ec1n t\u1ea3ng m\u00e3 ngu\u1ed3n m\u1edf chuy\u00ean d\u1ee5ng \u0111\u1ec3 t\u1ef1 \u0111\u1ed9ng h\u00f3a qu\u00e1 tr\u00ecnh tri\u1ec3n khai, ph\u00e2n ph\u1ed1i v\u00e0 ch\u1ea1y \u1ee9ng d\u1ee5ng b\u00ean trong c\u00e1c m\u00f4i tr\u01b0\u1eddng bi\u1ec7t l\u1eadp \u0111\u01b0\u1ee3c g\u1ecdi l\u00e0 Container. Thay v\u00ec ph\u1ea3i c\u00e0i \u0111\u1eb7t th\u1ee7 c\u00f4ng t\u1eebng th\u01b0 vi\u1ec7n tr\u00ean server, Docker \u0111\u00f3ng g\u00f3i to\u00e0n b\u1ed9<\/p>\n","protected":false},"author":2,"featured_media":40991,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[159],"tags":[],"class_list":["post-3909","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-kien-thuc-docker"],"_links":{"self":[{"href":"https:\/\/interdata.vn\/blog\/wp-json\/wp\/v2\/posts\/3909","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/interdata.vn\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/interdata.vn\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/interdata.vn\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/interdata.vn\/blog\/wp-json\/wp\/v2\/comments?post=3909"}],"version-history":[{"count":9,"href":"https:\/\/interdata.vn\/blog\/wp-json\/wp\/v2\/posts\/3909\/revisions"}],"predecessor-version":[{"id":41195,"href":"https:\/\/interdata.vn\/blog\/wp-json\/wp\/v2\/posts\/3909\/revisions\/41195"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/interdata.vn\/blog\/wp-json\/wp\/v2\/media\/40991"}],"wp:attachment":[{"href":"https:\/\/interdata.vn\/blog\/wp-json\/wp\/v2\/media?parent=3909"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/interdata.vn\/blog\/wp-json\/wp\/v2\/categories?post=3909"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/interdata.vn\/blog\/wp-json\/wp\/v2\/tags?post=3909"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}