{"id":35038,"date":"2024-10-14T16:40:12","date_gmt":"2024-10-14T09:40:12","guid":{"rendered":"http:\/\/jupitek.maudemo.vip\/index.php\/2024\/10\/14\/create-tag-and-upload-your-own-docker-image\/"},"modified":"2024-10-14T16:40:12","modified_gmt":"2024-10-14T09:40:12","slug":"create-tag-and-upload-your-own-docker-image","status":"publish","type":"post","link":"https:\/\/jupitek.maudemo.vip\/index.php\/2024\/10\/14\/create-tag-and-upload-your-own-docker-image\/","title":{"rendered":"T\u1ea1o, g\u1eafn th\u1ebb v\u00e0 upload Docker Image c\u1ee7a b\u1ea1n"},"content":{"rendered":"<p>Docker gi\u00fap d\u1ec5 d\u00e0ng ph\u00e1t tri\u1ec3n v\u00e0 tri\u1ec3n khai c\u00e1c m\u00f4i tr\u01b0\u1eddng t\u00f9y ch\u1ec9nh v\u00e0 nh\u1ea5t qu\u00e1n bao g\u1ed3m c\u00e1c \u1ee9ng d\u1ee5ng v\u00e0 ph\u1ee5 thu\u1ed9c c\u1ee5 th\u1ec3. Docker g\u1ecdi c\u00e1c bi\u00ean d\u1ecbch n\u00e0y l\u00e0 Images. Docker images c\u00f3 th\u1ec3 \u0111\u01b0\u1ee3c l\u01b0u tr\u1eef v\u00e0 truy xu\u1ea5t t\u1eeb \u200b\u200bc\u00e1c v\u1ecb tr\u00ed ri\u00eang t\u01b0 ho\u1eb7c t\u1eeb kho l\u01b0u tr\u1eef ch\u00ednh th\u1ee9c,&nbsp;<a href=\"https:\/\/hub.docker.com\/\" target=\"_blank\" rel=\"noreferrer noopener\">Docker Hub<\/a>&nbsp;.<\/p>\n<p>H\u01b0\u1edbng d\u1eabn n\u00e0y l\u00e0 m\u1ed9t ph\u1ea7n trong lo\u1ea1t b\u00e0i gi\u1edbi thi\u1ec7u v\u1ec1 c\u00e1c kh\u00e1i ni\u1ec7m Docker. C\u00e1c l\u1ec7nh \u0111\u1ec3 t\u1ea1o h\u00ecnh \u1ea3nh trong h\u01b0\u1edbng d\u1eabn n\u00e0y d\u1ef1a tr\u00ean h\u01b0\u1edbng d\u1eabn tr\u01b0\u1edbc,&nbsp;<a href=\"https:\/\/www.linode.com\/docs\/guides\/installing-and-using-docker-on-ubuntu-and-debian\/\">C\u00e1ch c\u00e0i \u0111\u1eb7t v\u00e0 k\u00e9o h\u00ecnh \u1ea3nh \u0111\u1ec3 tri\u1ec3n khai container<\/a>&nbsp;. \u0110\u1ec3 bi\u1ebft th\u00eam th\u00f4ng tin v\u1ec1 Docker v\u00e0 container, h\u00e3y truy c\u1eadp&nbsp;<a href=\"https:\/\/www.linode.com\/docs\/applications\/containers\/\">h\u01b0\u1edbng d\u1eabn c\u1ee7a ch\u00fang t\u00f4i v\u1ec1 Container<\/a>&nbsp;.<\/p>\n<h2 id=\"create-a-docker-image\">T\u1ea1o m\u1ed9t h\u00ecnh \u1ea3nh Docker<a href=\"https:\/\/www.linode.com\/docs\/guides\/create-tag-and-upload-your-own-docker-image\/#create-a-docker-image\"><\/a><\/h2>\n<p>T\u1ea1o m\u1ed9t h\u00ecnh \u1ea3nh c\u1ee5c b\u1ed9 m\u1edbi d\u1ef1a tr\u00ean h\u00ecnh \u1ea3nh Ubuntu Docker m\u1edbi nh\u1ea5t. M\u1eb7c d\u00f9 kho l\u01b0u tr\u1eef \u0111\u00e3 c\u00f3 m\u1ed9t s\u1ed1 h\u00ecnh \u1ea3nh ng\u0103n x\u1ebfp LAMP kh\u1ea3 d\u1ee5ng, ch\u00fang t\u00f4i t\u1ea1o m\u1ed9t h\u00ecnh \u1ea3nh trong h\u01b0\u1edbng d\u1eabn n\u00e0y nh\u01b0 m\u1ed9t v\u00ed d\u1ee5 v\u1ec1 quy tr\u00ecnh.<\/p>\n<p>1.T\u1ea3i \u1ea3nh Ubuntu m\u1edbi nh\u1ea5t:<\/p>\n<pre class=\"wp-block-code\"><code>docker pull ubuntu\n<\/code><\/pre>\n<p>2.T\u1ea1o container m\u1edbi \u0111\u1ec3 ch\u00fang ta c\u00f3 th\u1ec3 th\u00eam ng\u0103n x\u1ebfp LAMP v\u00e0o Ubuntu. V\u00ed d\u1ee5 n\u00e0y \u0111\u1eb7t t\u00ean cho container&nbsp;<code>lamp-server-template<\/code>v\u00e0 th\u00eam&nbsp;<code>bash<\/code>t\u00f9y ch\u1ecdn v\u00e0o l\u1ec7nh docker \u0111\u1ec3 nh\u1eadp container nh\u1eb1m ti\u1ebfp t\u1ee5c th\u1ef1c hi\u1ec7n thay \u0111\u1ed5i:<\/p>\n<pre class=\"wp-block-code\"><code>docker run --name lamp-server-template -it ubuntu:latest bash\n<\/code><\/pre>\n<p>3.C\u00e0i \u0111\u1eb7t&nbsp;<code>lamp-server<\/code>metapackage b\u00ean trong container:<\/p>\n<pre class=\"wp-block-code\"><code>apt-get install lamp-server^\n<\/code><\/pre>\n<p>Vi\u1ec7c n\u00e2ng c\u1ea5p v\u00e0 c\u00e0i \u0111\u1eb7t n\u00e0y s\u1ebd m\u1ea5t nhi\u1ec1u th\u1eddi gian h\u01a1n so v\u1edbi khi b\u1ea1n l\u00e0m vi\u1ec7c tr\u00ean m\u1ed9t m\u00e1y ch\u1ee7 chu\u1ea9n. Trong qu\u00e1 tr\u00ecnh c\u00e0i \u0111\u1eb7t ng\u0103n x\u1ebfp LAMP, b\u1ea1n s\u1ebd \u0111\u01b0\u1ee3c nh\u1eafc t\u1ea1o m\u1eadt kh\u1ea9u ng\u01b0\u1eddi d\u00f9ng root MySQL. Khi qu\u00e1 tr\u00ecnh c\u00e0i \u0111\u1eb7t ho\u00e0n t\u1ea5t, h\u00e3y tho\u00e1t kh\u1ecfi v\u00f9ng ch\u1ee9a:<\/p>\n<pre class=\"wp-block-code\"><code>exit<\/code><\/pre>\n<p>4.S\u1eed d\u1ee5ng&nbsp;<code>docker ps -a<\/code>\u0111\u1ec3 li\u1ec7t k\u00ea t\u1ea5t c\u1ea3 c\u00e1c container c\u00f3 s\u1eb5n:<img decoding=\"async\" src=\"https:\/\/www.linode.com\/docs\/guides\/create-tag-and-upload-your-own-docker-image\/docker-image-list-available_hub3e375b936022a05aad630196a22c3e3_146179_1388x0_resize_q71_bgfafafc_catmullrom_3.jpg\" alt=\"docker ps -a hi\u1ec3n th\u1ecb danh s\u00e1ch c\u00e1c h\u00ecnh \u1ea3nh c\u00f3 s\u1eb5n\"><\/p>\n<h2 id=\"commit-changes-to-the-image\">Cam k\u1ebft thay \u0111\u1ed5i h\u00ecnh \u1ea3nh<a href=\"https:\/\/www.linode.com\/docs\/guides\/create-tag-and-upload-your-own-docker-image\/#commit-changes-to-the-image\"><\/a><\/h2>\n<p>\u0110\u1ec3 commit thay \u0111\u1ed5i cho image, tr\u01b0\u1edbc ti\u00ean ch\u00fang ta ph\u1ea3i c\u00f3 ID container. Gi\u1ed1ng nh\u01b0 v\u00ed d\u1ee5 tr\u00ean, l\u1ec7nh&nbsp;<code>docker ps -a<\/code>li\u1ec7t k\u00ea ID l\u00e0&nbsp;<code>d09dd0f24b58<\/code>. Ch\u00fang ta s\u1ebd \u0111\u1eb7t t\u00ean cho image m\u1edbi&nbsp;<code>lamp-server-template<\/code>v\u00e0 commit thay \u0111\u1ed5i b\u1eb1ng l\u1ec7nh:<\/p>\n<pre class=\"wp-block-code\"><code>docker commit d09dd0f24b58 lamp-server-template\n<\/code><\/pre>\n<p>N\u1ebfu b\u1ea1n ch\u1ea1y&nbsp;<code>docker images<\/code>l\u1ec7nh, b\u1ea1n s\u1ebd th\u1ea5y h\u00ecnh \u1ea3nh m\u1edbi&nbsp;<code>lamp-server-template<\/code>\u0111\u01b0\u1ee3c li\u1ec7t k\u00ea.<\/p>\n<h2 id=\"tag-your-image-for-version-control\">\u0110\u00e1nh d\u1ea5u h\u00ecnh \u1ea3nh c\u1ee7a b\u1ea1n \u0111\u1ec3 ki\u1ec3m so\u00e1t phi\u00ean b\u1ea3n<a href=\"https:\/\/www.linode.com\/docs\/guides\/create-tag-and-upload-your-own-docker-image\/#tag-your-image-for-version-control\"><\/a><\/h2>\n<p>Khi b\u1ea1n k\u00e9o m\u1ed9t h\u00ecnh \u1ea3nh xu\u1ed1ng t\u1eeb Docker Hub,&nbsp;<code>Status<\/code>d\u00f2ng n\u00e0y s\u1ebd bao g\u1ed3m&nbsp;<em>th\u1ebb h\u00ecnh \u1ea3nh<\/em>&nbsp;nh\u01b0 hi\u1ec3n th\u1ecb \u1edf \u0111\u00e2y:<\/p>\n<pre class=\"wp-block-code\"><code>Status: Downloaded newer image for ubuntu:latest\n<\/code><\/pre>\n<p>Th\u1ebb Docker l\u00e0 c\u00e1ch d\u1ec5 d\u00e0ng \u0111\u1ec3 b\u1ea1n bi\u1ebft phi\u00ean b\u1ea3n ho\u1eb7c b\u1ea3n ph\u00e1t h\u00e0nh n\u00e0o b\u1ea1n \u0111ang l\u00e0m vi\u1ec7c. \u0110i\u1ec1u n\u00e0y \u0111\u1eb7c bi\u1ec7t h\u1eefu \u00edch khi t\u1ea1o h\u00ecnh \u1ea3nh m\u1edbi t\u1eeb h\u00ecnh \u1ea3nh c\u01a1 s\u1edf. V\u00ed d\u1ee5: n\u1ebfu b\u1ea1n c\u00f3 h\u00ecnh \u1ea3nh Ubuntu m\u00e0 b\u1ea1n s\u1eed d\u1ee5ng l\u00e0m c\u01a1 s\u1edf \u0111\u1ec3 t\u1ea1o c\u00e1c h\u00ecnh \u1ea3nh kh\u00e1c nhau, th\u1ebb Docker gi\u00fap b\u1ea1n theo d\u00f5i s\u1ef1 kh\u00e1c bi\u1ec7t:<\/p>\n<pre class=\"wp-block-code\"><code>lamp-server-template:v1.8.10.2017\nlamp-server-template:v2.8.10.2017\nlamp-server-template:v3.8.10.2017\n<\/code><\/pre>\n<p>1.T\u1ea1o th\u1ebb h\u00ecnh \u1ea3nh v\u1edbi&nbsp;<code>docker commit<\/code>. S\u1eed d\u1ee5ng c\u00e1c th\u1ebb v\u00ed d\u1ee5 \u1edf tr\u00ean, g\u1eafn th\u1ebb h\u00ecnh \u1ea3nh m\u1edbi v\u1edbi s\u1ed1 phi\u00ean b\u1ea3n v\u00e0 ng\u00e0y:<\/p>\n<pre class=\"wp-block-code\"><code>docker commit d09dd0f24b58 lamp-server-template:v1.8.10.2017<\/code><\/pre>\n<p>2.Ch\u1ea1y&nbsp;<code>docker images<\/code>\u0111\u1ec3 xem h\u00ecnh \u1ea3nh m\u1edbi \u0111\u01b0\u1ee3c t\u1ea1o c\u00f9ng v\u1edbi th\u1ebb li\u00ean quan:<img decoding=\"async\" src=\"https:\/\/www.linode.com\/docs\/guides\/create-tag-and-upload-your-own-docker-image\/docker-image-tags_hu8f2b3862f306329b2fef435c7316c1b0_276578_1388x0_resize_q71_bgfafafc_catmullrom_3.jpg\" alt=\"H\u00ecnh \u1ea3nh m\u1edbi \u0111\u01b0\u1ee3c g\u1eafn th\u1ebb c\u1ee7a ch\u00fang t\u00f4i, s\u1eb5n s\u00e0ng \u0111\u1ec3 \u0111\u01b0\u1ee3c \u0111\u1ea9y l\u00ean Docker Hub\"><\/p>\n<h2 id=\"push-your-image-to-docker-hub\">\u0110\u1ea9y h\u00ecnh \u1ea3nh c\u1ee7a b\u1ea1n l\u00ean Docker Hub<a href=\"https:\/\/www.linode.com\/docs\/guides\/create-tag-and-upload-your-own-docker-image\/#push-your-image-to-docker-hub\"><\/a><\/h2>\n<p>1.Tr\u01b0\u1edbc khi \u0111\u1ea9y h\u00ecnh \u1ea3nh l\u00ean Docker Hub, h\u00e3y th\u00eam m\u00f4 t\u1ea3, t\u00ean \u0111\u1ea7y \u0111\u1ee7 c\u1ee7a b\u1ea1n (&nbsp;<code>FULL NAME<\/code>trong v\u00ed d\u1ee5 \u1edf \u0111\u00e2y) v\u00e0 t\u00ean ng\u01b0\u1eddi d\u00f9ng Docker Hub (&nbsp;<code>USERNAME<\/code>) v\u00e0o&nbsp;<code>docker commit<\/code>:<\/p>\n<pre class=\"wp-block-code\"><code>docker commit -m \"Added LAMP Server\" -a \"FULL NAME\" d09dd0f24b58 USERNAME\/lamp-server-template:v1.8.10.2017\n<\/code><\/pre>\n<p>2.Sau khi g\u1eafn th\u1ebb \u0111\u1ea7y \u0111\u1ee7, h\u00e3y \u0111\u0103ng nh\u1eadp v\u00e0 \u0111\u1ea9y n\u00f3 l\u00ean Docker Hub:<\/p>\n<pre class=\"wp-block-code\"><code>docker login<\/code><\/pre>\n<p>3.B\u1ea1n s\u1ebd \u0111\u01b0\u1ee3c nh\u1eafc nh\u1eadp th\u00f4ng tin x\u00e1c th\u1ef1c Docker Hub. Khi x\u00e1c th\u1ef1c th\u00e0nh c\u00f4ng, b\u1ea1n s\u1ebd th\u1ea5y&nbsp;<code>Login succeeded<\/code>. B\u00e2y gi\u1edd, b\u1ea1n c\u00f3 th\u1ec3 \u0111\u1ea9y h\u00ecnh \u1ea3nh v\u00e0o Hub b\u1eb1ng l\u1ec7nh:<\/p>\n<pre class=\"wp-block-code\"><code>docker push lamp-server-template:v1.8.10.2017\n<\/code><\/pre>\n<p>4.M\u1edf tr\u00ecnh duy\u1ec7t, \u0111\u0103ng nh\u1eadp v\u00e0o t\u00e0i kho\u1ea3n Docker Hub c\u1ee7a b\u1ea1n v\u00e0 v\u00e0o kho l\u01b0u tr\u1eef ch\u00ednh c\u1ee7a b\u1ea1n. B\u1ea1n s\u1ebd th\u1ea5y h\u00ecnh \u1ea3nh m\u1edbi \u0111\u01b0\u1ee3c li\u1ec7t k\u00ea. Nh\u1ea5p v\u00e0o h\u00ecnh \u1ea3nh v\u00e0 sau \u0111\u00f3 nh\u1ea5p v\u00e0o tab&nbsp;<strong>Th\u1ebb<\/strong>&nbsp;\u0111\u1ec3 xem th\u1ebb \u0111\u00e3 th\u00eam:<img decoding=\"async\" src=\"https:\/\/www.linode.com\/docs\/guides\/create-tag-and-upload-your-own-docker-image\/docker-image-public-repo_hu23a8dbc6f67aeb79bed70146805511ab_104526_1388x0_resize_q71_bgfafafc_catmullrom_3.jpg\" alt=\"H\u00ecnh \u1ea3nh c\u1ee7a ch\u00fang t\u00f4i, ho\u00e0n ch\u1ec9nh v\u1edbi c\u00e1c th\u1ebb, tr\u00ean Docker Hub\"><\/p>\n<p>V\u00e0 \u0111\u00f3 l\u00e0 t\u1ea5t c\u1ea3 nh\u1eefng g\u00ec c\u1ea7n l\u00e0m \u0111\u1ec3 t\u1ea1o m\u1ed9t h\u00ecnh \u1ea3nh m\u1edbi, thay \u0111\u1ed5i h\u00ecnh \u1ea3nh, x\u00e1c nh\u1eadn thay \u0111\u1ed5i, g\u1eafn th\u1ebb h\u00ecnh \u1ea3nh v\u00e0 \u0111\u1ea9y to\u00e0n b\u1ed9 h\u00ecnh \u1ea3nh l\u00ean Docker Hub, t\u1ea5t c\u1ea3 \u0111\u1ec1u \u0111\u01b0\u1ee3c x\u1eed l\u00fd tr\u1ef1c ti\u1ebfp t\u1eeb Linode c\u1ee7a b\u1ea1n.<\/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=\"http:\/\/docs.docker.com\/\" target=\"_blank\" rel=\"noreferrer noopener\">T\u00e0i li\u1ec7u Docker<\/a><\/li>\n<li><a href=\"https:\/\/www.docker.com\/tryit\/\" target=\"_blank\" rel=\"noreferrer noopener\">H\u01b0\u1edbng d\u1eabn s\u1eed d\u1ee5ng Docker<\/a><\/li>\n<li><a href=\"https:\/\/hub.docker.com\/\" target=\"_blank\" rel=\"noreferrer noopener\">Trung t\u00e2m Docker<\/a><\/li>\n<\/ul>\n<p>Ngu\u1ed3n: https:\/\/www.linode.com\/docs\/guides\/create-tag-and-upload-your-own-docker-image\/<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Docker gi\u00fap d\u1ec5 d\u00e0ng ph\u00e1t tri\u1ec3n v\u00e0 tri\u1ec3n khai c\u00e1c m\u00f4i tr\u01b0\u1eddng t\u00f9y ch\u1ec9nh v\u00e0 nh\u1ea5t qu\u00e1n bao g\u1ed3m c\u00e1c \u1ee9ng d\u1ee5ng v\u00e0 ph\u1ee5 thu\u1ed9c c\u1ee5 th\u1ec3. Docker g\u1ecdi c\u00e1c bi\u00ean d\u1ecbch n\u00e0y l\u00e0 Images. Docker images c\u00f3 th\u1ec3 \u0111\u01b0\u1ee3c l\u01b0u tr\u1eef v\u00e0 truy xu\u1ea5t t\u1eeb \u200b\u200bc\u00e1c v\u1ecb tr\u00ed ri\u00eang t\u01b0 ho\u1eb7c t\u1eeb kho l\u01b0u<\/p>\n","protected":false},"author":1,"featured_media":36267,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[108],"tags":[],"class_list":["post-35038","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\/35038","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=35038"}],"version-history":[{"count":0,"href":"https:\/\/jupitek.maudemo.vip\/index.php\/wp-json\/wp\/v2\/posts\/35038\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/jupitek.maudemo.vip\/index.php\/wp-json\/wp\/v2\/media\/36267"}],"wp:attachment":[{"href":"https:\/\/jupitek.maudemo.vip\/index.php\/wp-json\/wp\/v2\/media?parent=35038"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/jupitek.maudemo.vip\/index.php\/wp-json\/wp\/v2\/categories?post=35038"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/jupitek.maudemo.vip\/index.php\/wp-json\/wp\/v2\/tags?post=35038"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}