{"id":35033,"date":"2024-10-08T14:16:00","date_gmt":"2024-10-08T07:16:00","guid":{"rendered":"http:\/\/jupitek.maudemo.vip\/index.php\/2024\/10\/08\/access-an-apache-web-server-inside-a-lxd-container\/"},"modified":"2024-10-08T14:16:00","modified_gmt":"2024-10-08T07:16:00","slug":"access-an-apache-web-server-inside-a-lxd-container","status":"publish","type":"post","link":"https:\/\/jupitek.maudemo.vip\/index.php\/2024\/10\/08\/access-an-apache-web-server-inside-a-lxd-container\/","title":{"rendered":"Truy c\u1eadp Apache Web Server b\u00ean trong LXD Container"},"content":{"rendered":"<h2 id=\"what-is-lxd\">LXD l\u00e0 g\u00ec?<a href=\"https:\/\/www.linode.com\/docs\/guides\/access-an-apache-web-server-inside-a-lxd-container\/#what-is-lxd\"><\/a><\/h2>\n<p><a href=\"https:\/\/linuxcontainers.org\/lxd\/\" target=\"_blank\" rel=\"noreferrer noopener\">LXD<\/a>&nbsp;(ph\u00e1t \u00e2m l\u00e0 \u201cLex-Dee\u201d) l\u00e0 tr\u00ecnh qu\u1ea3n l\u00fd v\u00f9ng ch\u1ee9a h\u1ec7 th\u1ed1ng \u0111\u01b0\u1ee3c x\u00e2y d\u1ef1ng tr\u00ean LXC (Linux Containers) hi\u1ec7n \u0111ang \u0111\u01b0\u1ee3c Canonical h\u1ed7 tr\u1ee3. M\u1ee5c ti\u00eau c\u1ee7a LXD l\u00e0 cung c\u1ea5p tr\u1ea3i nghi\u1ec7m t\u01b0\u01a1ng t\u1ef1 nh\u01b0 m\u00e1y \u1ea3o nh\u01b0ng th\u00f4ng qua container h\u00f3a thay v\u00ec \u1ea3o h\u00f3a. So v\u1edbi Docker \u0111\u1ec3 ph\u00e2n ph\u1ed1i \u1ee9ng d\u1ee5ng, LXD cung c\u1ea5p ch\u1ee9c n\u0103ng h\u1ec7 \u0111i\u1ec1u h\u00e0nh g\u1ea7n nh\u01b0 \u0111\u1ea7y \u0111\u1ee7 v\u1edbi c\u00e1c t\u00ednh n\u0103ng b\u1ed5 sung nh\u01b0 \u1ea3nh ch\u1ee5p nhanh, di chuy\u1ec3n tr\u1ef1c ti\u1ebfp, qu\u1ea3n l\u00fd l\u01b0u tr\u1eef, v.v.<\/p>\n<p>L\u1ee3i \u00edch ch\u00ednh c\u1ee7a LXD l\u00e0 m\u1eadt \u0111\u1ed9 container cao m\u00e0 n\u00f3 c\u00f3 th\u1ec3 h\u1ed7 tr\u1ee3 v\u00e0 hi\u1ec7u su\u1ea5t m\u00e0 n\u00f3 mang l\u1ea1i so v\u1edbi m\u00e1y \u1ea3o. M\u1ed9t m\u00e1y t\u00ednh c\u00f3 RAM 2GB c\u00f3 th\u1ec3 h\u1ed7 tr\u1ee3 \u0111\u1ea7y \u0111\u1ee7 n\u1eeda t\u00e1 container. Ngo\u00e0i ra, LXD ch\u00ednh th\u1ee9c h\u1ed7 tr\u1ee3&nbsp;<a href=\"https:\/\/us.images.linuxcontainers.org\/\" target=\"_blank\" rel=\"noreferrer noopener\">h\u00ecnh \u1ea3nh container c\u1ee7a c\u00e1c b\u1ea3n ph\u00e2n ph\u1ed1i Linux ch\u00ednh<\/a>&nbsp;. Ch\u00fang ta c\u00f3 th\u1ec3 ch\u1ecdn b\u1ea3n ph\u00e2n ph\u1ed1i Linux v\u00e0 phi\u00ean b\u1ea3n \u0111\u1ec3 ch\u1ea1y trong container.<\/p>\n<p>H\u01b0\u1edbng d\u1eabn n\u00e0y tr\u00ecnh b\u00e0y c\u00e1ch thi\u1ebft l\u1eadp Linode \u0111\u1ec3 ho\u1ea1t \u0111\u1ed9ng v\u1edbi LXD, c\u00e1ch LXD ho\u1ea1t \u0111\u1ed9ng trong th\u1ef1c t\u1ebf v\u00e0 c\u00e1ch kh\u1eafc ph\u1ee5c c\u00e1c s\u1ef1 c\u1ed1 th\u01b0\u1eddng g\u1eb7p.<\/p>\n<p class=\"has-background\" style=\"background-color:#74f78c33\">Ghi ch\u00fa: \u0110\u1ec3 \u0111\u01a1n gi\u1ea3n, thu\u1eadt ng\u1eef&nbsp;<em>container<\/em>&nbsp;\u0111\u01b0\u1ee3c s\u1eed d\u1ee5ng trong to\u00e0n b\u1ed9 h\u01b0\u1edbng d\u1eabn n\u00e0y \u0111\u1ec3 m\u00f4 t\u1ea3 c\u00e1c container LXD.<\/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\/access-an-apache-web-server-inside-a-lxd-container\/#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<h2 id=\"mount-storage-volume\">G\u1eafn kh\u1ed1i l\u01b0\u1ee3ng l\u01b0u tr\u1eef<a href=\"https:\/\/www.linode.com\/docs\/guides\/access-an-apache-web-server-inside-a-lxd-container\/#mount-storage-volume\"><\/a><\/h2>\n<p>Khi thi\u1ebft l\u1eadp LXD, b\u1ea1n c\u00f3 th\u1ec3 l\u01b0u tr\u1eef d\u1eef li\u1ec7u container trong m\u1ed9t&nbsp;<a href=\"https:\/\/www.linode.com\/docs\/guides\/access-an-apache-web-server-inside-a-lxd-container\/#block-storage-volume\">\u1ed5 \u0111\u0129a ngo\u00e0i<\/a>&nbsp;(ch\u1eb3ng h\u1ea1n nh\u01b0 Block Storage Volume) ho\u1eb7c trong m\u1ed9t&nbsp;<a href=\"https:\/\/www.linode.com\/docs\/guides\/access-an-apache-web-server-inside-a-lxd-container\/#disk\">\u0110\u0129a<\/a>&nbsp;\u0111\u01b0\u1ee3c g\u1eafn v\u00e0o Linode c\u1ee7a b\u1ea1n.<\/p>\n<h3 id=\"block-storage-volume\">Kh\u1ed1i l\u01b0\u1ee3ng l\u01b0u tr\u1eef kh\u1ed1i<a href=\"https:\/\/www.linode.com\/docs\/guides\/access-an-apache-web-server-inside-a-lxd-container\/#block-storage-volume\"><\/a><\/h3>\n<ol>\n<li>L\u00e0m theo h\u01b0\u1edbng d\u1eabn&nbsp;<a href=\"https:\/\/www.linode.com\/docs\/products\/storage\/block-storage\/guides\/manage-volumes\/\">Xem, T\u1ea1o v\u00e0 X\u00f3a Kh\u1ed1i l\u01b0u tr\u1eef<\/a>&nbsp;v\u00e0 t\u1ea1o m\u1ed9t kh\u1ed1i l\u01b0u tr\u1eef c\u00f3 k\u00edch th\u01b0\u1edbc&nbsp;<em>\u00edt nh\u1ea5t l\u00e0 20GB<\/em>&nbsp;v\u00e0 \u0111\u00ednh k\u00e8m v\u00e0o Linode c\u1ee7a b\u1ea1n. Ghi l\u1ea1i t\u00ean thi\u1ebft b\u1ecb v\u00e0 \u0111\u01b0\u1eddng d\u1eabn \u0111\u1ebfn Kh\u1ed1i l\u01b0u tr\u1eef.Quan tr\u1ecdng<strong>Kh\u00f4ng<\/strong>&nbsp;\u0111\u1ecbnh d\u1ea1ng \u1ed5 \u0111\u0129a v\u00e0 kh\u00f4ng th\u00eam n\u00f3 v\u00e0o&nbsp;<code>\/etc\/fstab<\/code>.<img decoding=\"async\" src=\"https:\/\/www.linode.com\/docs\/guides\/access-an-apache-web-server-inside-a-lxd-container\/add-volume-for-disk-storage_hu7db11523a02a0ee56d99e258e4719da3_22509_1388x0_resize_q71_bgfafafc_catmullrom_3.jpg\" alt=\"Th\u00eam m\u1ed9t \u1ed5 \u0111\u0129a cho b\u1ed9 nh\u1edb \u0111\u0129a\"><\/li>\n<li>Ch\u1ec9nh s\u1eeda H\u1ed3 s\u01a1 c\u1ea5u h\u00ecnh c\u1ee7a b\u1ea1n v\u00e0 trong&nbsp;<strong>C\u00e0i \u0111\u1eb7t kh\u1edfi \u0111\u1ed9ng,<\/strong>&nbsp;h\u00e3y ch\u1ecdn&nbsp;<strong>GRUB 2<\/strong>&nbsp;l\u00e0m h\u1ea1t nh\u00e2n c\u1ee7a b\u1ea1n. Xem&nbsp;<a href=\"https:\/\/www.linode.com\/docs\/products\/compute\/compute-instances\/guides\/manage-the-kernel\/\">Ch\u1ea1y h\u1ea1t nh\u00e2n ph\u00e2n ph\u1ed1i tr\u00ean KVM Linode<\/a>&nbsp;\u0111\u1ec3 bi\u1ebft th\u00eam th\u00f4ng tin.<\/li>\n<li>Kh\u1edfi \u0111\u1ed9ng l\u1ea1i Linode c\u1ee7a b\u1ea1n t\u1eeb Linode Manager.<\/li>\n<\/ol>\n<h3 id=\"disk\">\u0110\u0129a<a href=\"https:\/\/www.linode.com\/docs\/guides\/access-an-apache-web-server-inside-a-lxd-container\/#disk\"><\/a><\/h3>\n<ol>\n<li>Trong Linode Manager, t\u00ecm ph\u1ea7n&nbsp;<strong>Disks<\/strong>&nbsp;v\u00e0 nh\u1ea5p v\u00e0o&nbsp;<strong>Create a new disk<\/strong>&nbsp;.<img decoding=\"async\" src=\"https:\/\/www.linode.com\/docs\/guides\/access-an-apache-web-server-inside-a-lxd-container\/create-new-disk_hu5364473e5187009a40e138a38f639f30_34252_1388x0_resize_q71_bgfafafc_catmullrom_3.jpg\" alt=\"T\u1ea1o m\u1ed9t \u0111\u0129a Linode\">Ghi ch\u00faN\u1ebfu \u0111\u0129a ph\u00e2n ph\u1ed1i Linode c\u1ee7a b\u1ea1n \u0111\u00e3 \u0111\u01b0\u1ee3c ph\u00e2n b\u1ed5 100% dung l\u01b0\u1ee3ng \u0111\u0129a kh\u1ea3 d\u1ee5ng, b\u1ea1n s\u1ebd c\u1ea7n ph\u1ea3i thay \u0111\u1ed5i k\u00edch th\u01b0\u1edbc \u0111\u0129a tr\u01b0\u1edbc khi c\u00f3 th\u1ec3 t\u1ea1o \u0111\u0129a l\u01b0u tr\u1eef. Xem&nbsp;<a href=\"https:\/\/www.linode.com\/docs\/products\/compute\/compute-instances\/guides\/disks-and-storage\/#resize-a-disk\">Thay \u0111\u1ed5i k\u00edch th\u01b0\u1edbc \u0111\u0129a<\/a>&nbsp;\u0111\u1ec3 bi\u1ebft th\u00eam th\u00f4ng tin.<\/li>\n<li>Ch\u1ec9nh s\u1eeda H\u1ed3 s\u01a1 c\u1ea5u h\u00ecnh Linode c\u1ee7a b\u1ea1n. Trong&nbsp;<strong>Block Device Assignment<\/strong>&nbsp;, g\u00e1n \u0111\u0129a m\u1edbi c\u1ee7a b\u1ea1n cho&nbsp;<code>\/dev\/sdc<\/code>. Ghi l\u1ea1i \u0111\u01b0\u1eddng d\u1eabn n\u00e0y, b\u1ea1n s\u1ebd c\u1ea7n \u0111\u01b0\u1eddng d\u1eabn n\u00e0y khi c\u1ea5u h\u00ecnh LXD \u1edf ph\u1ea7n ti\u1ebfp theo.<img loading=\"lazy\" decoding=\"async\" loading=\"lazy\" src=\"https:\/\/www.linode.com\/docs\/guides\/access-an-apache-web-server-inside-a-lxd-container\/block-device-assignment.png\" alt=\"Ph\u00e2n c\u00f4ng thi\u1ebft b\u1ecb kh\u1ed1i\" width=\"492\" height=\"336\"><\/li>\n<li>Trong&nbsp;<strong>C\u00e0i \u0111\u1eb7t kh\u1edfi \u0111\u1ed9ng,<\/strong>&nbsp;ch\u1ecdn&nbsp;<strong>GRUB 2<\/strong>&nbsp;l\u00e0m h\u1ea1t nh\u00e2n c\u1ee7a b\u1ea1n.<\/li>\n<li>Kh\u1edfi \u0111\u1ed9ng l\u1ea1i Linode c\u1ee7a b\u1ea1n t\u1eeb Linode Manager.<\/li>\n<\/ol>\n<h2 id=\"initialize-lxd\">Kh\u1edfi t\u1ea1o LXD<a href=\"https:\/\/www.linode.com\/docs\/guides\/access-an-apache-web-server-inside-a-lxd-container\/#initialize-lxd\"><\/a><\/h2>\n<p>1.C\u00e0i \u0111\u1eb7t c\u00e1c g\u00f3i&nbsp;<code>lxd<\/code>v\u00e0&nbsp;<code>zfsutils-linux<\/code>:<\/p>\n<pre class=\"wp-block-code\"><code><code>sudo apt install lxd zfsutils-linux<\/code><\/code><\/pre>\n<p>2.Th\u00eam ng\u01b0\u1eddi d\u00f9ng Unix c\u1ee7a b\u1ea1n v\u00e0o&nbsp;<code>lxd<\/code>nh\u00f3m:<\/p>\n<pre class=\"wp-block-code\"><code><code>sudo usermod -a -G lxd username<\/code><\/code><\/pre>\n<p>3.B\u1eaft \u0111\u1ea7u phi\u00ean SSH m\u1edbi \u0111\u1ec3 thay \u0111\u1ed5i n\u00e0y c\u00f3 hi\u1ec7u l\u1ef1c:<\/p>\n<p>4.Ch\u1ea1y&nbsp;<code>lxd init<\/code>\u0111\u1ec3 kh\u1edfi t\u1ea1o LXD:<\/p>\n<pre class=\"wp-block-code\"><code><code>sudo lxd init <\/code><\/code><\/pre>\n<p>B\u1ea1n s\u1ebd \u0111\u01b0\u1ee3c nh\u1eafc nhi\u1ec1u l\u1ea7n trong qu\u00e1 tr\u00ecnh kh\u1edfi t\u1ea1o. Ch\u1ecdn m\u1eb7c \u0111\u1ecbnh cho t\u1ea5t c\u1ea3 c\u00e1c t\u00f9y ch\u1ecdn&nbsp;<strong>ngo\u1ea1i tr\u1eeb<\/strong>&nbsp;<code>Use existing block device?<\/code>&nbsp;\u0110\u1ed1i v\u1edbi t\u00f9y ch\u1ecdn n\u00e0y, h\u00e3y ch\u1ecdn&nbsp;<strong>c\u00f3<\/strong>&nbsp;r\u1ed3i nh\u1eadp \u0111\u01b0\u1eddng d\u1eabn \u0111\u1ebfn \u1ed5 l\u01b0u tr\u1eef \u0111\u00e3 th\u00eam \u1edf ph\u1ea7n tr\u01b0\u1edbc.<\/p>\n<h2 id=\"lxd-commands\">L\u1ec7nh LXD<a href=\"https:\/\/www.linode.com\/docs\/guides\/access-an-apache-web-server-inside-a-lxd-container\/#lxd-commands\"><\/a><\/h2>\n<p>1.Li\u1ec7t k\u00ea t\u1ea5t c\u1ea3 c\u00e1c container:<\/p>\n<pre class=\"wp-block-code\"><code>lxc list<\/code><\/pre>\n<pre class=\"wp-block-code\"><code>Generating a client certificate. This may take a minute...\nIf this is your first time using LXD, you should also run: sudo lxd init\nTo start your first container, try: lxc launch ubuntu:16.04\n\n+------+-------+------+------+------+-----------+\n| NAME | STATE | IPV4 | IPV6 | TYPE | SNAPSHOTS |\n+------+-------+------+------+------+-----------+\n<\/code><\/pre>\n<p>2.Li\u1ec7t k\u00ea t\u1ea5t c\u1ea3 c\u00e1c h\u00ecnh \u1ea3nh container c\u00f3 s\u1eb5n:<\/p>\n<pre class=\"wp-block-code\"><code>lxc image list images:<\/code><\/pre>\n<pre class=\"wp-block-code\"><code>+---------------------------------+--------------+--------+------------------------------------------+---------+----------+-------------------------------+\n|              ALIAS              | FINGERPRINT  | PUBLIC |               DESCRIPTION                |  ARCH   |   SIZE   |          UPLOAD DATE          |\n+---------------------------------+--------------+--------+------------------------------------------+---------+----------+-------------------------------+\n| alpine\/3.4 (3 more)             | 39a3bf44c9d8 | yes    | Alpine 3.4 amd64 (20180126_17:50)        | x86_64  | 2.04MB   | Jan 26, 2018 at 12:00am (UTC) |\n+---------------------------------+--------------+--------+------------------------------------------+---------+----------+-------------------------------+\n| alpine\/3.4\/armhf (1 more)       | 9fe7c201924c | yes    | Alpine 3.4 armhf (20170111_20:27)        | armv7l  | 1.58MB   | Jan 11, 2017 at 12:00am (UTC) |\n+---------------------------------+--------------+--------+------------------------------------------+---------+----------+-------------------------------+\n| alpine\/3.4\/i386 (1 more)        | d39f2f2ba547 | yes    | Alpine 3.4 i386 (20180126_17:50)         | i686    | 1.88MB   | Jan 26, 2018 at 12:00am (UTC) |\n+---------------------------------+--------------+--------+------------------------------------------+---------+----------+-------------------------------+\n| alpine\/3.5 (3 more)             | 5533a5247551 | yes    | Alpine 3.5 amd64 (20180126_17:50)        | x86_64  | 1.70MB   | Jan 26, 2018 at 12:00am (UTC) |\n+---------------------------------+--------------+--------+------------------------------------------+---------+----------+-------------------------------+\n| alpine\/3.5\/i386 (1 more)        | 5e93d5f4cae1 | yes    | Alpine 3.5 i386 (20180126_17:50)         | i686    | 1.73MB   | Jan 26, 2018 at 12:00am (UTC) |\n+---------------------------------+--------------+--------+------------------------------------------+---------+----------+-------------------------------+\n| alpine\/3.6 (3 more)             | 5010616d9a24 | yes    | Alpine 3.6 amd64 (20180126_17:50)        | x86_64  | 1.73MB   | Jan 26, 2018 at 12:00am (UTC) |\n+---------------------------------+--------------+--------+------------------------------------------+---------+----------+-------------------------------+\n.....................................................................<\/code><\/pre>\n<p class=\"has-background\" style=\"background-color:#74f78c33\">Ghi ch\u00fa: Hai c\u1ed9t \u0111\u1ea7u ti\u00ean cho b\u00ed danh v\u00e0 d\u1ea5u v\u00e2n tay cung c\u1ea5p m\u1ed9t m\u00e3 \u0111\u1ecbnh danh c\u00f3 th\u1ec3 \u0111\u01b0\u1ee3c s\u1eed d\u1ee5ng \u0111\u1ec3 ch\u1ec9 \u0111\u1ecbnh h\u00ecnh \u1ea3nh ch\u1ee9a khi kh\u1edfi ch\u1ea1y n\u00f3.<\/p>\n<p>3.Kh\u1edfi ch\u1ea1y m\u1ed9t container m\u1edbi c\u00f3 t\u00ean&nbsp;<code>mycontainer<\/code>:<\/p>\n<pre class=\"wp-block-code\"><code>lxc launch ubuntu:16.04 mycontainer<\/code><\/pre>\n<pre class=\"wp-block-code\"><code>Creating mycontainer\nStarting mycontainer\n<\/code><\/pre>\n<p>4.Ki\u1ec3m tra danh s\u00e1ch container \u0111\u1ec3 \u0111\u1ea3m b\u1ea3o container m\u1edbi \u0111ang ch\u1ea1y:<\/p>\n<pre class=\"wp-block-code\"><code>lxc list<\/code><\/pre>\n<pre class=\"wp-block-code\"><code>+-------------+---------+-----------------------+---------------------------+------------+-----------+\n|    NAME     |  STATE  |         IPV4          |          IPV6             |    TYPE    | SNAPSHOTS |\n+-------------+---------+-----------------------+---------------------------+------------+-----------+\n| mycontainer | RUNNING | 10.142.148.244 (eth0) | fde5:5d27:...:1371 (eth0) | PERSISTENT | 0         |\n+-------------+---------+-----------------------+---------------------------+------------+-----------+<\/code><\/pre>\n<p>5.Th\u1ef1c hi\u1ec7n c\u00e1c l\u1ec7nh c\u01a1 b\u1ea3n trong&nbsp;<code>mycontainer<\/code>:<\/p>\n<pre class=\"wp-block-code\"><code>lxc exec mycontainer -- apt update\nlxc exec mycontainer -- apt upgrade<\/code><\/pre>\n<p class=\"has-background\" style=\"background-color:#74f78c33\">Ghi ch\u00fa: C\u00e1c k\u00fd t\u1ef1 n\u00e0y&nbsp;<code>--<\/code>h\u01b0\u1edbng d\u1eabn&nbsp;<code>lxc<\/code>l\u1ec7nh kh\u00f4ng ph\u00e2n t\u00edch b\u1ea5t k\u1ef3 tham s\u1ed1 d\u00f2ng l\u1ec7nh n\u00e0o n\u1eefa.<\/p>\n<p>6.M\u1edf phi\u00ean shell trong&nbsp;<code>mycontainer<\/code>:<\/p>\n<pre class=\"wp-block-code\"><code>lxc exec mycontainer -- sudo --login --user ubuntu\n<\/code><\/pre>\n<pre class=\"wp-block-code\"><code>To run a command as administrator (user \"root\"), use \"sudo &lt;command&gt;\".\nSee \"man sudo_root\" for details.\n\nubuntu@mycontainer:~$<\/code><\/pre>\n<p class=\"has-background\" style=\"background-color:#74f78c33\">Ghi ch\u00fa: Theo m\u1eb7c \u0111\u1ecbnh, \u1ea3nh container Ubuntu c\u00f3 t\u00e0i kho\u1ea3n kh\u00f4ng ph\u1ea3i root v\u1edbi t\u00ean ng\u01b0\u1eddi d\u00f9ng&nbsp;<code>ubuntu<\/code>. T\u00e0i kho\u1ea3n n\u00e0y c\u00f3 th\u1ec3 s\u1eed d\u1ee5ng&nbsp;<code>sudo<\/code>v\u00e0 kh\u00f4ng y\u00eau c\u1ea7u m\u1eadt kh\u1ea9u \u0111\u1ec3 th\u1ef1c hi\u1ec7n c\u00e1c t\u00e1c v\u1ee5 qu\u1ea3n tr\u1ecb.L\u1ec7nh n\u00e0y&nbsp;<code>sudo<\/code>cung c\u1ea5p th\u00f4ng tin \u0111\u0103ng nh\u1eadp v\u00e0o t\u00e0i kho\u1ea3n hi\u1ec7n c\u00f3&nbsp;<code>ubuntu<\/code>.<\/p>\n<p>7.Xem nh\u1eadt k\u00fd container:<\/p>\n<pre class=\"wp-block-code\"><code>lxc info mycontainer --show-log\n<\/code><\/pre>\n<p>8.D\u1eebng container:<\/p>\n<pre class=\"wp-block-code\"><code>lxc stop mycontainer<\/code><\/pre>\n<p>9.Th\u00e1o h\u1ed9p \u0111\u1ef1ng:<\/p>\n<pre class=\"wp-block-code\"><code>lxc delete mycontainer\n<\/code><\/pre>\n<h2 id=\"apache-web-server-with-lxd\">M\u00e1y ch\u1ee7 web Apache v\u1edbi LXD<a href=\"https:\/\/www.linode.com\/docs\/guides\/access-an-apache-web-server-inside-a-lxd-container\/#apache-web-server-with-lxd\"><\/a><\/h2>\n<p>Ph\u1ea7n n\u00e0y s\u1ebd t\u1ea1o m\u1ed9t container, c\u00e0i \u0111\u1eb7t m\u00e1y ch\u1ee7 web Apache v\u00e0 th\u00eam&nbsp;<code>iptables<\/code>c\u00e1c quy t\u1eafc ph\u00f9 h\u1ee3p \u0111\u1ec3 \u0111\u01b0a ra phi\u00ean b\u1ea3n sau 80.<\/p>\n<p>1.Kh\u1edfi ch\u1ea1y m\u1ed9t container m\u1edbi:<\/p>\n<pre class=\"wp-block-code\"><code><code>lxc launch ubuntu:16.04 web<\/code><\/code><\/pre>\n<p>2.C\u1eadp nh\u1eadt danh s\u00e1ch g\u00f3i trong container.<\/p>\n<pre class=\"wp-block-code\"><code><code>lxc exec web -- apt update<\/code><\/code><\/pre>\n<p>3.C\u00e0i \u0111\u1eb7t Apache trong v\u00f9ng ch\u1ee9a LXD.<\/p>\n<pre class=\"wp-block-code\"><code><code>lxc exec web -- apt install apache2<\/code><\/code><\/pre>\n<p>4.Th\u00eam&nbsp;<code>iptables<\/code>quy t\u1eafc \u0111\u1ec3 hi\u1ec3n th\u1ecb c\u1ed5ng 80. Khi ai \u0111\u00f3 k\u1ebft n\u1ed1i v\u1edbi c\u1ed5ng 80 th\u00f4ng qua \u0111\u1ecba ch\u1ec9 IP c\u00f4ng khai, quy t\u1eafc n\u00e0y s\u1ebd chuy\u1ec3n h\u01b0\u1edbng h\u1ecd \u0111\u1ebfn c\u1ed5ng 80 c\u1ee7a v\u00f9ng ch\u1ee9a.B\u1ea1n s\u1ebd c\u1ea7n ph\u1ea3i thay th\u1ebf&nbsp;<code>your_public_ip<\/code>v\u00e0&nbsp;<code>your_container_ip<\/code>b\u1eb1ng IP c\u00f4ng khai v\u00e0 IP v\u00f9ng ch\u1ee9a t\u01b0\u01a1ng \u1ee9ng trong l\u1ec7nh n\u00e0y.<\/p>\n<pre class=\"wp-block-code\"><code>PORT=80 PUBLIC_IP=your_public_ip CONTAINER_IP=your_container_ip sudo -E bash -c 'iptables -t nat -I PREROUTING -i eth0 -p TCP -d $PUBLIC_IP --dport $PORT -j DNAT --to-destination $CONTAINER_IP:$PORT -m comment --comment \"forward to the Apache2 container\"'\n<\/code><\/pre>\n<p>5.Duy&nbsp;<code>iptables<\/code>tr\u00ec quy t\u1eafc khi kh\u1edfi \u0111\u1ed9ng l\u1ea1i b\u1eb1ng c\u00e1ch c\u00e0i \u0111\u1eb7t&nbsp;<code>iptables-persistent<\/code>. Khi \u0111\u01b0\u1ee3c nh\u1eafc l\u01b0u quy t\u1eafc IPv4 v\u00e0 IPv6, h\u00e3y nh\u1ea5p v\u00e0o&nbsp;<strong>C\u00f3<\/strong>&nbsp;\u0111\u1ec3 l\u01b0u ch\u00fang.<\/p>\n<pre class=\"wp-block-code\"><code>sudo apt install iptables-persistent<\/code><\/pre>\n<p>6.T\u1eeb m\u00e1y t\u00ednh c\u1ee5c b\u1ed9 c\u1ee7a b\u1ea1n, h\u00e3y \u0111i\u1ec1u h\u01b0\u1edbng \u0111\u1ebfn \u0111\u1ecba ch\u1ec9 IP c\u00f4ng khai c\u1ee7a Linode trong tr\u00ecnh duy\u1ec7t web. B\u1ea1n s\u1ebd th\u1ea5y trang Apache m\u1eb7c \u0111\u1ecbnh:<img decoding=\"async\" src=\"https:\/\/www.linode.com\/docs\/guides\/access-an-apache-web-server-inside-a-lxd-container\/apache-server-running-in-lxd-container_hud6e67d483aeeb49e26af439a782c6395_69563_1388x0_resize_q71_bgfafafc_catmullrom_3.jpg\" alt=\"Trang web c\u1ee7a m\u00e1y ch\u1ee7 Apache \u0111ang ch\u1ea1y trong m\u1ed9t container\"><\/p>\n<h2 id=\"next-steps\">C\u00e1c b\u01b0\u1edbc ti\u1ebfp theo<\/h2>\n<p>N\u1ebfu b\u1ea1n \u0111\u1ecbnh s\u1eed d\u1ee5ng m\u1ed9t trang web duy nh\u1ea5t, th\u00ec m\u1ed9t&nbsp;<code>iptables<\/code>quy t\u1eafc duy nh\u1ea5t cho v\u00f9ng ch\u1ee9a trang web s\u1ebd \u0111\u1ee7. N\u1ebfu b\u1ea1n \u0111\u1ecbnh s\u1eed d\u1ee5ng nhi\u1ec1u trang web, b\u1ea1n s\u1ebd c\u1ea7n c\u00e0i \u0111\u1eb7t m\u00e1y ch\u1ee7 web nh\u01b0 NGINX v\u00e0 thi\u1ebft l\u1eadp&nbsp;<a href=\"https:\/\/docs.nginx.com\/nginx\/admin-guide\/web-server\/reverse-proxy\/\" target=\"_blank\" rel=\"noreferrer noopener\">proxy ng\u01b0\u1ee3c<\/a>&nbsp;trong v\u00f9ng ch\u1ee9a.&nbsp;<code>iptables<\/code>Sau \u0111\u00f3, quy t\u1eafc s\u1ebd chuy\u1ec3n h\u01b0\u1edbng \u0111\u1ebfn v\u00f9ng ch\u1ee9a n\u00e0y.<\/p>\n<h2 id=\"more-information\">Th\u00f4ng tin th\u00eam<\/h2>\n<p>B\u1ea1n c\u00f3 th\u1ec3 mu\u1ed1n tham kh\u1ea3o c\u00e1c ngu\u1ed3n sau \u0111\u1ec3 bi\u1ebft th\u00eam th\u00f4ng tin v\u1ec1 ch\u1ee7 \u0111\u1ec1 n\u00e0y. M\u1eb7c d\u00f9 ch\u00fang t\u00f4i cung c\u1ea5p v\u1edbi hy v\u1ecdng r\u1eb1ng ch\u00fang s\u1ebd h\u1eefu \u00edch, nh\u01b0ng xin l\u01b0u \u00fd r\u1eb1ng ch\u00fang t\u00f4i kh\u00f4ng th\u1ec3 \u0111\u1ea3m b\u1ea3o t\u00ednh ch\u00ednh x\u00e1c ho\u1eb7c t\u00ednh k\u1ecbp th\u1eddi c\u1ee7a c\u00e1c t\u00e0i li\u1ec7u \u0111\u01b0\u1ee3c l\u01b0u tr\u1eef b\u00ean ngo\u00e0i.<\/p>\n<ul>\n<li><a href=\"https:\/\/linuxcontainers.org\/lxd\/\" target=\"_blank\" rel=\"noreferrer noopener\">Gi\u1edbi thi\u1ec7u LXD<\/a><\/li>\n<li><a href=\"https:\/\/stgraber.org\/2016\/03\/11\/lxd-2-0-blog-post-series-012\/\" target=\"_blank\" rel=\"noreferrer noopener\">Chu\u1ed7i b\u00e0i \u0111\u0103ng tr\u00ean blog v\u1ec1 LXD 2.0<\/a><\/li>\n<li><a href=\"https:\/\/discuss.linuxcontainers.org\/\" target=\"_blank\" rel=\"noreferrer noopener\">C\u1ed9ng \u0111\u1ed3ng h\u1ed7 tr\u1ee3 LXD<\/a><\/li>\n<li><a href=\"https:\/\/linuxcontainers.org\/lxd\/try-it\/\" target=\"_blank\" rel=\"noreferrer noopener\">H\u00e3y th\u1eed LXD tr\u1ef1c tuy\u1ebfn<\/a><\/li>\n<\/ul>\n<p>Ngu\u1ed3n: https:\/\/www.linode.com\/docs\/guides\/access-an-apache-web-server-inside-a-lxd-container\/<\/p>\n","protected":false},"excerpt":{"rendered":"<p>LXD l\u00e0 g\u00ec? LXD&nbsp;(ph\u00e1t \u00e2m l\u00e0 \u201cLex-Dee\u201d) l\u00e0 tr\u00ecnh qu\u1ea3n l\u00fd v\u00f9ng ch\u1ee9a h\u1ec7 th\u1ed1ng \u0111\u01b0\u1ee3c x\u00e2y d\u1ef1ng tr\u00ean LXC (Linux Containers) hi\u1ec7n \u0111ang \u0111\u01b0\u1ee3c Canonical h\u1ed7 tr\u1ee3. M\u1ee5c ti\u00eau c\u1ee7a LXD l\u00e0 cung c\u1ea5p tr\u1ea3i nghi\u1ec7m t\u01b0\u01a1ng t\u1ef1 nh\u01b0 m\u00e1y \u1ea3o nh\u01b0ng th\u00f4ng qua container h\u00f3a thay v\u00ec \u1ea3o h\u00f3a. So v\u1edbi Docker \u0111\u1ec3<\/p>\n","protected":false},"author":1,"featured_media":36262,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[108],"tags":[],"class_list":["post-35033","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\/35033","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=35033"}],"version-history":[{"count":0,"href":"https:\/\/jupitek.maudemo.vip\/index.php\/wp-json\/wp\/v2\/posts\/35033\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/jupitek.maudemo.vip\/index.php\/wp-json\/wp\/v2\/media\/36262"}],"wp:attachment":[{"href":"https:\/\/jupitek.maudemo.vip\/index.php\/wp-json\/wp\/v2\/media?parent=35033"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/jupitek.maudemo.vip\/index.php\/wp-json\/wp\/v2\/categories?post=35033"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/jupitek.maudemo.vip\/index.php\/wp-json\/wp\/v2\/tags?post=35033"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}