{"id":1048,"date":"2021-06-24T18:25:17","date_gmt":"2021-06-24T11:25:17","guid":{"rendered":"http:\/\/blog.iwayvietnam.com\/tuanta\/?p=1048"},"modified":"2023-11-24T11:21:13","modified_gmt":"2023-11-24T04:21:13","slug":"docker-co-kho-khong","status":"publish","type":"post","link":"https:\/\/blog.iwayvietnam.com\/tuanta\/2021\/06\/docker-co-kho-khong\/","title":{"rendered":"Docker c\u00f3 kh\u00f3 kh\u00f4ng? :)"},"content":{"rendered":"<p>C\u00e2u tr\u1ea3 l\u1eddi: v\u1eeba kh\u00f3, l\u1ea1i v\u1eeba kh\u00f4ng kh\u00f3 l\u1eafm \ud83d\ude09<\/p>\n<p>Kh\u00f3 nh\u1ea5t l\u00e0 v\u00ec v\u1edbi m\u1ed9t \u0111\u1ee9a l\u01b0\u1eddi nh\u01b0 t\u1edb, g\u1ea7n n\u1eeda \u0111\u1eddi ng\u01b0\u1eddi r\u1ed3i, b\u1eaft \u0111\u1ea7u chuy\u1ec3n qua h\u1ec7 m\u1ea3i ch\u01a1i, ch\u00e9m gi\u00f3, ham nh\u1eefng m\u00f3n v\u1eadn \u0111\u1ed9ng vui kh\u1ecfe nh\u01b0 \u0111\u1ea1p xe, ch\u1ea1y b\u1ed9&#8230; r\u1ed3i m\u00e1u dong ch\u01a1i lang thang t\u1eeb thu\u1edf thi\u1ebfu th\u1eddi quay tr\u1edf l\u1ea1i \ud83d\ude00<\/p>\n<p>Nh\u01b0ng m\u00e0 cu\u1ed9c s\u1ed1ng th\u00ec v\u1eabn ph\u1ea3i l\u00e0m vi\u1ec7c, kh\u00f4ng l\u1ea5y g\u00ec m\u00e0 \u0111i ch\u01a1i \ud83d\ude42 v\u00e0 quan tr\u1ecdng nh\u1ea5t l\u00e0 c\u1ea7n lu\u00f4n t\u00ecm \u0111\u01b0\u1ee3c ni\u1ec1m vui trong nh\u1eefng vi\u1ec7c m\u00ecnh l\u00e0m, n\u00ean t\u1edb quy\u1ebft \u0111\u1ecbnh b\u1eaft \u0111\u1ea7u m\u00e0y m\u00f2.<\/p>\n<p>M\u00f3n Docker n\u00e0y k\u1ec3 ra c\u0169ng ch\u1ea3 c\u00f3 g\u00ec g\u1ecdi l\u00e0 m\u1edbi, c\u00f3 m\u1eb7t tr\u00ean d\u01b0\u1edbi ch\u1ee5c n\u0103m r\u1ed3i, t\u1eebng l\u00e0 hot-trend v\u00e0 hi\u1ec7n v\u1eabn \u0111\u01b0\u1ee3c anh em devOps \u01b0a d\u00f9ng (d\u00f9 \u0111\u00e3 xu\u1ea5t hi\u1ec7n m\u1ed9t s\u1ed1 c\u00f4ng ngh\u1ec7 m\u1edbi \u0111\u01b0\u1ee3c \u0111\u00e1nh gi\u00e1 l\u00e0 c\u00f3 kh\u1ea3 n\u0103ng thay th\u1ebf t\u1ed1t h\u01a1n &#8211; t\u1edb s\u1ebd vi\u1ebft trong b\u00e0i kh\u00e1c, khi c\u00f3 h\u1ee9ng)<\/p>\n<p>C\u1ea3m nh\u1eadn \u0111\u1ea7u ti\u00ean l\u00e0 Docker qu\u1ea3 kh\u00f4ng h\u1ed5 danh l\u00e0 m\u1ed9t trong nh\u1eefng n\u1ec1n t\u1ea3ng hot nh\u1ea5t nh\u1eefng n\u0103m g\u1ea7n \u0111\u00e2y, documentation \u0111\u1ea7y \u0111\u1ee7, c\u1ed9ng v\u1edbi h\u1eb1ng h\u00e0 sa s\u1ed1 nh\u1eefng b\u00e0i vi\u1ebft gi\u00e1 tr\u1ecb t\u1eeb nh\u1eefng ng\u01b0\u1eddi c\u00f3 kinh nghi\u1ec7m. T\u1edb google trong 1\/2 n\u1ed1t nh\u1ea1c ra ngay h\u01b0\u1edbng d\u1eabn c\u00e0i \u0111\u1eb7t: <a href=\"https:\/\/docs.docker.com\/engine\/install\/\">https:\/\/docs.docker.com\/engine\/install\/<\/a> v\u00e0 m\u1ed9t Fedora contributor l\u00e2u n\u0103m th\u00ec ch\u1eafc ch\u1eafn ph\u1ea3i c\u00e0i th\u1eed l\u00ean con laptop ch\u1ea1y Fedora 34 r\u1ed3i \ud83d\ude42 (m\u1ed9t s\u1ed1 th\u1eed nghi\u1ec7m sau n\u00e0y t\u1edb c\u00e0i th\u1eed l\u00ean c\u1ea3 CentOS 7 v\u00e0 Rocky Linux 8)<\/p>\n<p>Sau khi th\u1ef1c hi\u1ec7n thi\u1ebft \u0111\u1eb7t m\u00f4i tr\u01b0\u1eddng \u0111\u1ea7y \u0111\u1ee7 v\u00e0 ch\u1ea1y th\u1eed container \u0111\u1ea7u ti\u00ean &#8220;hello-world&#8221;, t\u1edb b\u1eaft \u0111\u1ea7u m\u00f2 m\u1eabm t\u00ecm hi\u1ec3u c\u00e1c kh\u00e1i ni\u1ec7m c\u01a1 b\u1ea3n th\u1ebf n\u00e0o l\u00e0 container, th\u1ebf n\u00e0o l\u00e0 image&#8230; v\u00e0 ph\u00e1t hi\u1ec7n ra th\u1ebf gi\u1edbi <a href=\"https:\/\/hub.docker.com\/\">Docker hub<\/a> v\u1edbi r\u1ea5t nhi\u1ec1u image \u0111\u01b0\u1ee3c c\u1ed9ng \u0111\u1ed3ng \u0111\u00f3ng g\u00f3i s\u1eb5n \u0111\u01b0a l\u00ean c\u00e1c repo v\u00e0 share cho m\u1ecdi ng\u01b0\u1eddi c\u00f9ng s\u1eed d\u1ee5ng (c\u00e1c c\u00f4ng ty c\u0169ng c\u00f3 th\u1ec3 l\u1eadp c\u00e1c kho private, th\u1eadm ch\u00ed l\u1eadp nguy\u00ean 1 c\u00e1i nh\u01b0 Docker hub \u0111\u1ec3 \u0111\u01b0a c\u00e1c image kh\u00f4ng public c\u1ee7a m\u00ecnh l\u00ean). Tr\u1ea3i nghi\u1ec7m r\u1ea5t nhi\u1ec1u c\u00e1c m\u00f3n hot open source mu\u1ed1n d\u00f9ng th\u1eed th\u00ec h\u1ea7u nh\u01b0 \u0111\u1ec1u t\u00ecm th\u1ea5y tr\u00ean Docker hub ho\u1eb7c public \u1edf \u0111\u00e2u \u0111\u00f3; \u0111i\u1ec1u n\u00e0y qu\u1ea3 th\u1ef1c n\u1eb1m ngo\u00e0i s\u1ee9c t\u01b0\u1edfng t\u01b0\u1ee3ng c\u1ee7a t\u1edb tr\u01b0\u1edbc \u0111\u00e2y; m\u1ed9t c\u1ea3m gi\u00e1c r\u1ea5t chi l\u00e0 &#8220;yomost&#8221;, t\u1eeb gi\u1edd vi\u1ec7c tr\u1ea3i nghi\u1ec7m m\u1ed9t th\u1ee9 hay ho m\u1edbi tr\u1edf n\u00ean \u0111\u01a1n gi\u1ea3n h\u01a1n bao gi\u1edd h\u1ebft.<\/p>\n<p>Sau m\u1ed9t th\u1eddi gian t\u00ecm hi\u1ec3u, v\u1edbi b\u1ea3n t\u00ednh t\u00f2 m\u00f2 v\u00e0 ham th\u00edch \u0111\u00f3ng g\u00f3p trong c\u00e1c d\u1ef1 \u00e1n ngu\u1ed3n m\u1edf \u0111\u00f4i ch\u1ee5c n\u0103m nay, t\u1edb b\u1eaft \u0111\u1ea7u t\u1ef1 h\u1ecfi l\u00e0m th\u1ebf n\u00e0o \u0111\u1ec3 t\u1ea1o ra c\u00e1c Docker image nh\u01b0 v\u1eady v\u00e0 share cho c\u1ed9ng \u0111\u1ed3ng. Trong c\u00e1c d\u1ef1 \u00e1n ph\u1ea7n m\u1ec1m ngu\u1ed3n m\u1edf l\u00e2u nay v\u1eabn l\u00e0m vi\u1ec7c c\u00f9ng, t\u1edb ch\u1ecdn Zimbra, d\u1ef1 \u00e1n t\u1edb v\u00e0 team <a href=\"https:\/\/www.iwayvietnam.com\/\">iWay<\/a> v\u1eabn \u0111ang l\u00e0m h\u00e0ng ng\u00e0y.<\/p>\n<p>Zimbra hi\u1ec7n t\u1ea1i v\u1eabn \u0111ang \u0111\u01b0\u1ee3c \u0111\u00f3ng g\u00f3i theo c\u00e1ch c\u0169 (RPM, DEB packages) v\u00e0 \u0111\u01b0a l\u00ean kho ri\u00eang maintained b\u1edfi c\u00f4ng ty Synacor, ch\u1ee7 s\u1edf h\u1eefu th\u01b0\u01a1ng hi\u1ec7u Zimbra. Phi\u00ean b\u1ea3n Zimbra 9 open source m\u1edbi nh\u1ea5t th\u1eadm ch\u00ed c\u00f2n kh\u00f4ng \u0111\u01b0\u1ee3c cung c\u1ea5p d\u01b0\u1edbi d\u1ea1ng c\u00e1c g\u00f3i \u0111\u00f3ng s\u1eb5n, ng\u01b0\u1eddi d\u00f9ng mu\u1ed1n d\u00f9ng ph\u1ea3i t\u1ef1 compile\/package t\u1eeb source code (open source license). <a href=\"https:\/\/github.com\/Zimbra\/?q=docker\">\u0110\u00f3ng g\u00f3i d\u01b0\u1edbi d\u1ea1ng Docker image<\/a> m\u1edbi ch\u1ec9 \u1edf m\u1ee9c th\u1eed nghi\u1ec7m v\u00e0 kh\u00f4ng \u0111\u01b0\u1ee3c maintain\/update th\u01b0\u1eddng xuy\u00ean.<\/p>\n<p>Google tr\u00ean Internet, c\u0169ng c\u00f3 m\u1ed9t v\u00e0i th\u00e0nh vi\u00ean c\u1ed9ng \u0111\u1ed3ng th\u1ef1c hi\u1ec7n \u0111\u00f3ng g\u00f3i tr\u00ean Docker, nh\u01b0ng v\u00ec nh\u1eefng l\u00fd do kh\u00e1c nhau c\u0169ng kh\u00f4ng th\u1ea5y c\u1eadp nh\u1eadt. &#8220;Ho\u00e0n thi\u1ec7n&#8221; nh\u1ea5t c\u00f3 l\u1ebd l\u00e0 kho c\u1ee7a anh <span class=\"vcard\"><span class=\"fn\">Jorge de la Cruz<\/span>, m\u1ed9t trong nh\u1eefng th\u00e0nh vi\u00ean t\u00edch c\u1ef1c nh\u1ea5t trong c\u1ed9ng \u0111\u1ed3ng Z\u1ec9mbra, public t\u1ea1i <\/span><a href=\"https:\/\/github.com\/jorgedlcruz\/zimbra-docker\/\">https:\/\/github.com\/jorgedlcruz\/zimbra-docker\/<\/a>, \u0111\u00f3ng g\u00f3i cho Zimbra 8.7 (r\u1ea5t c\u0169, h\u1ebft support r\u1ed3i) ch\u1ea1y tr\u00ean Ubuntu 16.04 (c\u0169ng ph\u00e1t h\u00e0nh 5 n\u0103m r\u1ed3i)<\/p>\n<p>Hehe, v\u1eady l\u00e0 c\u00f3 m\u1ed9t \u0111\u1ec1 b\u00e0i hay \u0111\u00e2y r\u1ed3i. V\u00e0 c\u0169ng trong 1\/2 n\u1ed1t nh\u1ea1c, t\u1edb quy\u1ebft \u0111\u1ecbnh s\u1ebd \u0111\u00f3ng g\u00f3i Zimbra Docker image m\u1edbi v\u00e0 chia s\u1ebb v\u1edbi m\u1ecdi ng\u01b0\u1eddi.<\/p>\n<p>\u0110\u1ea7u ti\u00ean, t\u1edb th\u1eed tham gia v\u00e0o kho m\u00e3 ngu\u1ed3n c\u1ee7a <span class=\"vcard\"><span class=\"fn\">Jorge, tuy nhi\u00ean m\u1ecdi th\u1ee9 \u0111\u00e3 kh\u00e1 c\u0169 v\u00e0 th\u1ef1c t\u1ebf l\u00e0 kh\u00f4ng d\u00f9ng \u0111\u01b0\u1ee3c, t\u1edb quay qua \u0111\u1ecdc README \u0111\u1ec3 t\u00ecm hi\u1ec3u nguy\u00ean l\u00fd. Sau khi t\u00ecm hi\u1ec3u s\u01a1 b\u1ed9, t\u1edb quay qua \u0111\u1ecdc th\u00eam <a href=\"https:\/\/docs.docker.com\/engine\/reference\/builder\/\">t\u00e0i li\u1ec7u v\u1ec1 build image c\u1ee7a Docker<\/a> v\u00e0 th\u1ea5y m\u1ecdi th\u1ee9 c\u0169ng t\u01b0\u01a1ng \u0111\u1ed1i s\u00e1ng s\u1ee7a, d\u1ec5 hi\u1ec3u.<\/span><\/span><\/p>\n<p><span class=\"vcard\"><span class=\"fn\">L\u1ea7n m\u00f2 ti\u1ebfp, t\u1edb th\u1eed \u00e1p d\u1ee5ng c\u00e1c ki\u1ebfn th\u1ee9c h\u1ecdc \u0111\u01b0\u1ee3c, c\u0169ng kh\u00f4ng kh\u00e1c nhi\u1ec1u so v\u1edbi <a href=\"https:\/\/rpm-packaging-guide.github.io\/\">vi\u1ebft file .spec \u0111\u1ec3 \u0111\u00f3ng g\u00f3i c\u00e1c ph\u1ea7n m\u1ec1m ph\u00e2n ph\u1ed1i d\u01b0\u1edbi d\u1ea1ng RPM<\/a> v\u1eabn th\u01b0\u1eddng l\u00e0m \u1edf vai tr\u00f2 Feodora Packager g\u1ea7n ch\u1ee5c n\u0103m, Dockerfile \u0111\u1ea7u ti\u00ean \u0111\u00e3 \u0111\u01b0\u1ee3c vi\u1ebft xong v\u00e0 s\u1eb5n s\u00e0ng build \ud83d\ude42<\/span><\/span><\/p>\n<p>M\u1ed9t ph\u00e1t hi\u1ec7n th\u00fa v\u1ecb kh\u00e1c, m\u1ed9t Docker image \u0111\u1ec3 h\u1eefu d\u1ee5ng cho m\u1ecdi ng\u01b0\u1eddi, c\u1ea7n \u0111\u01b0\u1ee3c \u0111\u00f3ng g\u00f3i \u0111\u1ea7y \u0111\u1ee7 sao cho ng\u01b0\u1eddi d\u00f9ng ch\u1ec9 vi\u1ec7c pull v\u1ec1 v\u00e0 run m\u1ed9t container ngay l\u1eadp t\u1ee9c, v\u1edbi m\u1ecdi tham s\u1ed1 c\u00f3 th\u1ec3 \u0111\u01b0\u1ee3c truy\u1ec1n v\u00e0o v\u1edbi l\u1ec7nh &#8220;docker run&#8221;, kh\u00f4ng c\u1ea7n ph\u1ea3i can thi\u1ec7p \u0111i\u1ec1u ch\u1ec9nh g\u00ec th\u00eam (hehe, ch\u1ea3 bi\u1ebft \u0111\u00e2y c\u00f3 th\u1ec3 \u0111\u01b0\u1ee3c g\u1ecdi l\u00e0 &#8220;ph\u00e1t hi\u1ec7n&#8221; kh\u00f4ng, v\u00e0 li\u1ec7u logic \u0111\u00f3 c\u00f3 ho\u00e0n to\u00e0n \u0111\u00fang trong \u0111a s\u1ed1 c\u00e1c tr\u01b0\u1eddng h\u1ee3p kh\u00f4ng, nh\u1edd c\u00e1c chuy\u00ean gia Docker advice th\u00eam!). V\u1eeba may, tr\u00ecnh c\u00e0i \u0111\u1eb7t Zimbra h\u1ed7 tr\u1ee3 lu\u00f4n ph\u01b0\u01a1ng \u00e1n truy\u1ec1n c\u00e1c tham s\u1ed1 v\u00e0o; n\u1ebfu truy\u1ec1n \u0111\u1ee7 tham s\u1ed1 th\u00ec ch\u1ec9 vi\u1ec7c ch\u1ea1y 1 l\u1ec7nh r\u1ed3i \u0111i l\u1ea5y 1 t\u00e1ch cafe ch\u1edd c\u00e0i \u0111\u1eb7t ho\u00e0n th\u00e0nh.<\/p>\n<p>R\u1ed3i, v\u00e0 b\u00e2y gi\u1edd l\u00e0 h\u00e0nh tr\u00ecnh tr\u1ea3i nghi\u1ec7m c\u1ee7a t\u1edb: &lt;3<\/p>\n<ol>\n<li>T\u1edb quy\u1ebft \u0111\u1ecbnh ch\u1ecdn \u0111\u00f3ng g\u00f3i phi\u00ean b\u1ea3n Z\u1ec9mbra 9 m\u1edbi nh\u1ea5t, g\u00f3i \u0111\u01b0\u1ee3c build &amp; maintain tr\u1ef1c ti\u1ebfp t\u1eeb open source code b\u1edfi Zextras, c\u00f4ng ty c\u00f3 tr\u1ee5 s\u1edf \u1edf Milan, Italy, m\u1ed9t trong c\u00e1c th\u00e0nh vi\u00ean \u0111\u00f3ng g\u00f3p nhi\u1ec1u nh\u1ea5t v\u00e0o d\u1ef1 \u00e1n Zimbra open source v\u00e0 hi\u1ec7n l\u00e0 m\u1ed9t trong c\u00e1c nh\u00e0 cung c\u1ea5p d\u1ecbch v\u1ee5 Zimbra h\u00e0ng \u0111\u1ea7u tr\u00ean th\u1ebf gi\u1edbi (iWay t\u1ef1 h\u00e0o l\u00e0 <a href=\"https:\/\/www.iwayvietnam.com\/i-news.html\">\u0111\u1ed1i t\u00e1c duy nh\u1ea5t c\u1ee7a Zextras t\u1ea1i Vi\u1ec7t Nam<\/a>). C\u00e1c b\u1ea1n c\u00f3 th\u1ec3 t\u00ecm hi\u1ec3u nhi\u1ec1u <a href=\"https:\/\/www.zextras.com\/zextras-build-based-on-zimbra-official-repository\/\">th\u00f4ng tin th\u00fa v\u1ecb xung quanh b\u1ea3n \u0111\u00f3ng g\u00f3i n\u00e0y t\u1ea1i \u0111\u00e2y<\/a>.<\/li>\n<li>Vi\u1ec7c ch\u1ecdn phi\u00ean b\u1ea3n Rocky Linux 8 l\u00e0m n\u1ec1n t\u1ea3ng cho Zimbra 9 c\u0169ng l\u00e0 m\u1ed9t s\u1ef1 t\u00ecnh c\u1edd th\u00fa v\u1ecb mang \u0111\u1eadm ch\u1ea5t nh\u00e2n v\u0103n. S\u1ed1 l\u00e0 c\u00e1ch \u0111\u00e2y kho\u1ea3ng 6 th\u00e1ng, sau 6-7 n\u0103m s\u00e1p nh\u1eadp d\u1ef1 \u00e1n CentOS v\u1ec1, Redhat \u0111\u00e3 c\u00f4ng b\u1ed1 <a href=\"https:\/\/www.redhat.com\/en\/blog\/centos-stream-building-innovative-future-enterprise-linux\">chi\u1ebfn l\u01b0\u1ee3c ph\u00e1t tri\u1ec3n CentOS m\u1edbi<\/a>, trong \u0111\u00f3 CentOS kh\u00f4ng c\u00f2n l\u00e0 b\u1ea3n &#8220;clone&#8221; c\u1ee7a RHEL (c\u1ee9 c\u00f3 1 b\u1ea3n RHEL m\u1edbi l\u00e0 c\u1ed9ng \u0111\u1ed3ng l\u1ea1i l\u1ea5y m\u00e3 ngu\u1ed3n compile\/package m\u1ed9t b\u1ea3n CentOS t\u01b0\u01a1ng \u1ee9ng, ch\u1ec9 thay \u0111\u1ed5i ph\u1ea7n th\u01b0\u01a1ng hi\u1ec7u, logo), m\u00e0 tr\u1edf m\u1ed9t b\u1ea3n &#8220;pre-built&#8221; c\u1ee7a RHEL (\u0111\u00f3ng g\u00f3i &amp; th\u1eed nghi\u1ec7m trong CentOS tr\u01b0\u1edbc, r\u1ed3i m\u1edbi \u0111\u01b0a v\u00e0o RHEL). Vi\u1ec7c n\u00e0y d\u1eabn \u0111\u1ebfn m\u1ed9t t\u00e1ch ra (fork) nh\u1eefng d\u1ef1 \u00e1n m\u1edbi, v\u00e0 m\u1ed9t trong c\u00e1c d\u1ef1 \u00e1n \u0111\u00f3 \u0111\u01b0\u1ee3c anh Gregory Kurtzer, m\u1ed9t trong c\u00e1c founder c\u1ee7a CentOS, kh\u1edfi \u0111\u1ed9ng ngay trong ng\u00e0y Redhat c\u00f3 th\u00f4ng b\u00e1o v\u1ec1 &#8220;s\u1ed1 ph\u1eadn&#8221; c\u1ee7a CentOS, \u0111\u1eb7t t\u00ean l\u00e0 <a href=\"https:\/\/rockylinux.org\/\">Rocky Linux<\/a>. D\u1ef1 \u00e1n n\u00e0y \u0111\u01b0\u1ee3c r\u1ea5t nhi\u1ec1u th\u00e0nh vi\u00ean trong c\u1ed9ng \u0111\u1ed3ng h\u01b0\u1edfng \u1ee9ng (trong \u0111\u00f3 c\u00f3 t\u1edb, \u0111\u01b0\u01a1ng nhi\u00ean, hehe) v\u00e0 trong m\u1ed9t h\u1eddi gian ng\u1eafn, s\u1ed1 l\u01b0\u1ee3ng contributor \u0111\u00e3 r\u1ea5t \u0111\u00f4ng, c\u0169ng nh\u01b0 \u0111\u01b0\u1ee3c s\u1ef1 h\u1eadu thu\u1eabn c\u1ee7a nh\u1eefng c\u00f4ng ty l\u1edbn. V\u00e0 nh\u01b0 m\u1ed9t s\u1ef1 t\u00ecnh c\u1edd h\u1eefu duy\u00ean, phi\u00ean b\u1ea3n <a href=\"https:\/\/hub.docker.com\/u\/rockylinux\">Rocky Linux 8 ch\u00ednh th\u1ee9c \u0111\u1ea7u ti\u00ean \u0111\u00f3ng g\u00f3i th\u00e0nh Docker image<\/a> v\u00e0 \u0111\u01b0\u1ee3c push l\u00ean Docker hub v\u00e0o \u0111\u00fang ng\u00e0y t\u1edb b\u1eaft \u0111\u1ea7u th\u1eed ch\u01a1i v\u1edbi Docker build &lt;3<\/li>\n<li>Docker file \u0111\u1ea7u ti\u00ean nhanh ch\u00f3ng \u0111\u01b0\u1ee3c vi\u1ebft ra v\u00e0 sau v\u00e0i v\u00f2ng c\u1ea3i ti\u1ebfn \u0111\u00e3 cho ra Docker image \u0111\u1ea7u ti\u00ean, based tr\u00ean Rocky Linux 8 Docker image, g\u00f3i c\u00f9ng Zimbra 9 download t\u1eeb kho \u0111\u00f3ng g\u00f3i c\u1ee7a Zextras. To\u00e0n b\u1ed9 c\u00f4ng vi\u1ec7c \u0111\u01b0\u1ee3c open source, \u0111\u01b0a l\u00ean <a href=\"https:\/\/github.com\/iwayvietnam\/zimbra-docker\">https:\/\/github.com\/iwayvietnam\/zimbra-docker<\/a>, ph\u00e1t h\u00e0nh theo gi\u1ea5y ph\u00e9p GNU GPL v3. Docker image n\u00e0y ch\u1ee9a t\u1ea5t c\u1ea3 c\u00e1c ph\u1ea7n m\u1ec1m c\u1ea7n thi\u1ebft \u0111\u1ec3 tri\u1ec3n khai m\u1ed9t m\u00e1y ch\u1ee7 Zimbra 9 m\u1edbi (d\u01b0\u1edbi d\u1ea1ng single-server), v\u1edbi to\u00e0n b\u1ed9 c\u00e1c tham s\u1ed1 \u0111\u01b0\u1ee3c truy\u1ec1n qua d\u00f2ng l\u1ec7nh &#8220;docker run&#8221; khi kh\u1edfi t\u1ea1o container, \u0111\u00fang phong c\u00e1ch &#8220;g\u00f5 l\u1ec7nh, \u0111i u\u1ed1ng cafe v\u00e0 canh gi\u1edd quay l\u1ea1i&#8221; :);\u00a0 ti\u1ebfn th\u00eam 1 b\u01b0\u1edbc n\u1eefa, t\u1edb push Zimbra image m\u1edbi l\u00ean Docker hub t\u1ea1i \u0111\u1ecba ch\u1ec9 <a href=\"https:\/\/hub.docker.com\/r\/iwayvietnam\/zimbra_all\">https:\/\/hub.docker.com\/r\/iwayvietnam\/zimbra_all<\/a> v\u00e0 chia s\u1ebb cho m\u1ecdi ng\u01b0\u1eddi trong nh\u00f3m &#8220;C\u1ed9ng \u0111\u1ed3ng Zimbra Vi\u1ec7t Nam&#8221; tr\u00ean Facebook c\u00f3 th\u1ec3 pull v\u1ec1 th\u1eed (thay v\u00ec ph\u1ea3i t\u1ef1 build t\u1eeb Dockerfile kia)<\/li>\n<\/ol>\n<p>Docker image \u0111\u1ea7u ti\u00ean n\u00e0y \u0111\u01b0\u1ee3c ho\u00e0n th\u00e0nh trong ~48h, m\u1edbi l\u00e0 phi\u00ean b\u1ea3n &#8220;th\u00f4&#8221; \u0111\u1ea7u ti\u00ean, c\u00f2n r\u1ea5t nhi\u1ec1u th\u1ee9 c\u1ea7n c\u1ea3i ti\u1ebfn th\u00eam nh\u01b0:<\/p>\n<ol>\n<li>T\u00e1ch c\u00e1c d\u1ecbch v\u1ee5 (Mailboxd, MTA, Proxy, LDAP&#8230;) th\u00e0nh c\u00e1c g\u00f3i ri\u00eang \u0111\u1ec3 c\u00f3 th\u1ec3 deploy \u0111\u1ed9c l\u1eadp trong m\u00f4i tr\u01b0\u1eddng multi-server Zimbra.<\/li>\n<li>Th\u00eam c\u00e1c th\u00e0nh ph\u1ea7n b\u1ed5 sung t\u00ednh n\u0103ng ngo\u00e0i nh\u01b0 Z-Push h\u1ed7 tr\u1ee3 ActiveSync mobile, ho\u1eb7c c\u00e1c th\u00e0nh ph\u1ea7n h\u1ed7 tr\u1ee3 HA\/Cluster, c\u00e1c th\u00e0nh ph\u1ea7n h\u1ed7 tr\u1ee3 theo d\u00f5i, gi\u00e1m s\u00e1t, h\u1ed7 tr\u1ee3 ph\u00e2n t\u00edch logs, backup, security&#8230;<\/li>\n<li>Th\u00eam c\u00e1c th\u00e0nh ph\u1ea7n \u0111\u1ec3 c\u00f3 th\u1ec3 t\u1ef1 \u0111\u1ed9ng h\u00f3a ho\u00e0n to\u00e0n qu\u00e1 tr\u00ecnh deploy 1 h\u1ec7 th\u1ed1ng m\u1edbi&#8230;<\/li>\n<\/ol>\n<p>Qu\u00e1 tr\u00ecnh th\u1eed \u0111\u00f3ng g\u00f3i Docker image \u0111\u1ea7u ti\u00ean c\u0169ng l\u00e0 d\u1ecbp tuy\u1ec7t v\u1eddi cho t\u1edb t\u00ecm hi\u1ec3u nhi\u1ec1u ng\u00f3c ng\u00e1ch sau h\u01a1n v\u1ec1 Docker: hi\u1ec3u s\u00e2u h\u01a1n v\u1ec1 Docker image vs. container, c\u00e1c tham s\u1ed1 bi\u1ebfn th\u1ec3 cho c\u00e1c l\u1ec7nh Docker run, exec, stop\/start, build, commit, pull\/push&#8230;, c\u00e1c m\u00f3n xung quanh kh\u00e1c nh\u01b0 docker-compose, docker-swarm, v\u00e0 \u0111\u1eb7c bi\u1ec7t m\u1edf ra m\u1ed9t h\u01b0\u1edbng h\u1ecdc t\u1eadp m\u1edbi cho t\u1edb trong th\u1eddi gian t\u1edbi: Kubernetes (hay c\u00f2n g\u1ecdi l\u00e0 K8S) &lt;3<\/p>\n<p>C\u00f2n r\u1ea5t nhi\u1ec1u th\u1ee9 c\u00f3 th\u1ec3 h\u1ecdc h\u1ecfi, nhi\u1ec1u vi\u1ec7c ph\u1ea3i l\u00e0m&#8230; v\u00e0 nhi\u1ec1u \u0111\u1ed3 ch\u01a1i \u0111\u1ec3 ch\u01a1i c\u00f9ng trong th\u1eddi gian t\u1edbi (\u0111\u1eb7c bi\u1ec7t l\u00e0 khi d\u1ecbch Covid \u0111ang gi\u1eef b\u1ea1n \u1edf nh\u00e0, hehe). Hi v\u1ecdng tr\u1ea3i nghi\u1ec7m n\u00e0y s\u1ebd tr\u1edf th\u00e0nh \u0111\u1ed9ng l\u1ef1c cho t\u1edb c\u0169ng nh\u01b0 truy\u1ec1n n\u0103ng th\u00eam l\u01b0\u1ee3ng, \u0111\u1ed9ng l\u1ef1c cho c\u00e1c anh em say m\u00ea c\u00f4ng ngh\u1ec7, y\u00eau th\u00edch Linux, Zimbra &amp; open source ti\u1ebfp t\u1ee5c kh\u00f4ng ng\u1eebng h\u1ecdc h\u1ecfi v\u00e0 \u0111\u00f3ng g\u00f3p cho c\u1ed9ng \u0111\u1ed3ng open source \u1edf Vi\u1ec7t Nam n\u00f3i ri\u00eang c\u0169ng nh\u01b0 c\u1ed9ng \u0111\u1ed3ng to\u00e0n th\u1ebf gi\u1edbi.<\/p>\n<p>Mong ti\u1ebfp t\u1ee5c c\u00f3 nhi\u1ec1u d\u1ecbp \u0111\u01b0\u1ee3c chia s\u1ebb &amp; giao l\u01b0u v\u1edbi c\u00e1c anh em &lt;3<\/p>\n<p>C\u1ea3m \u01a1n anh em \u0111\u00e3 \u0111\u1ecdc m\u1ed9t b\u00e0i r\u1ea5t d\u00e0i, \u0111\u1ebfn t\u1eadn d\u00f2ng cu\u1ed1i c\u00f9ng n\u00e0y \ud83d\ude00<\/p>\n","protected":false},"excerpt":{"rendered":"<p>C\u00e2u tr\u1ea3 l\u1eddi: v\u1eeba kh\u00f3, l\u1ea1i v\u1eeba kh\u00f4ng kh\u00f3 l\u1eafm \ud83d\ude09 Kh\u00f3 nh\u1ea5t l\u00e0 v\u00ec v\u1edbi m\u1ed9t \u0111\u1ee9a l\u01b0\u1eddi nh\u01b0 t\u1edb, g\u1ea7n n\u1eeda \u0111\u1eddi ng\u01b0\u1eddi r\u1ed3i, b\u1eaft \u0111\u1ea7u chuy\u1ec3n qua h\u1ec7 m\u1ea3i ch\u01a1i, ch\u00e9m gi\u00f3, ham nh\u1eefng m\u00f3n v\u1eadn \u0111\u1ed9ng vui kh\u1ecfe nh\u01b0 \u0111\u1ea1p xe, ch\u1ea1y b\u1ed9&#8230; r\u1ed3i m\u00e1u dong ch\u01a1i lang thang t\u1eeb thu\u1edf<a class=\"more-link\" href=\"https:\/\/blog.iwayvietnam.com\/tuanta\/2021\/06\/docker-co-kho-khong\/\">Continue reading <span class=\"screen-reader-text\">&#8220;Docker c\u00f3 kh\u00f3 kh\u00f4ng? :)&#8221;<\/span><\/a><\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[4049,6,17],"tags":[],"class_list":["post-1048","post","type-post","status-publish","format-standard","hentry","category-docker","category-working-tips","category-zimbra","entry"],"_links":{"self":[{"href":"https:\/\/blog.iwayvietnam.com\/tuanta\/wp-json\/wp\/v2\/posts\/1048"}],"collection":[{"href":"https:\/\/blog.iwayvietnam.com\/tuanta\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.iwayvietnam.com\/tuanta\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.iwayvietnam.com\/tuanta\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.iwayvietnam.com\/tuanta\/wp-json\/wp\/v2\/comments?post=1048"}],"version-history":[{"count":4,"href":"https:\/\/blog.iwayvietnam.com\/tuanta\/wp-json\/wp\/v2\/posts\/1048\/revisions"}],"predecessor-version":[{"id":1052,"href":"https:\/\/blog.iwayvietnam.com\/tuanta\/wp-json\/wp\/v2\/posts\/1048\/revisions\/1052"}],"wp:attachment":[{"href":"https:\/\/blog.iwayvietnam.com\/tuanta\/wp-json\/wp\/v2\/media?parent=1048"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.iwayvietnam.com\/tuanta\/wp-json\/wp\/v2\/categories?post=1048"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.iwayvietnam.com\/tuanta\/wp-json\/wp\/v2\/tags?post=1048"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}