{"id":35050,"date":"2024-10-28T16:21:55","date_gmt":"2024-10-28T09:21:55","guid":{"rendered":"http:\/\/jupitek.maudemo.vip\/index.php\/2024\/10\/28\/how-to-use-dockerized-to-run-commands\/"},"modified":"2024-10-28T16:21:55","modified_gmt":"2024-10-28T09:21:55","slug":"how-to-use-dockerized-to-run-commands","status":"publish","type":"post","link":"https:\/\/jupitek.maudemo.vip\/index.php\/2024\/10\/28\/how-to-use-dockerized-to-run-commands\/","title":{"rendered":"C\u00e1ch s\u1eed d\u1ee5ng Dockerized \u0111\u1ec3 ch\u1ea1y l\u1ec7nh"},"content":{"rendered":"<p><a href=\"https:\/\/github.com\/datastack-net\/dockerized\" target=\"_blank\" rel=\"noreferrer noopener\">Dockerized<\/a>&nbsp;l\u00e0 m\u1ed9t ti\u1ec7n \u00edch ch\u1ea1y c\u00e1c l\u1ec7nh, tr\u00ecnh th\u00f4ng d\u1ecbch v\u00e0 c\u00e1c \u1ee9ng d\u1ee5ng kh\u00e1c trong m\u1ed9t v\u00f9ng ch\u1ee9a Docker. \u0110i\u1ec1u n\u00e0y gi\u00fap b\u1ea1n kh\u00f4ng ph\u1ea3i c\u00e0i \u0111\u1eb7t th\u1ee7 c\u00f4ng t\u1eebng l\u1ec7nh (v\u00e0 c\u00e1c l\u1ec7nh ph\u1ee5 thu\u1ed9c) v\u00e0o h\u1ec7 th\u1ed1ng c\u1ee5c b\u1ed9 c\u1ee7a b\u1ea1n. S\u1eed d\u1ee5ng Dockerized cho ph\u00e9p b\u1ea1n d\u00f9ng th\u1eed m\u1ed9t c\u00f4ng c\u1ee5 m\u1edbi, t\u1eadn d\u1ee5ng m\u1ed9t c\u00f4ng c\u1ee5 cho m\u1ed9t t\u00e1c v\u1ee5 m\u1ed9t l\u1ea7n ho\u1eb7c \u0111\u1ea3m b\u1ea3o nh\u00f3m c\u1ee7a b\u1ea1n \u0111ang s\u1eed d\u1ee5ng c\u00f9ng m\u1ed9t phi\u00ean b\u1ea3n c\u1ee7a m\u1ed9t c\u00f4ng c\u1ee5.<\/p>\n<p>Trong h\u01b0\u1edbng d\u1eabn n\u00e0y, h\u00e3y t\u00ecm hi\u1ec3u th\u00eam v\u1ec1 Dockerized l\u00e0 g\u00ec v\u00e0 c\u00e1ch c\u00e0i \u0111\u1eb7t n\u00f3. Ngo\u00e0i ra, b\u1ea1n c\u00f3 th\u1ec3 l\u00e0m theo m\u1ed9t s\u1ed1 v\u00ed d\u1ee5 v\u1ec1 t\u00ecnh hu\u1ed1ng \u0111\u1ec3 b\u1eaft \u0111\u1ea7u th\u1ea5y Dockerized c\u00f3 th\u1ec3 h\u1eefu \u00edch v\u1edbi b\u1ea1n nh\u01b0 th\u1ebf n\u00e0o.<\/p>\n<p class=\"has-background\" style=\"background-color:#74f78c33\">Ghi ch\u00fa: C\u00f3 nhi\u1ec1u \u1ee9ng d\u1ee5ng ri\u00eang bi\u1ec7t \u0111\u01b0\u1ee3c \u0111\u1eb7t t\u00ean l\u00e0&nbsp;<em>Dockerized<\/em>&nbsp;,&nbsp;<em>Dockerize<\/em>&nbsp;ho\u1eb7c t\u00ean r\u1ea5t gi\u1ed1ng v\u1eady. H\u01b0\u1edbng d\u1eabn n\u00e0y th\u1ea3o lu\u1eadn v\u1ec1 c\u00f4ng c\u1ee5 \u0111\u01b0\u1ee3c l\u01b0u tr\u1eef tr\u00ean kho l\u01b0u tr\u1eef GitHub&nbsp;<a href=\"https:\/\/github.com\/datastack-net\/dockerized\" target=\"_blank\" rel=\"noreferrer noopener\">datastack-net\/dockerized<\/a>&nbsp;.<\/p>\n<h2 id=\"before-you-begin\">Tr\u01b0\u1edbc khi b\u1ea1n b\u1eaft \u0111\u1ea7u<a href=\"https:\/\/www.linode.com\/docs\/guides\/running-commands-with-dockerized\/#before-you-begin\"><\/a><\/h2>\n<ol>\n<li>N\u1ebfu b\u1ea1n ch\u01b0a th\u1ef1c hi\u1ec7n, h\u00e3y t\u1ea1o m\u1ed9t t\u00e0i kho\u1ea3n Linode v\u00e0 Compute Instance. Xem h\u01b0\u1edbng d\u1eabn&nbsp;<a href=\"https:\/\/www.linode.com\/docs\/products\/platform\/get-started\/\">B\u1eaft \u0111\u1ea7u v\u1edbi Linode<\/a>&nbsp;v\u00e0&nbsp;<a href=\"https:\/\/www.linode.com\/docs\/products\/compute\/compute-instances\/guides\/create\/\">T\u1ea1o Compute Instance<\/a>&nbsp;c\u1ee7a ch\u00fang t\u00f4i .<\/li>\n<li>L\u00e0m theo h\u01b0\u1edbng d\u1eabn&nbsp;<a href=\"https:\/\/www.linode.com\/docs\/products\/compute\/compute-instances\/guides\/set-up-and-secure\/\">Thi\u1ebft l\u1eadp v\u00e0 B\u1ea3o m\u1eadt Phi\u00ean b\u1ea3n Compute<\/a>&nbsp;c\u1ee7a ch\u00fang t\u00f4i \u0111\u1ec3 c\u1eadp nh\u1eadt h\u1ec7 th\u1ed1ng c\u1ee7a b\u1ea1n. B\u1ea1n c\u0169ng c\u00f3 th\u1ec3 mu\u1ed1n \u0111\u1eb7t m\u00fai gi\u1edd, c\u1ea5u h\u00ecnh t\u00ean m\u00e1y ch\u1ee7, t\u1ea1o t\u00e0i kho\u1ea3n ng\u01b0\u1eddi d\u00f9ng gi\u1edbi h\u1ea1n v\u00e0 t\u0103ng c\u01b0\u1eddng quy\u1ec1n truy c\u1eadp SSH.<\/li>\n<\/ol>\n<p class=\"has-background\" style=\"background-color:#74f78c33\">Ghi ch\u00fa: C\u00e1c b\u01b0\u1edbc trong h\u01b0\u1edbng d\u1eabn n\u00e0y \u0111\u01b0\u1ee3c vi\u1ebft cho ng\u01b0\u1eddi d\u00f9ng kh\u00f4ng ph\u1ea3i root. C\u00e1c l\u1ec7nh y\u00eau c\u1ea7u quy\u1ec1n n\u00e2ng cao \u0111\u01b0\u1ee3c th\u00eam ti\u1ec1n t\u1ed1&nbsp;<code>sudo<\/code>. N\u1ebfu b\u1ea1n kh\u00f4ng quen v\u1edbi&nbsp;<code>sudo<\/code>l\u1ec7nh n\u00e0y, h\u00e3y xem h\u01b0\u1edbng d\u1eabn&nbsp;<a href=\"https:\/\/www.linode.com\/docs\/guides\/linux-users-and-groups\/\">Ng\u01b0\u1eddi d\u00f9ng v\u00e0 Nh\u00f3m Linux<\/a>&nbsp;.<\/p>\n<h2 id=\"what-is-dockerized\">Dockerized l\u00e0 g\u00ec?<a href=\"https:\/\/www.linode.com\/docs\/guides\/running-commands-with-dockerized\/#what-is-dockerized\"><\/a><\/h2>\n<p>Dockerized \u0111\u00f3ng g\u00f3i m\u1ed9t b\u1ed9 c\u00f4ng c\u1ee5 d\u00f2ng l\u1ec7nh h\u1eefu \u00edch, cho ph\u00e9p b\u1ea1n s\u1eed d\u1ee5ng c\u00e1c c\u00f4ng c\u1ee5 \u0111\u00f3 m\u00e0 kh\u00f4ng c\u1ea7n c\u00e0i \u0111\u1eb7t th\u00eam. Ngay khi c\u00e0i \u0111\u1eb7t, Dockerized bao g\u1ed3m nhi\u1ec1u c\u00f4ng c\u1ee5 ph\u00e1t tri\u1ec3n ph\u1ed5 bi\u1ebfn (nh\u01b0 git, npm v\u00e0 pip), CLI c\u01a1 s\u1edf d\u1eef li\u1ec7u (nh\u01b0 mysql v\u00e0 postgres), m\u1ea1ng (nh\u01b0 wget v\u00e0 telnet) v\u00e0 nhi\u1ec1u c\u00f4ng c\u1ee5 kh\u00e1c. \u0110\u1ec3 bi\u1ebft danh s\u00e1ch, h\u00e3y xem ph\u1ea7n&nbsp;<a href=\"https:\/\/github.com\/datastack-net\/dockerized#supported-commands\" target=\"_blank\" rel=\"noreferrer noopener\">L\u1ec7nh \u0111\u01b0\u1ee3c h\u1ed7 tr\u1ee3<\/a>&nbsp;tr\u00ean trang GitHub readme. B\u1ea1n th\u1eadm ch\u00ed c\u00f3 th\u1ec3 m\u1edf r\u1ed9ng Dockerized b\u1eb1ng c\u00e1c l\u1ec7nh b\u1ed5 sung, do \u0111\u00f3 b\u1ea1n kh\u00f4ng b\u1ecb gi\u1edbi h\u1ea1n ch\u1ec9 \u1edf nh\u1eefng l\u1ec7nh \u0111\u01b0\u1ee3c bao g\u1ed3m theo m\u1eb7c \u0111\u1ecbnh.<\/p>\n<p>Dockerized th\u1ef1c hi\u1ec7n t\u1ea5t c\u1ea3 nh\u1eefng \u0111i\u1ec1u n\u00e0y b\u1eb1ng c\u00e1ch t\u1eadn d\u1ee5ng Docker v\u00e0 Docker Compose. M\u1ed7i l\u1ec7nh Dockerized t\u1ea1o m\u1ed9t v\u00f9ng ch\u1ee9a Docker t\u1ea1m th\u1eddi v\u1edbi c\u00f4ng c\u1ee5 \u0111\u01b0\u1ee3c cung c\u1ea5p. C\u00e1c v\u00f9ng ch\u1ee9a n\u00e0y cho ph\u00e9p b\u1ea1n ch\u1ea1y t\u1eebng thi\u1ebft l\u1eadp ph\u1ea7n m\u1ec1m m\u00e0 kh\u00f4ng c\u1ea7n th\u00eam c\u00e0i \u0111\u1eb7t ho\u1eb7c ph\u1ee5 thu\u1ed9c v\u00e0o h\u1ec7 th\u1ed1ng c\u1ee7a b\u1ea1n.<\/p>\n<p>Dockerized c\u00f3 nhi\u1ec1u tr\u01b0\u1eddng h\u1ee3p s\u1eed d\u1ee5ng v\u00e0 b\u1ea1n c\u00f3 th\u1ec3 \u0111\u00e3 ngh\u0129 ra m\u1ed9t s\u1ed1 tr\u01b0\u1eddng h\u1ee3p c\u1ee7a ri\u00eang m\u00ecnh. Nh\u01b0ng c\u00f3 hai lo\u1ea1i n\u1ed5i b\u1eadt h\u01a1n c\u1ea3.<\/p>\n<ul>\n<li><strong>Th\u1eed nghi\u1ec7m c\u00e1c c\u00f4ng c\u1ee5 m\u1edbi.<\/strong>&nbsp;Dockerized cho ph\u00e9p b\u1ea1n th\u1eed nghi\u1ec7m m\u1ed9t lo\u1ea1t c\u00e1c c\u00f4ng c\u1ee5 m\u00e0 kh\u00f4ng c\u1ea7n ph\u1ea3i c\u00e0i \u0111\u1eb7t t\u1eebng c\u00f4ng c\u1ee5. \u0110i\u1ec1u n\u00e0y cho ph\u00e9p b\u1ea1n so s\u00e1nh v\u00e0 kh\u00e1m ph\u00e1 c\u00e1c kh\u1ea3 n\u0103ng c\u1ee7a c\u00f4ng c\u1ee5 m\u00e0 kh\u00f4ng c\u1ea7n ph\u1ea3i c\u00e0i \u0111\u1eb7t v\u00e0 l\u1ed9n x\u1ed9n v\u1edbi nhi\u1ec1u \u1ee9ng d\u1ee5ng m\u00e0 b\u1ea1n c\u00f3 th\u1ec3 kh\u00f4ng bao gi\u1edd s\u1eed d\u1ee5ng l\u1ea1i.<\/li>\n<li><strong>Ch\u1ea1y c\u00e1c t\u00e1c v\u1ee5 m\u1ed9t l\u1ea7n.<\/strong>&nbsp;Ng\u00f4n ng\u1eef l\u1eadp tr\u00ecnh r\u1ea5t gi\u1ecfi trong vi\u1ec7c ch\u1ea1y c\u00e1c t\u00e1c v\u1ee5 d\u00f9ng m\u1ed9t l\u1ea7n, nh\u01b0ng th\u00f4ng th\u01b0\u1eddng ch\u00fang y\u00eau c\u1ea7u b\u1ea1n ph\u1ea3i c\u00e0i \u0111\u1eb7t tr\u00ecnh th\u00f4ng d\u1ecbch v\u00e0 c\u00e1c ph\u1ee5 thu\u1ed9c c\u1ee7a tr\u00ecnh th\u00f4ng d\u1ecbch. Dockerized bao g\u1ed3m nhi\u1ec1u tr\u00ecnh th\u00f4ng d\u1ecbch t\u1eadp l\u1ec7nh, ngh\u0129a l\u00e0 b\u1ea1n c\u00f3 th\u1ec3 t\u1ea1o v\u00e0 ch\u1ea1y t\u1eadp l\u1ec7nh m\u00e0 kh\u00f4ng c\u1ea7n c\u00e0i \u0111\u1eb7t th\u00eam tr\u00ean h\u1ec7 th\u1ed1ng c\u1ee7a m\u00ecnh.<\/li>\n<\/ul>\n<h2 id=\"how-to-install-dockerized\">C\u00e1ch c\u00e0i \u0111\u1eb7t Dockerized<a href=\"https:\/\/www.linode.com\/docs\/guides\/running-commands-with-dockerized\/#how-to-install-dockerized\"><\/a><\/h2>\n<p>Dockerized \u0111\u01b0\u1ee3c ph\u00e2n ph\u1ed1i d\u01b0\u1edbi d\u1ea1ng nh\u1ecb ph\u00e2n \u0111\u01b0\u1ee3c bi\u00ean d\u1ecbch tr\u01b0\u1edbc v\u00e0 ph\u1ee5 thu\u1ed9c b\u00ean ngo\u00e0i duy nh\u1ea5t c\u1ee7a n\u00f3 l\u00e0 Docker. Sau khi b\u1ea1n thi\u1ebft l\u1eadp xong, b\u1ea1n c\u00f3 th\u1ec3 ch\u1ea1y t\u1ea5t c\u1ea3 c\u00e1c l\u1ec7nh \u0111\u01b0\u1ee3c bao g\u1ed3m v\u1edbi Dockerized \u2014 c\u0169ng nh\u01b0 b\u1ea5t k\u1ef3 l\u1ec7nh b\u1ed5 sung n\u00e0o b\u1ea1n th\u00eam v\u00e0o.Ghi ch\u00faC\u00e1c h\u01b0\u1edbng d\u1eabn c\u00e0i \u0111\u1eb7t n\u00e0y s\u1ebd ho\u1ea1t \u0111\u1ed9ng v\u1edbi h\u1ea7u h\u1ebft c\u00e1c b\u1ea3n ph\u00e2n ph\u1ed1i Linux v\u00e0 macOS. Dockerized c\u0169ng h\u1ed7 tr\u1ee3 Windows, nh\u01b0ng \u0111i\u1ec1u \u0111\u00f3 n\u1eb1m ngo\u00e0i ph\u1ea1m vi c\u1ee7a h\u01b0\u1edbng d\u1eabn n\u00e0y. \u0110\u1ec3 xem h\u01b0\u1edbng d\u1eabn ch\u00ednh th\u1ee9c cho t\u1ea5t c\u1ea3 c\u00e1c h\u1ec7 \u0111i\u1ec1u h\u00e0nh \u0111\u01b0\u1ee3c h\u1ed7 tr\u1ee3, h\u00e3y xem ph\u1ea7n&nbsp;<\/p>\n<p><a href=\"https:\/\/github.com\/datastack-net\/dockerized#installation\" target=\"_blank\" rel=\"noreferrer noopener\">C\u00e0i \u0111\u1eb7t<\/a>&nbsp;c\u00f3 trong t\u1ec7p readme GitHub Dockerized.<\/p>\n<h3 id=\"install-docker\">C\u00e0i \u0111\u1eb7t Docker<a href=\"https:\/\/www.linode.com\/docs\/guides\/running-commands-with-dockerized\/#install-docker\"><\/a><\/h3>\n<p>Dockerized ch\u1ea1y l\u1ec7nh th\u00f4ng qua c\u00e1c container Docker, do \u0111\u00f3 b\u1ea1n c\u1ea7n c\u00e0i \u0111\u1eb7t Docker \u0111\u1ec3 c\u00f3 th\u1ec3 s\u1eed d\u1ee5ng Dockerized.<\/p>\n<p>Tr\u00ean h\u1ea7u h\u1ebft c\u00e1c h\u1ec7 th\u1ed1ng Linux, b\u1ea1n c\u00f3 th\u1ec3 c\u00e0i \u0111\u1eb7t Docker Engine b\u1eb1ng c\u00e1ch l\u00e0m theo h\u01b0\u1edbng d\u1eabn&nbsp;<a href=\"https:\/\/www.linode.com\/docs\/guides\/installing-and-using-docker-on-ubuntu-and-debian\/\">C\u00e0i \u0111\u1eb7t v\u00e0 S\u1eed d\u1ee5ng Docker<\/a>&nbsp;c\u1ee7a ch\u00fang t\u00f4i . Ngo\u00e0i ra, b\u1ea1n c\u1ea7n th\u00eam b\u1ea5t k\u1ef3 ng\u01b0\u1eddi d\u00f9ng kh\u00f4ng ph\u1ea3i root n\u00e0o m\u00e0 b\u1ea1n mu\u1ed1n ch\u1ea1y Dockerized v\u00e0o&nbsp;<code>docker<\/code>nh\u00f3m ng\u01b0\u1eddi d\u00f9ng. L\u00e0m theo ph\u1ea7n v\u1ec1 ch\u1ea1y Docker v\u1edbi t\u01b0 c\u00e1ch l\u00e0 ng\u01b0\u1eddi d\u00f9ng kh\u00f4ng ph\u1ea3i root trong h\u01b0\u1edbng d\u1eabn \u0111\u01b0\u1ee3c li\u00ean k\u1ebft \u1edf tr\u00ean \u0111\u1ec3 xem l\u1ec7nh ph\u00f9 h\u1ee3p \u0111\u1ec3 th\u1ef1c hi\u1ec7n vi\u1ec7c \u0111\u00f3.<\/p>\n<h3 id=\"download-and-install-dockerized\">T\u1ea3i xu\u1ed1ng v\u00e0 c\u00e0i \u0111\u1eb7t Dockerized<a href=\"https:\/\/www.linode.com\/docs\/guides\/running-commands-with-dockerized\/#download-and-install-dockerized\"><\/a><\/h3>\n<p>\u0110\u1ec3 c\u00e0i \u0111\u1eb7t Dockerized, h\u00e3y t\u1ea3i xu\u1ed1ng t\u1ec7p zip m\u1edbi nh\u1ea5t t\u01b0\u01a1ng \u1ee9ng v\u1edbi h\u1ec7 \u0111i\u1ec1u h\u00e0nh c\u1ee7a b\u1ea1n, gi\u1ea3i n\u00e9n t\u1ec7p zip v\u00e0 th\u00eam&nbsp;<code>bin<\/code>th\u01b0 m\u1ee5c Dockerized v\u00e0o bi\u1ebfn PATH.<\/p>\n<p>1.T\u1ea3i xu\u1ed1ng g\u00f3i Dockerized cho h\u1ec7 \u0111i\u1ec1u h\u00e0nh c\u1ee7a b\u1ea1n t\u1eeb trang&nbsp;<a href=\"https:\/\/github.com\/datastack-net\/dockerized\/releases\" target=\"_blank\" rel=\"noreferrer noopener\">Releases<\/a>&nbsp;tr\u00ean GitHub. C\u00e1ch nhanh nh\u1ea5t \u0111\u1ec3 th\u1ef1c hi\u1ec7n l\u00e0 s\u1eed d\u1ee5ng m\u1ed9t l\u1ec7nh duy nh\u1ea5t nh\u01b0 l\u1ec7nh \u0111\u01b0\u1ee3c hi\u1ec3n th\u1ecb b\u00ean d\u01b0\u1edbi. L\u1ec7nh n\u00e0y s\u1ebd l\u1ea5y th\u00f4ng tin v\u1ec1 b\u1ea3n ph\u00e1t h\u00e0nh m\u1edbi nh\u1ea5t, t\u00ecm URL t\u1ea3i xu\u1ed1ng cho h\u1ec7 \u0111i\u1ec1u h\u00e0nh \u0111\u00e3 ch\u1ec9 \u0111\u1ecbnh v\u00e0 t\u1ea3i xu\u1ed1ng g\u00f3i.<\/p>\n<pre class=\"wp-block-code\"><code>curl -s https:\/\/api.github.com\/repos\/datastack-net\/dockerized\/releases\/latest \\\n| grep \"browser_download_url.*dockerized.*linux-x86_64.zip\" \\\n| tail -n 1 \\\n| cut -d : -f 2,3 \\\n| tr -d \\\" \\\n| wget -O dockerized.zip -qi -<\/code><\/pre>\n<p>N\u1ebfu b\u1ea1n \u0111ang s\u1eed d\u1ee5ng macOS, h\u00e3y thay th\u1ebf&nbsp;<code>linux-x86_64.zip<\/code>l\u1ec7nh tr\u00ean b\u1eb1ng m\u1ed9t trong c\u00e1c chu\u1ed7i sau:<\/p>\n<ul>\n<li><strong>Apple Silicon:<\/strong>&nbsp;<code>mac-arm64.zip<\/code><\/li>\n<li><strong>Th\u00f4ng tin:<\/strong>&nbsp;<code>mac-x86_64.zip<\/code><\/li>\n<\/ul>\n<p>2.V\u00ec Dockerized \u0111\u01b0\u1ee3c \u0111\u00f3ng g\u00f3i d\u01b0\u1edbi d\u1ea1ng t\u1ec7p zip, b\u1ea1n c\u1ea7n c\u00f3 c\u00e1ch \u0111\u1ec3 gi\u1ea3i n\u00e9n t\u1ec7p. H\u01b0\u1edbng d\u1eabn n\u00e0y s\u1eed d\u1ee5ng l\u1ec7nh&nbsp;<a href=\"https:\/\/linux.die.net\/man\/1\/unzip\" target=\"_blank\" rel=\"noreferrer noopener\">unzip<\/a>&nbsp;, c\u00f3 trong macOS nh\u01b0ng kh\u00f4ng c\u00f3 trong h\u1ea7u h\u1ebft c\u00e1c b\u1ea3n ph\u00e2n ph\u1ed1i Linux. Ng\u01b0\u1eddi d\u00f9ng Linux tr\u01b0\u1edbc ti\u00ean n\u00ean c\u00e0i \u0111\u1eb7t unzip th\u00f4ng qua tr\u00ecnh qu\u1ea3n l\u00fd g\u00f3i c\u1ee7a h\u1ecd:<\/p>\n<p><strong>Ubuntu, Debian v\u00e0 nhi\u1ec1u b\u1ea3n ph\u00e2n ph\u1ed1i kh\u00e1c s\u1eed d\u1ee5ng tr\u00ecnh qu\u1ea3n l\u00fd g\u00f3i APT:<\/strong><\/p>\n<pre class=\"wp-block-code\"><code>sudo apt install unzip<\/code><\/pre>\n<p><strong>CentOS\/RHEL, AlmaLinux, Rocky Linux 8 (tr\u1edf l\u00ean) v\u00e0 Fedora:<\/strong><\/p>\n<pre class=\"wp-block-code\"><code>sudo dnf install unzip<\/code><\/pre>\n<p>3.Gi\u1ea3i n\u00e9n g\u00f3i Dockerized v\u00e0o m\u1ed9t th\u01b0 m\u1ee5c m\u1edbi trong th\u01b0 m\u1ee5c g\u1ed1c c\u1ee7a b\u1ea1n (&nbsp;<code>~\/dockerized\/<\/code>).<\/p>\n<pre class=\"wp-block-code\"><code>unzip dockerized.zip -d ~\/dockerized\/<\/code><\/pre>\n<p>4.S\u1eeda \u0111\u1ed5i bi\u1ebfn m\u00f4i tr\u01b0\u1eddng PATH c\u1ee7a b\u1ea1n \u0111\u1ec3 bao g\u1ed3m nh\u1ecb ph\u00e2n Dockerized. C\u00f3 nhi\u1ec1u ph\u01b0\u01a1ng ph\u00e1p \u0111\u1ec3 th\u1ef1c hi\u1ec7n vi\u1ec7c n\u00e0y, m\u1eb7c d\u00f9 h\u01b0\u1edbng d\u1eabn n\u00e0y \u0111\u1ec1 c\u1eadp \u0111\u1ebfn hai c\u00e1ch ph\u1ed5 bi\u1ebfn.<\/p>\n<p><strong>Ch\u1ec9 c\u00e0i \u0111\u1eb7t cho ng\u01b0\u1eddi d\u00f9ng hi\u1ec7n t\u1ea1i:<\/strong>&nbsp;Th\u00eam&nbsp;<code>dockerzied\/bin<\/code>th\u01b0 m\u1ee5c v\u00e0o bi\u1ebfn PATH.<\/p>\n<pre class=\"wp-block-code\"><code>export PATH=\"$PATH:$HOME\/dockerized\/bin\"<\/code><\/pre>\n<p><strong>C\u00e0i \u0111\u1eb7t cho t\u1ea5t c\u1ea3 ng\u01b0\u1eddi d\u00f9ng:<\/strong>&nbsp;Th\u00eam li\u00ean k\u1ebft t\u01b0\u1ee3ng tr\u01b0ng c\u1ee7a t\u1ec7p nh\u1ecb ph\u00e2n Dockerized v\u00e0o m\u1ed9t th\u01b0 m\u1ee5c hi\u1ec7n c\u00f3 m\u00e0 t\u1ea5t c\u1ea3 ng\u01b0\u1eddi d\u00f9ng \u0111\u1ec1u c\u00f3 th\u1ec3 truy c\u1eadp v\u00e0 \u0111\u1ea3m b\u1ea3o r\u1eb1ng th\u01b0 m\u1ee5c \u0111\u00f3 n\u1eb1m trong bi\u1ebfn PATH c\u1ee7a h\u1ec7 th\u1ed1ng.<\/p>\n<p>\u0110\u1ea7u ti\u00ean, h\u00e3y di chuy\u1ec3n&nbsp;<code>dockerized\/<\/code>th\u01b0 m\u1ee5c \u0111\u1ebfn m\u1ed9t v\u1ecb tr\u00ed t\u1eadp trung h\u01a1n.<\/p>\n<pre class=\"wp-block-code\"><code>sudo mv ~\/dockerized\/ \/usr\/local\/lib\/dockerized\/<\/code><\/pre>\n<p>Sau \u0111\u00f3, t\u1ea1o li\u00ean k\u1ebft t\u01b0\u1ee3ng tr\u01b0ng trong th\u01b0 m\u1ee5c tr\u00ean \u0111\u01b0\u1eddng d\u1eabn shell c\u1ee7a h\u1ec7 th\u1ed1ng. Th\u00f4ng th\u01b0\u1eddng,&nbsp;<code>\/usr\/local\/bin\/<\/code>l\u00e0 tr\u00ean \u0111\u01b0\u1eddng d\u1eabn \u0111\u00f3, nh\u01b0ng h\u00e3y thay \u0111\u1ed5i trong v\u00ed d\u1ee5 n\u00e0y n\u1ebfu c\u1ea7n.<\/p>\n<pre class=\"wp-block-code\"><code>sudo ln -s \/usr\/local\/lib\/dockerized\/bin\/dockerized \/usr\/local\/bin\/dockerized<\/code><\/pre>\n<p>5.X\u00e1c minh thi\u1ebft l\u1eadp b\u1eb1ng c\u00e1ch ki\u1ec3m tra ch\u1ea1y l\u1ec7nh t\u1eeb Dockerized. \u0110\u1ec3 bi\u1ebft h\u01b0\u1edbng d\u1eabn, h\u00e3y xem ph\u1ea7n&nbsp;<a href=\"https:\/\/www.linode.com\/docs\/guides\/running-commands-with-dockerized\/#run-commands\">Ch\u1ea1y l\u1ec7nh v\u1edbi Dockerized<\/a>&nbsp;b\u00ean d\u01b0\u1edbi.<\/p>\n<h2 id=\"run-commands\">Ch\u1ea1y l\u1ec7nh v\u1edbi Dockerized<a href=\"https:\/\/www.linode.com\/docs\/guides\/running-commands-with-dockerized\/#run-commands\"><\/a><\/h2>\n<p>\u0110\u1ec3 b\u1eaft \u0111\u1ea7u s\u1eed d\u1ee5ng Dockerized \u0111\u1ec3 ch\u1ea1y m\u1ed9t trong c\u00e1c c\u00f4ng c\u1ee5 d\u00f2ng l\u1ec7nh \u0111i k\u00e8m, h\u00e3y nh\u1eadp l\u1ec7nh sau. Thay&nbsp;<em>COMMAND<\/em>&nbsp;b\u1eb1ng l\u1ec7nh b\u1ea1n mu\u1ed1n ch\u1ea1y.<\/p>\n<pre class=\"wp-block-code\"><code>dockerized COMMAND<\/code><\/pre>\n<p>V\u00ed d\u1ee5, b\u1ea1n c\u00f3 th\u1ec3 s\u1eed d\u1ee5ng ti\u1ec7n \u00edch npm (c\u00f3 trong Dockerized). V\u00ed d\u1ee5 c\u01a1 b\u1ea3n, h\u00e3y ch\u1ea1y l\u1ec7nh b\u00ean d\u01b0\u1edbi \u0111\u1ec3 ki\u1ec3m tra phi\u00ean b\u1ea3n npm \u0111ang s\u1eed d\u1ee5ng:<\/p>\n<pre class=\"wp-block-code\"><code>dockerized npm --version<\/code><\/pre>\n<p>L\u1ea7n \u0111\u1ea7u ti\u00ean l\u1ec7nh \u0111\u01b0\u1ee3c ch\u1ea1y, Dockerized s\u1ebd t\u1ea3i xu\u1ed1ng h\u00ecnh \u1ea3nh ph\u00f9 h\u1ee3p c\u1ea7n thi\u1ebft cho c\u00f4ng c\u1ee5 li\u00ean quan. Sau \u0111\u00f3, b\u1ea1n s\u1ebd th\u1ea5y \u0111\u1ea7u ra c\u1ee7a l\u1ec7nh.<\/p>\n<pre class=\"wp-block-code\"><code>&#91;+] Running 10\/10\n\u283f npm Pulled\n&#91;...]\n8.5.2<\/code><\/pre>\n<p>N\u1ebfu b\u1ea1n ch\u1ea1y l\u1ec7nh b\u00ean ngo\u00e0i Dockerized, b\u1ea1n c\u00f3 th\u1ec3 nh\u1eadn th\u1ea5y \u0111\u1ea7u ra kh\u00e1c ho\u1eb7c nh\u1eadn \u0111\u01b0\u1ee3c l\u1ed7i kh\u00f4ng t\u00ecm th\u1ea5y l\u1ec7nh. \u0110i\u1ec1u n\u00e0y l\u00e0 do h\u1ec7 th\u1ed1ng c\u1ee7a b\u1ea1n \u0111ang ch\u1ea1y phi\u00ean b\u1ea3n kh\u00e1c c\u1ee7a ti\u1ec7n \u00edch \u0111\u01b0\u1ee3c Dockerized s\u1eed d\u1ee5ng ho\u1eb7c, nhi\u1ec1u kh\u1ea3 n\u0103ng l\u00e0, ti\u1ec7n \u00edch kh\u00f4ng \u0111\u01b0\u1ee3c c\u00e0i \u0111\u1eb7t c\u1ee5c b\u1ed9 tr\u00ean h\u1ec7 th\u1ed1ng c\u1ee7a b\u1ea1n.<\/p>\n<p>\u0110\u1ec3 minh h\u1ecda r\u00f5 h\u01a1n, sau \u0111\u00e2y l\u00e0 m\u1ed9t&nbsp;<code>Hello, world!<\/code>l\u1ec7nh th\u1ef1c thi \u0111\u01a1n gi\u1ea3n s\u1eed d\u1ee5ng m\u1ed9t trong c\u00e1c tr\u00ecnh th\u00f4ng d\u1ecbch c\u00f3 trong Dockerized,&nbsp;<em>Lua<\/em>&nbsp;.<\/p>\n<pre class=\"wp-block-code\"><code>dockerized lua -e 'print(\"Hello, world!\")'<\/code><\/pre>\n<pre class=\"wp-block-code\"><code>Hello, world!<\/code><\/pre>\n<p>Sau \u0111\u00e2y l\u00e0 m\u1ed9t s\u1ed1 c\u00e1ch s\u1eed d\u1ee5ng Dockerized n\u00e2ng cao h\u01a1n. M\u1ed7i c\u00e1ch n\u00e0y \u0111\u1ec1u nh\u1eb1m m\u1ee5c \u0111\u00edch bao qu\u00e1t m\u1ed9t tr\u01b0\u1eddng h\u1ee3p s\u1eed d\u1ee5ng, cung c\u1ea5p cho b\u1ea1n c\u00e1c c\u01a1 s\u1edf v\u00e0 m\u1ed9t s\u1ed1 \u00fd t\u01b0\u1edfng v\u1ec1 c\u00e1ch b\u1ea1n c\u00f3 th\u1ec3 s\u1eed d\u1ee5ng Dockerized. C\u00e1c kh\u1ea3 n\u0103ng r\u1ea5t r\u1ed9ng, nh\u01b0ng nh\u1eefng v\u00ed d\u1ee5 n\u00e0y nh\u1eb1m m\u1ee5c \u0111\u00edch gi\u00fap b\u1ea1n b\u1eaft \u0111\u1ea7u v\u00e0 th\u1ec3 hi\u1ec7n nhi\u1ec1u h\u01a1n v\u1ec1 kh\u1ea3 n\u0103ng c\u1ee7a Dockerized.<\/p>\n<h3 id=\"database-maintenance-scripting\">L\u1eadp tr\u00ecnh b\u1ea3o tr\u00ec c\u01a1 s\u1edf d\u1eef li\u1ec7u<a href=\"https:\/\/www.linode.com\/docs\/guides\/running-commands-with-dockerized\/#database-maintenance-scripting\"><\/a><\/h3>\n<p>Dockerized bao g\u1ed3m c\u00e1c container cho m\u1ed9t s\u1ed1 ng\u00f4n ng\u1eef k\u1ecbch b\u1ea3n, bao g\u1ed3m Lua, Python v\u00e0 Ruby. C\u00e1c ng\u00f4n ng\u1eef k\u1ecbch b\u1ea3n r\u1ea5t gi\u1ecfi trong vi\u1ec7c ho\u00e0n th\u00e0nh c\u00e1c t\u00e1c v\u1ee5 m\u1ed9t l\u1ea7n v\u00e0 \u0111i\u1ec1u n\u00e0y ph\u00f9 h\u1ee3p v\u1edbi m\u00f4 h\u00ecnh c\u1ee7a Dockerized. B\u1ea1n kh\u00f4ng c\u1ea7n ph\u1ea3i c\u00e0i \u0111\u1eb7t tr\u00ecnh th\u00f4ng d\u1ecbch k\u1ecbch b\u1ea3n v\u00e0 c\u00e1c ph\u1ee5 thu\u1ed9c b\u1ea5t c\u1ee9 khi n\u00e0o b\u1ea1n c\u1ea7n ch\u1ea1y m\u1ed9t k\u1ecbch b\u1ea3n \u0111\u01a1n gi\u1ea3n, m\u1ed9t l\u1ea7n.<\/p>\n<p>V\u00ed d\u1ee5 n\u00e0y, m\u1eb7c d\u00f9 c\u01a1 b\u1ea3n, nh\u01b0ng s\u1ebd cho b\u1ea1n th\u1ea5y c\u00e1ch thi\u1ebft l\u1eadp m\u1ed9t t\u1eadp l\u1ec7nh Ruby \u0111\u1ec3 s\u1eeda \u0111\u1ed5i c\u01a1 s\u1edf d\u1eef li\u1ec7u.<\/p>\n<p>1.T\u1ea1o m\u1ed9t th\u01b0 m\u1ee5c cho t\u1eadp l\u1ec7nh v\u00e0 chuy\u1ec3n v\u00e0o th\u01b0 m\u1ee5c \u0111\u00f3. V\u00ed d\u1ee5 n\u00e0y \u0111\u1eb7t th\u01b0 m\u1ee5c m\u1edbi v\u00e0o th\u01b0 m\u1ee5c home c\u1ee7a ng\u01b0\u1eddi d\u00f9ng hi\u1ec7n t\u1ea1i.<\/p>\n<pre class=\"wp-block-code\"><code>mkdir ~\/ruby-script\ncd ~\/ruby-script<\/code><\/pre>\n<p>2.S\u1eed d\u1ee5ng l\u1ec7nh Gem \u0111i k\u00e8m v\u1edbi Dockerized \u0111\u1ec3 c\u00e0i \u0111\u1eb7t&nbsp;<code>sqlite3<\/code>Ruby gem. L\u1ec7nh b\u00ean d\u01b0\u1edbi \u0111\u1ea3m b\u1ea3o r\u1eb1ng gem \u0111\u01b0\u1ee3c c\u00e0i \u0111\u1eb7t v\u00e0o th\u01b0&nbsp;<code>gem\/<\/code>m\u1ee5c con c\u1ee7a th\u01b0 m\u1ee5c hi\u1ec7n t\u1ea1i.<\/p>\n<pre class=\"wp-block-code\"><code>dockerized gem install sqlite3 --install-dir .\/gems<\/code><\/pre>\n<p>3.T\u1ea1o m\u1ed9t&nbsp;<code>test.rb<\/code>t\u1ec7p trong th\u01b0 m\u1ee5c v\u00e0 cung c\u1ea5p cho n\u00f3 n\u1ed9i dung \u0111\u01b0\u1ee3c hi\u1ec3n th\u1ecb \u1edf \u0111\u00e2y. M\u00e3 v\u00ed d\u1ee5 c\u00f3 c\u00e1c b\u00ecnh lu\u1eadn gi\u1ea3i th\u00edch ch\u1ee9c n\u0103ng c\u1ee7a t\u1eebng ph\u1ea7n.<\/p>\n<p>T\u00f3m l\u1ea1i, t\u1eadp l\u1ec7nh k\u1ebft n\u1ed1i v\u1edbi t\u1ec7p c\u01a1 s\u1edf d\u1eef li\u1ec7u SQLite. N\u00f3 hi\u1ec3n th\u1ecb k\u1ebft qu\u1ea3 t\u1eeb m\u1ed9t b\u1ea3ng nh\u1ea5t \u0111\u1ecbnh n\u1ebfu c\u00f3. N\u1ebfu kh\u00f4ng c\u00f3 k\u1ebft qu\u1ea3 n\u00e0o, t\u1eadp l\u1ec7nh s\u1ebd ch\u00e8n m\u1ed9t s\u1ed1 m\u1ee5c nh\u1eadp.<\/p>\n<pre class=\"wp-block-code\"><code># Alter the load path for Ruby to include the local gem path\n$LOAD_PATH.unshift 'gems\/gems\/sqlite3-1.6.0-x86_64-linux\/lib'\n\n# Import the sqlite3 gem\nrequire 'sqlite3'\n\n# Make a connection to test.db; configure to process rows as hashes\ndb = SQLite3::Database.open 'test.db'\ndb.results_as_hash = true\n\n# Create a table if it does not already exist\ndb.execute 'CREATE TABLE IF NOT EXISTS the_data (id INTEGER PRIMARY KEY, name TEXT);'\n\n# Define an array of values to be inserted into the table\nname_array = &#91;\"first name\", \"second name\", \"third name\"]\n\n# Fetch everything in the table\nresults = db.query 'SELECT name FROM the_data;'\n\n# If there is anything in the table, display what is there; if there is\n# not anything in the table, insert the values from name_array\nfirst_result = results.next\nif first_result\n    puts \"Results found!\"\n\n    puts first_result&#91;\"name\"]\n    results.each do |result|\n        puts result&#91;\"name\"]\n    end\nelse\n    puts \"No results found\"\n    puts \"Inserting new records\"\n\n    name_array.each do |new_name|\n        db.execute 'INSERT INTO the_data (name) VALUES (?);', new_name\n    end\nend<\/code><\/pre>\n<p>4.Ch\u1ea1y t\u1eadp l\u1ec7nh b\u1eb1ng c\u00e1ch s\u1eed d\u1ee5ng container Ruby t\u1eeb Dockerized.<\/p>\n<pre class=\"wp-block-code\"><code>dockerized ruby test.rb<\/code><\/pre>\n<p>L\u1ea7n \u0111\u1ea7u ti\u00ean ch\u1ea1y t\u1eadp l\u1ec7nh, b\u1ea1n s\u1ebd th\u1ea5y th\u00f4ng b\u00e1o kh\u00f4ng t\u00ecm th\u1ea5y b\u1ea3n ghi n\u00e0o v\u00e0 \u0111ang th\u00eam b\u1ea3n ghi m\u1edbi.<\/p>\n<pre class=\"wp-block-code\"><code>No results found\nInserting new records<\/code><\/pre>\n<p>Ch\u1ea1y l\u1ea1i t\u1eadp l\u1ec7nh v\u00e0 b\u1ea1n s\u1ebd th\u1ea5y t\u1eadp l\u1ec7nh l\u1ea5y k\u1ebft qu\u1ea3 \u0111\u00e3 ch\u00e8n v\u00e0o b\u1ea3ng \u1edf l\u1ea7n ch\u1ea1y tr\u01b0\u1edbc.<\/p>\n<pre class=\"wp-block-code\"><code>Results found!\nfirst name\nsecond name\nthird name<\/code><\/pre>\n<h3 id=\"static-http-server\">M\u00e1y ch\u1ee7 HTTP t\u0129nh<a href=\"https:\/\/www.linode.com\/docs\/guides\/running-commands-with-dockerized\/#static-http-server\"><\/a><\/h3>\n<p>Dockerized bao g\u1ed3m m\u1ed9t s\u1ed1 c\u00f4ng c\u1ee5 c\u00f3 th\u1ec3 ph\u1ee5c v\u1ee5 c\u00e1c t\u1ec7p t\u0129nh qua HTTP \u2014 v\u00ed d\u1ee5 nh\u01b0 Node, Python v\u00e0 Ruby. Nh\u1eefng c\u00f4ng c\u1ee5 n\u00e0y c\u00f3 th\u1ec3 h\u1eefu \u00edch n\u1ebfu b\u1ea1n mu\u1ed1n ki\u1ec3m tra m\u1ed9t s\u1ed1 t\u1ec7p trang web t\u0129nh m\u00e0 kh\u00f4ng c\u1ea7n chu\u1ea9n b\u1ecb to\u00e0n b\u1ed9 d\u1ef1 \u00e1n.<\/p>\n<p>Python cung c\u1ea5p m\u1ed9t c\u00e1ch d\u1ec5 d\u00e0ng \u0111\u1ec3 xem \u0111i\u1ec1u n\u00e0y ho\u1ea1t \u0111\u1ed9ng th\u00f4ng qua&nbsp;<code>http.server<\/code>m\u00f4-\u0111un c\u1ee7a n\u00f3.<\/p>\n<p>1.T\u1ea1o m\u1ed9t th\u01b0 m\u1ee5c cho c\u00e1c t\u1ec7p trang web t\u0129nh, sau \u0111\u00f3 thay \u0111\u1ed5i v\u00e0o th\u01b0 m\u1ee5c \u0111\u00f3. V\u00ed d\u1ee5 n\u00e0y s\u1eed d\u1ee5ng m\u1ed9t th\u01b0 m\u1ee5c trong th\u01b0 m\u1ee5c g\u1ed1c c\u1ee7a ng\u01b0\u1eddi d\u00f9ng hi\u1ec7n t\u1ea1i.<\/p>\n<pre class=\"wp-block-code\"><code>mkdir ~\/simple-website\ncd ~\/simple-website<\/code><\/pre>\n<p>2.Cung c\u1ea5p cho th\u01b0 m\u1ee5c m\u1ed9t&nbsp;<code>index.html<\/code>trang \u0111\u00edch. T\u1eeb \u0111\u00f3, b\u1ea1n c\u00f3 th\u1ec3 cung c\u1ea5p b\u1ea5t k\u1ef3 n\u1ed9i dung b\u1ed5 sung n\u00e0o b\u1ea1n mu\u1ed1n. Sau \u0111\u00e2y l\u00e0 m\u1ed9t v\u00ed d\u1ee5 c\u01a1 b\u1ea3n.<\/p>\n<pre class=\"wp-block-code\"><code>&lt;!doctype html&gt;\n&lt;html lang=\"en\"&gt;\n  &lt;head&gt;\n    &lt;title&gt;A Simple Website&lt;\/title&gt;\n  &lt;\/head&gt;\n  &lt;body&gt;\n    &lt;p&gt;This is a test website.&lt;\/p&gt;\n  &lt;\/body&gt;\n&lt;\/html&gt;<\/code><\/pre>\n<p>3.Ch\u1ea1y l\u1ec7nh Dockerized sau \u0111\u1ec3 ph\u1ee5c v\u1ee5 c\u00e1c t\u1ec7p trang web t\u0129nh trong th\u01b0 m\u1ee5c hi\u1ec7n t\u1ea1i.&nbsp;<code>-p<\/code>T\u00f9y ch\u1ecdn n\u00e0y cho ph\u00e9p b\u1ea1n chuy\u1ec3n ti\u1ebfp m\u1ed9t c\u1ed5ng t\u1eeb b\u00ean trong v\u00f9ng ch\u1ee9a \u0111\u1ebfn m\u00e1y ch\u1ee7.<\/p>\n<pre class=\"wp-block-code\"><code>dockerized -p 8080:8080 python -m http.server 8080<\/code><\/pre>\n<p>Trong tr\u01b0\u1eddng h\u1ee3p n\u00e0y,&nbsp;<code>http.server<\/code>ph\u1ee5c v\u1ee5 n\u1ed9i dung tr\u00ean c\u1ed5ng&nbsp;<code>8080<\/code>c\u1ee7a v\u00f9ng ch\u1ee9a v\u00e0&nbsp;<code>-p<\/code>t\u00f9y ch\u1ecdn c\u0169ng chuy\u1ec3n ti\u1ebfp c\u1ed5ng \u0111\u00f3 \u0111\u1ebfn c\u1ed5ng&nbsp;<code>8080<\/code>tr\u00ean m\u00e1y ch\u1ee7.<\/p>\n<p>4.\u0110i\u1ec1u h\u01b0\u1edbng \u0111\u1ebfn c\u1ed5ng m\u00e1y ch\u1ee7&nbsp;<code>8080<\/code>trong tr\u00ecnh duy\u1ec7t web v\u00e0 b\u1ea1n s\u1ebd th\u1ea5y n\u1ed9i dung c\u1ee7a trang web.<\/p>\n<pre class=\"wp-block-code\"><code>This is a test website.\n<\/code><\/pre>\n<h2 id=\"how-to-add-more-commands-to-dockerized\">C\u00e1ch Th\u00eam Nhi\u1ec1u L\u1ec7nh V\u00e0o Dockerized<a href=\"https:\/\/www.linode.com\/docs\/guides\/running-commands-with-dockerized\/#how-to-add-more-commands-to-dockerized\"><\/a><\/h2>\n<p>Trong khi Dockerized \u0111i k\u00e8m v\u1edbi m\u1ed9t b\u1ed9 l\u1ec7nh h\u1eefu \u00edch, b\u1ea1n c\u00f3 th\u1ec3 mu\u1ed1n m\u1edf r\u1ed9ng ch\u1ee9c n\u0103ng hi\u1ec7n c\u00f3 v\u00e0 th\u00eam l\u1ec7nh m\u1edbi. V\u00ec Dockerized s\u1eed d\u1ee5ng&nbsp;<a href=\"https:\/\/docs.docker.com\/compose\/\" target=\"_blank\" rel=\"noreferrer noopener\">Docker Compose<\/a>&nbsp;, b\u1ea1n c\u00f3 th\u1ec3 t\u1ea1o&nbsp;<a href=\"https:\/\/docs.docker.com\/compose\/compose-file\/\" target=\"_blank\" rel=\"noreferrer noopener\">c\u00e1c t\u1ec7p Compose<\/a>&nbsp;b\u1ed5 sung \u0111\u1ec3 x\u00e1c \u0111\u1ecbnh c\u00e1c l\u1ec7nh m\u1edbi. Sau \u0111\u00f3, b\u1ea1n c\u00f3 th\u1ec3 ch\u1ec9 \u0111\u1ecbnh v\u1ecb tr\u00ed c\u1ee7a c\u00e1c t\u1ec7p Compose th\u00f4ng qua vi\u1ec7c s\u1eed d\u1ee5ng c\u00e1c bi\u1ebfn m\u00f4i tr\u01b0\u1eddng Dockerized.<\/p>\n<p>1.<strong>X\u00e1c \u0111\u1ecbnh l\u1ec7nh m\u1edbi trong c\u00e1c t\u1ec7p Docker Compose:&nbsp;<\/strong><a href=\"https:\/\/docs.docker.com\/compose\/compose-file\/\" target=\"_blank\" rel=\"noreferrer noopener\">C\u00e1c t\u1ec7p Compose<\/a>&nbsp;\u0111\u01b0\u1ee3c s\u1eed d\u1ee5ng \u0111\u1ec3 x\u00e1c \u0111\u1ecbnh c\u00e1c l\u1ec7nh b\u1ed5 sung \u0111\u1ec3 s\u1eed d\u1ee5ng v\u1edbi Dockerized. M\u1ed9t t\u1ec7p duy nh\u1ea5t c\u00f3 th\u1ec3 l\u01b0u tr\u1eef nhi\u1ec1u l\u1ec7nh ho\u1eb7c b\u1ea1n c\u00f3 th\u1ec3 t\u1ea1o m\u1ed9t t\u1ec7p cho m\u1ed7i l\u1ec7nh. N\u1ebfu b\u1ea1n mu\u1ed1n c\u00e1c l\u1ec7nh \u0111\u01b0\u1ee3c ng\u01b0\u1eddi d\u00f9ng kh\u00e1c s\u1eed d\u1ee5ng, h\u00e3y \u0111\u1ea3m b\u1ea3o r\u1eb1ng nh\u1eefng ng\u01b0\u1eddi d\u00f9ng \u0111\u00f3 c\u00f3 th\u1ec3 truy c\u1eadp t\u1ec7p Compose t\u01b0\u01a1ng \u1ee9ng. N\u1ebfu kh\u00f4ng, n\u1ebfu ng\u01b0\u1eddi d\u00f9ng hi\u1ec7n t\u1ea1i c\u1ee7a b\u1ea1n l\u00e0 ng\u01b0\u1eddi d\u00f9ng d\u1ef1 \u0111\u1ecbnh duy nh\u1ea5t, t\u1ec7p \u0111\u00f3 c\u00f3 th\u1ec3 \u0111\u01b0\u1ee3c l\u01b0u tr\u1eef trong th\u01b0 m\u1ee5c g\u1ed1c c\u1ee7a b\u1ea1n.V\u00ed d\u1ee5, t\u1ea1o m\u1ed9t t\u1ec7p m\u1edbi c\u00f3 t\u00ean&nbsp;<code>new-command.yml<\/code>l\u00e0 c\u00f3 n\u1ed9i dung sau:<\/p>\n<pre class=\"wp-block-code\"><code>version: \"3\"\nservices:\n  example:\n    image: curlimages\/curl:latest\n    entrypoint: &#91;\"curl\"]<\/code><\/pre>\n<p>\u0110i\u1ec1u n\u00e0y t\u1ea1o ra m\u1ed9t d\u1ecbch v\u1ee5 m\u1edbi c\u00f3 t\u00ean l\u00e0&nbsp;<code>example<\/code>. T\u00ean d\u1ecbch v\u1ee5 n\u00e0y \u0111\u1ecbnh ngh\u0129a l\u1ec7nh Dockerized, do \u0111\u00f3 m\u1ed9t d\u1ecbch v\u1ee5 c\u00f3 t\u00ean&nbsp;<code>example<\/code>\u0111\u01b0\u1ee3c g\u1ecdi b\u1eb1ng c\u00e1ch ch\u1ea1y&nbsp;<code>dockerized example<\/code>. D\u1ecbch v\u1ee5 s\u1eed d\u1ee5ng h\u00ecnh \u1ea3nh Docker&nbsp;<a href=\"https:\/\/hub.docker.com\/r\/curlimages\/curl\" target=\"_blank\" rel=\"noreferrer noopener\">curlimages\/curl<\/a>&nbsp;v\u00e0&nbsp;<code>entrypoint<\/code>y\u00eau c\u1ea7u Dockerized ch\u1ea1y&nbsp;<code>curl<\/code>l\u1ec7nh trong v\u00f9ng ch\u1ee9a ngay l\u1eadp t\u1ee9c b\u1ea5t c\u1ee9 khi n\u00e0o d\u1ecbch v\u1ee5 \u0111\u01b0\u1ee3c g\u1ecdi.<\/p>\n<p>2.<strong>Ch\u1ec9 \u0111\u1ecbnh v\u1ecb tr\u00ed c\u1ee7a c\u00e1c t\u1ec7p Compose trong Dockerized:<\/strong>&nbsp;Sau khi b\u1ea1n \u0111\u00e3 t\u1ea1o c\u00e1c t\u1ec7p Compose, b\u1ea1n c\u1ea7n cho Dockerized bi\u1ebft n\u01a1i \u0111\u1ec3 t\u00ecm ki\u1ebfm. \u0110i\u1ec1u n\u00e0y \u0111\u01b0\u1ee3c th\u1ef1c hi\u1ec7n th\u00f4ng qua vi\u1ec7c s\u1eed d\u1ee5ng c\u00e1c t\u1ec7p c\u1ea5u h\u00ecnh m\u00f4i tr\u01b0\u1eddng (&nbsp;<code>dockerized.env<\/code>), c\u00f3 th\u1ec3 \u0111\u01b0\u1ee3c l\u01b0u tr\u1eef trong th\u01b0 m\u1ee5c g\u1ed1c c\u1ee7a b\u1ea1n (\u0111\u1ec3 b\u1ea1n c\u00f3 th\u1ec3 truy c\u1eadp l\u1ec7nh m\u1edbi tr\u00ean to\u00e0n c\u1ea7u) ho\u1eb7c trong m\u1ed9t th\u01b0 m\u1ee5c d\u1ef1 \u00e1n c\u1ee5 th\u1ec3 (\u0111\u1ec3 b\u1ea1n c\u00f3 th\u1ec3 truy c\u1eadp l\u1ec7nh t\u1eeb b\u00ean trong m\u1ed9t th\u01b0 m\u1ee5c d\u1ef1 \u00e1n nh\u1ea5t \u0111\u1ecbnh). Theo c\u00e1ch n\u00e0y, Dockerized cho ph\u00e9p b\u1ea1n \u00e1p d\u1ee5ng ph\u1ea1m vi cho c\u00e1c l\u1ec7nh b\u1ed5 sung, ph\u00f9 h\u1ee3p v\u1edbi ng\u01b0\u1eddi d\u00f9ng v\u00e0 th\u01b0 m\u1ee5c d\u1ef1 \u00e1n c\u1ee5 th\u1ec3. C\u00f3 hai bi\u1ebfn c\u00f3 th\u1ec3 \u0111\u01b0\u1ee3c s\u1eed d\u1ee5ng \u0111\u1ec3 ch\u1ec9 \u0111\u1ecbnh v\u1ecb tr\u00ed t\u01b0\u01a1ng \u0111\u1ed1i c\u1ee7a c\u00e1c t\u1ec7p Compose:&nbsp;<code>${HOME}<\/code>(t\u01b0\u01a1ng \u1ee9ng v\u1edbi th\u01b0 m\u1ee5c g\u1ed1c c\u1ee7a ng\u01b0\u1eddi d\u00f9ng) v\u00e0&nbsp;<code>${DOCKERIZED_PROJECT_ROOT}<\/code>(t\u01b0\u01a1ng \u1ee9ng v\u1edbi th\u01b0 m\u1ee5c l\u00e0m vi\u1ec7c hi\u1ec7n t\u1ea1i).<\/p>\n<p>\u0110\u1ec3 ti\u1ebfp t\u1ee5c v\u1edbi v\u00ed d\u1ee5 \u1edf b\u01b0\u1edbc tr\u01b0\u1edbc, h\u00e3y t\u1ea1o m\u1ed9t t\u1ec7p m\u1edbi trong th\u01b0 m\u1ee5c g\u1ed1c c\u1ee7a b\u1ea1n c\u00f3 t\u00ean&nbsp;<code>dockerized.env<\/code>l\u00e0:<\/p>\n<pre class=\"wp-block-code\"><code>COMPOSE_FILE=\"${COMPOSE_FILE};${HOME}\/new-command.yml\"<\/code><\/pre>\n<p>Thao t\u00e1c n\u00e0y c\u1eadp nh\u1eadt&nbsp;<code>COMPOSE_FILE<\/code>c\u00e0i \u0111\u1eb7t \u0111\u1ec3 bao g\u1ed3m c\u1ea3 l\u1ec7nh t\u00edch h\u1ee3p s\u1eb5n (&nbsp;<code>${COMPOSE_FILE}<\/code>bi\u1ebfn) v\u00e0 l\u1ec7nh m\u1edbi (&nbsp;<code>${HOME}\/new-command.yml<\/code>). C\u00f3 th\u1ec3 th\u00eam c\u00e1c v\u1ecb tr\u00ed b\u1ed5 sung b\u1eb1ng c\u00e1ch s\u1eed d\u1ee5ng d\u1ea5u ch\u1ea5m ph\u1ea9y (&nbsp;<code>;<\/code>) l\u00e0m d\u1ea5u ph\u00e2n c\u00e1ch.<\/p>\n<p>B\u1ea1n c\u00f3 th\u1ec3 ki\u1ec3m tra v\u00ed d\u1ee5 n\u00e0y b\u1eb1ng c\u00e1ch ch\u1ea1y l\u1ec7nh m\u1edbi \u0111\u01b0\u1ee3c x\u00e1c \u0111\u1ecbnh nh\u01b0 hi\u1ec3n th\u1ecb b\u00ean d\u01b0\u1edbi, thay example.com b\u1eb1ng URL c\u1ee7a b\u1ea5t k\u1ef3 trang web ho\u1eb7c \u0111i\u1ec3m cu\u1ed1i API n\u00e0o m\u00e0 b\u1ea1n mu\u1ed1n xu\u1ea5t ra.<\/p>\n<pre class=\"wp-block-code\"><code>dockerized example example.com<\/code><\/pre>\n<p>V\u00ec&nbsp;<code>example<\/code>t\u00ean d\u1ecbch v\u1ee5 Dockerized \u0111\u01b0\u1ee3c \u00e1nh x\u1ea1 t\u1edbi l\u1ec7nh curl n\u00ean vi\u1ec7c ch\u1ea1y l\u1ec7nh th\u1ef1c s\u1ef1 di\u1ec5n ra&nbsp;<code>curl<\/code>t\u1eeb b\u00ean trong v\u00f9ng ch\u1ee9a Docker v\u00e0 hi\u1ec3n th\u1ecb n\u1ed9i dung c\u1ee7a trang web \u0111\u01b0\u1ee3c cung c\u1ea5p.<\/p>\n<p>\u0110\u1ec3 bi\u1ebft th\u00eam h\u01b0\u1edbng d\u1eabn v\u1ec1 c\u00e1ch x\u00e1c \u0111\u1ecbnh l\u1ec7nh m\u1edbi ho\u1eb7c \u0111i\u1ec1u ch\u1ec9nh c\u00e0i \u0111\u1eb7t Dockerized, h\u00e3y xem ph\u1ea7n&nbsp;<a href=\"https:\/\/github.com\/datastack-net\/dockerized#customization\" target=\"_blank\" rel=\"noreferrer noopener\">T\u00f9y ch\u1ec9nh<\/a>&nbsp;c\u1ee7a t\u1ec7p readme tr\u00ean GitHub.<\/p>\n<p>Ngu\u1ed3n: https:\/\/www.linode.com\/docs\/guides\/running-commands-with-dockerized\/<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Dockerized&nbsp;l\u00e0 m\u1ed9t ti\u1ec7n \u00edch ch\u1ea1y c\u00e1c l\u1ec7nh, tr\u00ecnh th\u00f4ng d\u1ecbch v\u00e0 c\u00e1c \u1ee9ng d\u1ee5ng kh\u00e1c trong m\u1ed9t v\u00f9ng ch\u1ee9a Docker. \u0110i\u1ec1u n\u00e0y gi\u00fap b\u1ea1n kh\u00f4ng ph\u1ea3i c\u00e0i \u0111\u1eb7t th\u1ee7 c\u00f4ng t\u1eebng l\u1ec7nh (v\u00e0 c\u00e1c l\u1ec7nh ph\u1ee5 thu\u1ed9c) v\u00e0o h\u1ec7 th\u1ed1ng c\u1ee5c b\u1ed9 c\u1ee7a b\u1ea1n. S\u1eed d\u1ee5ng Dockerized cho ph\u00e9p b\u1ea1n d\u00f9ng th\u1eed m\u1ed9t c\u00f4ng c\u1ee5<\/p>\n","protected":false},"author":1,"featured_media":36282,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[108],"tags":[],"class_list":["post-35050","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-containers"],"_links":{"self":[{"href":"https:\/\/jupitek.maudemo.vip\/index.php\/wp-json\/wp\/v2\/posts\/35050","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/jupitek.maudemo.vip\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/jupitek.maudemo.vip\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/jupitek.maudemo.vip\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/jupitek.maudemo.vip\/index.php\/wp-json\/wp\/v2\/comments?post=35050"}],"version-history":[{"count":0,"href":"https:\/\/jupitek.maudemo.vip\/index.php\/wp-json\/wp\/v2\/posts\/35050\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/jupitek.maudemo.vip\/index.php\/wp-json\/wp\/v2\/media\/36282"}],"wp:attachment":[{"href":"https:\/\/jupitek.maudemo.vip\/index.php\/wp-json\/wp\/v2\/media?parent=35050"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/jupitek.maudemo.vip\/index.php\/wp-json\/wp\/v2\/categories?post=35050"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/jupitek.maudemo.vip\/index.php\/wp-json\/wp\/v2\/tags?post=35050"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}