{"id":5423,"date":"2021-03-18T09:58:00","date_gmt":"2021-03-18T02:58:00","guid":{"rendered":"https:\/\/briswell-vn.com\/?p=5423"},"modified":"2021-03-18T10:02:32","modified_gmt":"2021-03-18T03:02:32","slug":"launch-with-docker","status":"publish","type":"post","link":"https:\/\/www.briswell-vn.com\/ja\/news\/launch-with-docker\/","title":{"rendered":"Docker\u306e\u5c0e\u5165\u306b\u3064\u3044\u3066"},"content":{"rendered":"<p><\/p>\n<h2><strong>I. Docker\u306f\u4f55\uff1f<\/strong><\/h2>\n<p>Docker\u3068\u306f\u3001\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u3092\u958b\u767a\u30fb\u914d\u7f6e \u30fb\u30c7\u30d7\u30ed\u30a4\u30fb\u5b9f\u65bd\u3059\u308b\u305f\u3081\u306e\u30aa\u30fc\u30d7\u30f3\u30bd\u30fc\u30b9\u30d7\u30e9\u30c3\u30c8\u30d5\u30a9\u30fc\u30e0\u3067\u3059\u3002Docker\u3092\u4f7f\u7528\u3059\u308b\u3068\u3001\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u3092\u30a4\u30f3\u30d5\u30e9\u30b9\u30c8\u30e9\u30af\u30c1\u30e3\u304b\u3089\u5206\u96e2\u3067\u304d\u308b\u305f\u3081\u3001\u30bd\u30d5\u30c8\u30a6\u30a7\u30a2\u3092\u8fc5\u901f\u306b\u914d\u4fe1\u3067\u304d\u307e\u3059\u3002 \u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u3092\u7ba1\u7406\u3059\u308b\u306e\u3068\u540c\u3058\u65b9\u6cd5\u3067\u30a4\u30f3\u30d5\u30e9\u30b9\u30c8\u30e9\u30af\u30c1\u30e3\u3092\u7ba1\u7406\u3067\u304d\u307e\u3059\u3002 \u30b3\u30fc\u30c9\u3092\u8fc5\u901f\u306b\u30c7\u30d7\u30ed\u30a4\u3001\u914d\u7f6e \u3001\u30c6\u30b9\u30c8\u3001\u30c7\u30d7\u30ed\u30a4\u3059\u308b\u305f\u3081\u306eDocker\u306e\u65b9\u6cd5\u8ad6\u3092\u5229\u7528\u3059\u308b\u3053\u3068\u3067\u3001\u30b3\u30fc\u30c9\u306e\u66f8\u304d\u304b\u3089\u672c\u756a\u74b0\u5883\u3067\u306e\u5b9f\u884c\u307e\u3067\u306e\u9045\u5ef6\u3092\u5927\u5e45\u306b\u6e1b\u3089\u3059\u3053\u3068\u304c\u3067\u304d\u307e\u3059\u3002<\/p>\n<h2><strong>II. Docker\u306e\u4e3b\u306a\u30e1\u30ea\u30c3\u30c8<\/strong><\/h2>\n<ul>\n<li>\u4eee\u60f3\u30de\u30b7\u30f3\u3068\u306f\u7570\u306a\u308a\u3001Docker\u306f\u6570\u79d2\u3067\u8d77\u52d5\u304a\u3088\u3073\u505c\u6b62\u3057\u307e\u3059\u3002<\/li>\n<li>\u5fc5\u8981\u306a\u5404\u30b7\u30b9\u30c6\u30e0\u3067\u30b3\u30f3\u30c6\u30ca\u3092\u8d77\u52d5\u3067\u304d\u307e\u3059\u3002<\/li>\n<li>\u30b3\u30f3\u30c6\u30ca\u306f\u3001\u4eee\u60f3\u30de\u30b7\u30f3\u3088\u308a\u3082\u9ad8\u901f\u306b\u69cb\u7bc9\u304a\u3088\u3073\u524a\u9664\u3067\u304d\u307e\u3059\u3002<\/li>\n<li>\u4f5c\u696d\u74b0\u5883\u306e\u8a2d\u5b9a\u304c\u7c21\u5358\u3002<\/li>\n<li>\u4e00\u5ea6\u3060\u3051\u8a2d\u5b9a\u3059\u308b\u3060\u3051\u3067\u3001\u4f9d\u5b58\u95a2\u4fc2\u3092\u518d\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3059\u308b\u5fc5\u8981\u306f\u3042\u308a\u307e\u305b\u3093\u3002<\/li>\n<li>\u4ed6\u306e\u90e8\u5206\u306b\u5f71\u97ff\u3092\u4e0e\u3048\u308b\u74b0\u5883\u3092\u524a\u9664\u3059\u308b\u3068\u304d\u306b\u3001\u30ef\u30fc\u30af\u30b9\u30da\u30fc\u30b9\u3092\u30af\u30ea\u30fc\u30f3\u306b\u4fdd\u3061\u307e\u3059\u3002<\/li>\n<\/ul>\n<h2><strong>III. \u30a4\u30f3\u30b9\u30c8\u30fc\u30eb<\/strong><\/h2>\n<p>https:\/\/docs.docker.com\/get-docker\/ \u306eURL\u3092\u53c2\u7167\u304f\u3060\u3055\u3044<\/p>\n<h2><strong>IV. DOCKER IMAGE<\/strong><\/h2>\n<p>Docker Image\u306f\u3001\u30b3\u30f3\u30c6\u30ca\u30fc\u306e\u4f5c\u6210\u306b\u4f7f\u7528\u3055\u308c\u308b\u8aad\u307f\u53d6\u308a\u5c02\u7528\u306e\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\u3067\u3059\u3002 Image\u306f\u8aad\u307f\u53d6\u308a\u5c02\u7528\u30ec\u30a4\u30e4\u30fc\u3067\u69cb\u6210\u3055\u308c\u307e\u3059\u3002 Image\u306e\u4f5c\u6210\u306f\u3001\u3044\u304f\u3064\u304b\u306e\u8ffd\u52a0\u306e\u30ab\u30b9\u30bf\u30de\u30a4\u30ba\u3092\u4f7f\u7528\u3057\u3066\u5225\u306eImage\u306b\u57fa\u3065\u304f\u3053\u3068\u304c\u3067\u304d\u307e\u3059\u3002 \u3064\u307e\u308a\u3001Docker Image\u306f\u3001OS\u3001\u30d1\u30c3\u30b1\u30fc\u30b8\u3001\u5b9f\u884c\u3059\u308b\u30bd\u30d5\u30c8\u30a6\u30a7\u30a2\u306a\u3069\u306e\u74b0\u5883\u8a2d\u5b9a\u3092\u4fdd\u5b58\u3059\u308b\u5834\u6240\u3067\u3059\u3002<\/p>\n<h2><strong>V. CONTAINER<\/strong><\/h2>\n<p>Docker Container\u306f\u3001\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u3092\u5b9f\u884c\u3059\u308b\u305f\u3081\u306b\u5fc5\u8981\u306a\u3059\u3079\u3066\u306e\u3082\u306e\u304c\u542b\u307e\u308c\u3066\u3044\u308bDocker\u3000Image\u304b\u3089\u4f5c\u6210\u3055\u308c\u307e\u3059\u3002 \u4eee\u60f3\u5316\u3068\u898b\u305f\u3044\u3067\u3059\u304c\u3001\u30b3\u30f3\u30c6\u30ca\u306f\u975e\u5e38\u306b\u8efd\u3044\u306e\u3067\u3001\u30b7\u30b9\u30c6\u30e0\u30d7\u30ed\u30bb\u30b9\u3068\u898b\u306a\u3059\u3053\u3068\u304c\u3067\u304d\u307e\u3059\u3002 \u30b3\u30f3\u30c6\u30ca\u306e\u958b\u59cb\u3001\u505c\u6b62\u3001\u307e\u305f\u306f\u518d\u8d77\u52d5\u306b\u306f\u6570\u79d2\u3057\u304b\u304b\u304b\u308a\u307e\u305b\u3093\u3002 \u7269\u7406\u30b5\u30fc\u30d0\u30fc\u3092\u4f7f\u7528\u3059\u308b\u3068\u3001\u3044\u304f\u3064\u304b\u306e\u666e\u901a\u306a\u4eee\u60f3\u30de\u30b7\u30f3\u3092\u5b9f\u884c\u3059\u308b\u4ee3\u308f\u308a\u306b\u3001Docker\u30b3\u30f3\u30c6\u30ca\u30fc\u3092\u5b9f\u884c\u3067\u304d\u307e\u3059\u3002<\/p>\n<h2><strong>VI. CONTAINER [C] \u3068\u4eee\u60f3\u30de\u30b7\u30f3 [VM]\u306e\u6bd4\u8f03<\/strong><\/h2>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-5435 size-full\" src=\"https:\/\/briswell-vn.com\/wp-content\/uploads\/2021\/01\/compare.jpg\" alt=\"\" width=\"760\" height=\"435\" srcset=\"https:\/\/s3-ap-southeast-1.amazonaws.com\/homepage-media\/wp-content\/uploads\/2021\/01\/28100010\/compare.jpg 760w, https:\/\/s3-ap-southeast-1.amazonaws.com\/homepage-media\/wp-content\/uploads\/2021\/01\/28100010\/compare-300x172.jpg 300w\" sizes=\"auto, (max-width: 760px) 100vw, 760px\" \/><\/p>\n<table style=\"border: 1px solid #000\" width=\"789\">\n<tbody>\n<tr>\n<td style=\"border: 1px solid #000\" width=\"108\"><\/td>\n<td style=\"text-align: center;border: 1px solid #000\" width=\"246\"><strong>CONTAINER<\/strong><\/td>\n<td style=\"text-align: center;border: 1px solid #000\" width=\"252\"><strong>VIRTUAL MACHINE<\/strong><\/td>\n<\/tr>\n<tr>\n<td style=\"border: 1px solid #000\" width=\"108\"><span style=\"color: #000000\"><span style=\"font-family: Segoe UI\"><span style=\"font-size: small\"><span lang=\"ja-JP\">\u30ea\u30bd\u30fc\u30b9<\/span><\/span><\/span><\/span><\/td>\n<td style=\"border: 1px solid #000\" width=\"246\">\u30b3\u30f3\u30c6\u30ca\u5185\u306e\u30d7\u30ed\u30bb\u30b9\u306f\u5b9f\u969b\u306e\u30ea\u30bd\u30fc\u30b9\u3092\u76f4\u63a5\u4f7f\u7528\u3057\u307e\u3059\u304c\u3001\u30aa\u30da\u30ec\u30fc\u30c6\u30a3\u30f3\u30b0\u30b7\u30b9\u30c6\u30e0\u306f\u3001\u5404\u30d7\u30ed\u30bb\u30b9\u306b\u7570\u306a\u308b\u30ea\u30bd\u30fc\u30b9\u5236\u9650\uff08\u307e\u305f\u306f\u7121\u5236\u9650\uff09\u3092\u898f\u5b9a\u3067\u304d\u307e\u3059\u3002<\/td>\n<td style=\"border: 1px solid #000\" width=\"252\">\u3059\u3079\u3066\u304c\u4eee\u60f3\u30cf\u30fc\u30c9\u30a6\u30a7\u30a2\u306b\u3088\u3063\u3066\u5236\u9650\u3055\u308c\u307e\u3059\u3002<\/td>\n<\/tr>\n<tr>\n<td style=\"border: 1px solid #000\" width=\"108\"><span style=\"color: #000000\"><span style=\"font-family: Segoe UI\"><span style=\"font-size: small\"><span lang=\"ja-JP\">\u5b9f\u65bd<\/span><\/span><\/span><\/span><\/td>\n<td style=\"border: 1px solid #000\" width=\"246\">\u00a0\u5b9fOS\u304c\u30bd\u30d5\u30c8\u30a6\u30a7\u30a2\u3092\u5b9f\u884c\u3057\u307e\u3059\u3002<\/td>\n<td style=\"border: 1px solid #000\" width=\"252\">\u5b9fOS\u2192\u4eee\u60f3OS\u2192\u30bd\u30d5\u30c8\u30a6\u30a7\u30a2\u3092\u5b9f\u884c\u3057\u3066\u3044\u308b\u4eee\u60f3OS\u3002 \uff08VPS\u306e\u5834\u5408\u3001\u30cf\u30a4\u30d1\u30fc\u30d0\u30a4\u30b6\u30fc\u30bf\u30a4\u30d71\u304c\u5b9f\u969b\u306eOS\u306b\u7f6e\u304d\u63db\u308f\u308a\u307e\u3059\uff09<\/td>\n<\/tr>\n<tr>\n<td style=\"border: 1px solid #000\" width=\"108\"><span style=\"color: #000000\"><span style=\"font-family: Segoe UI\"><span style=\"font-size: small\"><span lang=\"zxx\">\u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9<\/span><\/span><\/span><\/span><\/td>\n<td style=\"border: 1px solid #000\" width=\"246\">\u5b9f\u969b\u306e\u30bd\u30d5\u30c8\u30a6\u30a7\u30a2\u306f\u5b9f\u969b\u306e\u30cf\u30fc\u30c9\u30a6\u30a7\u30a2\u3067\u5b9f\u884c\u3055\u308c\u307e\u3059\u3002 \u8d77\u52d5\u901f\u5ea6\u306f\u307b\u307c\u901a\u5e38\u306e\u30bd\u30d5\u30c8\u30a6\u30a7\u30a2\u3068\u540c\u3058\u3067\u3059\u3002<\/td>\n<td style=\"border: 1px solid #000\" width=\"252\">\u5b9f\u30cf\u30fc\u30c9\u30a6\u30a7\u30a2\u306f\u4eee\u60f3OS\u3092\u642d\u8f09\u3059\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\u3002 \u30b3\u30f3\u30d4\u30e5\u30fc\u30bf\u304c\u8d77\u52d5\u3057\u305f\u305f\u3081\u3001\u30bd\u30d5\u30c8\u30a6\u30a7\u30a2\u304c\u4f7f\u7528\u3055\u308c\u308b\u307e\u3067\u306b\u6642\u9593\u304c\u304b\u304b\u308a\u307e\u3057\u305f\u3002<\/td>\n<\/tr>\n<tr>\n<td style=\"border: 1px solid #000\" width=\"108\">\u30bb\u30ad\u30e5\u30ea\u30c6\u30a3\u30fc<\/td>\n<td style=\"border: 1px solid #000\" width=\"246\">\u540c\u3058\u30b3\u30f3\u30c6\u30ca\u5185\u306e\u30d7\u30ed\u30bb\u30b9\u306f\u3001\u5f15\u304d\u7d9a\u304d\u76f8\u4e92\u306b\u5f71\u97ff\u3092\u4e0e\u3048\u308b\u53ef\u80fd\u6027\u304c\u3042\u308a\u307e\u3059\u3002 \u305f\u3060\u3057\u3001\u901a\u5e38\u3001\u5404\u30b3\u30f3\u30c6\u30ca\u306f1\u3064\u306e\u30d7\u30ed\u30bb\u30b9\u306e\u307f\u3092\u5b9f\u884c\u3059\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\u3002 \u7570\u306a\u308b\u30b3\u30f3\u30c6\u30ca\u306e\u30d7\u30ed\u30bb\u30b9\u306f\u4e92\u3044\u306b\u5f71\u97ff\u3092\u4e0e\u3048\u308b\u3053\u3068\u306f\u3067\u304d\u307e\u305b\u3093\u3002<\/td>\n<td style=\"border: 1px solid #000\" width=\"252\">\u30bd\u30d5\u30c8\u30a6\u30a7\u30a2\u306b\u60aa\u610f\u306e\u3042\u308b\u30b3\u30fc\u30c9\u304c\u3042\u308b\u3068\u3001\u540c\u3058VM\u5185\u306e\u4ed6\u306e\u30d7\u30ed\u30bb\u30b9\u30ea\u30bd\u30fc\u30b9\u306b\u5f71\u97ff\u3092\u4e0e\u3048\u308b\u53ef\u80fd\u6027\u304c\u3042\u308a\u307e\u3059\u3002<\/td>\n<\/tr>\n<tr>\n<td style=\"border: 1px solid #000\" width=\"108\">\u30b5\u30dd\u30fc\u30c8\u30bd\u30d5\u30c8\u30a6\u30a7\u30a2<\/td>\n<td style=\"border: 1px solid #000\" width=\"246\"><span style=\"font-weight: 400\">Docker Engine, LXC Linux Container, Apache Mesos, CRI-O (Kubernetes)\u2026<\/span><\/td>\n<td style=\"border: 1px solid #000\" width=\"252\"><span style=\"font-weight: 400\">VirtualBox, VMWare, Microsoft Hyper-V, Parallels, Linux KVM, Docker Machine\u2026<\/span><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>&nbsp;<\/p>\n<h2><strong>VII. DOCKERFILE<\/strong><\/h2>\n<p>Dockerfile\u306f\u3001Docker\u304cImage\u3092\u30d3\u30eb\u30c9\u3059\u308b\u305f\u3081\u306e\u30b3\u30f3\u30d5\u30a3\u30b0\u30d5\u30a1\u30a4\u30eb\u3067\u3059\u3002 \u57fa\u672cImage\u3092\u4f7f\u7528\u3059\u308b\u3053\u3068\u3067\u521d\u671fImage\u30af\u30e9\u30b9\u3092\u69cb\u7bc9\u3057\u307e\u3059\u3002 \u3044\u304f\u3064\u304b\u306e\u57fa\u672c\u7684\u306aImage\uff1apython\u3001ubuntu\u3001alpine\u3002 \u6b21\u306b\u3001\u8ffd\u52a0\u306e\u30ec\u30a4\u30e4\u30fc\u304c\u3042\u308b\u5834\u5408\u306f\u3001\u30d9\u30fc\u30b9\u30ec\u30a4\u30e4\u30fc\u306e\u4e0a\u306b\u30b9\u30bf\u30c3\u30af\u3055\u308c\u307e\u3059\u3002<\/p>\n<p><span style=\"color: #000000\"><span style=\"font-family: Segoe UI\"><span style=\"font-size: small\"><span lang=\"ja-JP\">\u30b3\u30f3\u30d5\u30a3\u30b0\uff1a<\/span><\/span><\/span><\/span><\/p>\n<ul>\n<li><span style=\"font-weight: 400\">FROM\uff1a\u5143\u306eImage\u3092\u6307\u5b9a\u3057\u307e\u3059\uff1apython, ubuntu, alpine\u2026<\/span><\/li>\n<li><span style=\"font-weight: 400\">LABEL \uff1aImage\u306b\u30e1\u30bf\u30c7\u30fc\u30bf\u3092\u63d0\u4f9b\u3057\u307e\u3059\u3002 \u30e1\u30f3\u30c6\u30ca\u30fc\u60c5\u5831\u3092\u8ffd\u52a0\u3059\u308b\u305f\u3081\u306b\u4f7f\u7528\u3067\u304d\u307e\u3059\u3002 Image\u306e\u30e9\u30d9\u30eb\u3092\u8868\u793a\u3059\u308b\u306b\u306f\u3001dockerinspect\u30b3\u30de\u30f3\u30c9\u3092\u4f7f\u7528\u3057\u307e\u3059\u3002 <\/span><\/li>\n<li><span style=\"font-weight: 400\">ENV \uff1a\u74b0\u5883\u5909\u6570\u3092\u8a2d\u5b9a\u3057\u307e\u3059\u3002<\/span><\/li>\n<li><span style=\"font-weight: 400\">RUN \uff1aImage\u3092\u69cb\u7bc9\u3059\u308b\u3068\u304d\u306b\u30b3\u30de\u30f3\u30c9\u3092\u4f5c\u6210\u3067\u304d\u307e\u3059\u3002 \u30d1\u30c3\u30b1\u30fc\u30b8\u3092\u30b3\u30f3\u30c6\u30ca\u306b\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3059\u308b\u305f\u3081\u306b\u4f7f\u7528\u3055\u308c\u307e\u3059\u3002<\/span><\/li>\n<li><span style=\"font-weight: 400\">COPY \uff1a\u30d5\u30a1\u30a4\u30eb\u3068\u30d5\u30a9\u30eb\u30c0\u30fc\u3092\u30b3\u30f3\u30c6\u30ca\u30fc\u306b\u30b3\u30d4\u30fc\u3057\u307e\u3059\u3002<\/span><\/li>\n<li><span style=\"font-weight: 400\">\u00a0<\/span><span style=\"font-weight: 400\">ADD \uff1a\u30d5\u30a1\u30a4\u30eb\u3068\u30d5\u30a9\u30eb\u30c0\u30fc\u3092\u30b3\u30f3\u30c6\u30ca\u30fc\u306b\u30b3\u30d4\u30fc\u3057\u307e\u3059\u3002<\/span><\/li>\n<li><span style=\"font-weight: 400\">CMD \uff1a\u5b9f\u884c\u53ef\u80fd\u30b3\u30f3\u30c6\u30ca\u306e\u30b3\u30de\u30f3\u30c9\u3068\u5f15\u6570\u3092\u6307\u5b9a\u3057\u307e\u3059\u3002 \u30d1\u30e9\u30e1\u30fc\u30bf\u306f\u30aa\u30fc\u30d0\u30fc\u30e9\u30a4\u30c9\u3067\u304d\u3001CMD\u306e\u307f\u3067\u3059\u3002<\/span><\/li>\n<li><span style=\"font-weight: 400\">WORKDIR \uff1a\u6b21\u306e\u3088\u3046\u306a\u4ed6\u306e\u30c7\u30a3\u30ec\u30af\u30c6\u30a3\u30d6\u306e\u4f5c\u696d\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u3092\u8a2d\u5b9a\u3057\u307e\u3059\u3002\u4f8b\u3048\u3070\uff1aRUN, CMD, ENTRYPOINT, COPY, ADD,\u2026<\/span><\/li>\n<li><span style=\"font-weight: 400\">ARG \uff1aImage\u306e\u30d3\u30eb\u30c9\u4e2d\u306b\u4f7f\u7528\u3055\u308c\u308b\u5909\u6570\u5024\u3092\u5b9a\u7fa9\u3057\u307e\u3059\u3002<\/span><\/li>\n<li><span style=\"font-weight: 400\">ENTRYPOINT \uff1a\u5b9f\u884c\u53ef\u80fd\u30b3\u30f3\u30c6\u30ca\u306e\u30b3\u30de\u30f3\u30c9\u3068\u5f15\u6570\u3092\u6307\u5b9a\u3057\u307e\u3059\u3002<\/span><\/li>\n<li><span style=\"font-weight: 400\">EXPOSE \uff1aImage\u306e\u30dd\u30fc\u30c8\u3092\u5b9a\u7fa9\u3057\u307e\u3059\u3002<\/span><\/li>\n<li><span style=\"font-weight: 400\">VOLUME \uff1a\u30c7\u30fc\u30bf\u306b\u30a2\u30af\u30bb\u30b9\u3057\u3066\u4fdd\u5b58\u3059\u308b\u305f\u3081\u306e\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u30de\u30a6\u30f3\u30c8\u30dd\u30a4\u30f3\u30c8\u3092\u4f5c\u6210\u3057\u307e\u3059<\/span><\/li>\n<\/ul>\n<p>\u4f8b:<\/p>\n<pre>FROM node:12-alpine\r\nRUN apk add git\r\nRUN mkdir -p \/home\/node\/app\r\nWORKDIR \/home\/node\/app\r\nCOPY package*.json .\/\r\nRUN npm install\r\nCOPY . .\r\nENV HOST=0.0.0.0 PORT=3334\r\nEXPOSE $PORT\r\nCMD [ \"node\", \".\" ]\r\n\r\n<\/pre>\n<h2><strong>VIII. \u6982\u5ff5<\/strong><\/h2>\n<p><span style=\"font-weight: 400\"><strong>Docker Client\uff1a<\/strong>\u30bf\u30fc\u30df\u30ca\u30eb\u306e\u30b3\u30de\u30f3\u30c9\u3067docker\u3068\u76f8\u4e92\u4f5c\u7528\u3057\u307e\u3059\u3002 Docker\u30af\u30e9\u30a4\u30a2\u30f3\u30c8\u306fAPI\u3092\u4f7f\u7528\u3057\u3066\u30b3\u30de\u30f3\u30c9\u3092Docker\u30c7\u30fc\u30e2\u30f3\u306b\u9001\u4fe1\u3057\u307e\u3059\u3002<\/span><\/p>\n<p><span style=\"font-weight: 400\"><strong>Docker Daemon\uff1a<\/strong>DockerAPI\u304b\u3089\u306e\u30ea\u30af\u30a8\u30b9\u30c8\u7528\u306eDocker\u30b5\u30fc\u30d0\u30fc\u3067\u3059\u3002 Image\u3001\u30b3\u30f3\u30c6\u30ca\u3001\u30cd\u30c3\u30c8\u30ef\u30fc\u30af\u3001\u304a\u3088\u3073\u30dc\u30ea\u30e5\u30fc\u30e0\u3092\u7ba1\u7406\u3057\u307e\u3059\u3002<\/span><\/p>\n<p><span style=\"font-weight: 400\"><strong>Docker Volumes\uff1a<\/strong><\/span><span style=\"font-weight: 400\">\u30a2\u30d7\u30ea\u3092\u4f7f\u7528\u304a\u3088\u3073\u4f5c\u6210\u3059\u308b\u305f\u3081\u306e\u30c7\u30fc\u30bf\u3092\u7d99\u7d9a\u7684\u306b\u4fdd\u5b58\u3059\u308b\u5834\u6240\u3067\u3059\u3002<\/span><\/p>\n<p><span style=\"font-weight: 400\"><strong>Docker Registry<\/strong>\uff1aDocker Images\u306e\u30d7\u30e9\u30a4\u30d9\u30fc\u30c8\u30b9\u30c8\u30ec\u30fc\u30b8\u3067\u3059\u3002 Image\u306f\u30ec\u30b8\u30b9\u30c8\u30ea\u306b\u30d7\u30c3\u30b7\u30e5\u3055\u308c\u3001\u30af\u30e9\u30a4\u30a2\u30f3\u30c8\u306f\u30ec\u30b8\u30b9\u30c8\u30ea\u304b\u3089Image\u3092\u30d7\u30eb\u3057\u307e\u3059\u3002 \u72ec\u81ea\u306e\u30ec\u30b8\u30b9\u30c8\u30ea\u3001\u307e\u305f\u306fAWS\u3001Google Cloud\u3001MicrosoftAzure\u306a\u3069\u306e\u30d7\u30ed\u30d0\u30a4\u30c0\u30fc\u306e\u30ec\u30b8\u30b9\u30c8\u30ea\u3092\u4f7f\u7528\u3067\u304d\u307e\u3059\u3002<\/span><\/p>\n<p><span style=\"font-weight: 400\"><strong>Docker Hub\uff1a<\/strong>\u00a0Docker Images\u6700\u5927\u306e\u30ec\u30b8\u30b9\u30c8\u30ea\uff08\u30c7\u30d5\u30a9\u30eb\u30c8\uff09\u3067\u3059\u3002 Image\u3092\u691c\u7d22\u3057\u3066\u3001Docker Hub\uff08\u7121\u6599\uff09\u306b\u72ec\u81ea\u306eImage\u3092\u4fdd\u5b58\u3067\u304d\u307e\u3059\u3002<\/span><\/p>\n<p><span style=\"font-weight: 400\"><strong>Docker Repository\uff1a<\/strong>\u540c\u3058\u540d\u524d\u3067\u30bf\u30b0\u304c\u7570\u306a\u308bDocker\u30a4\u30e1\u30fc\u30b8\u306e\u30bb\u30c3\u30c8\u3002 \u4f8b\uff1anode:12-alpine.<\/span><\/p>\n<p><span style=\"font-weight: 400\"><strong>Docker Networking\uff1a<\/strong>\u30b3\u30f3\u30c6\u30ca\u3092\u76f8\u4e92\u306b\u63a5\u7d9a\u3067\u304d\u307e\u3059\u3002 \u3053\u306e\u63a5\u7d9a\u306f\u30011\u3064\u307e\u305f\u306f\u8907\u6570\u306e\u30db\u30b9\u30c8\u4e0a\u3067\u884c\u3046\u3053\u3068\u304c\u3067\u304d\u307e\u3059\u3002<\/span><\/p>\n<p><span style=\"font-weight: 400\"><strong>Docker Compose\uff1a<\/strong>\u3053\u306e\u30c4\u30fc\u30eb\u3092\u4f7f\u7528\u3059\u308b\u3068\u3001\u8907\u6570\u306eDocker\u30b3\u30f3\u30c6\u30ca\u30fc\u3067\u30a2\u30d7\u30ea\u3092\u7c21\u5358\u306b\u5b9f\u884c\u3067\u304d\u307e\u3059\u3002 Docker Compose\u3092\u4f7f\u7528\u3059\u308b\u3068\u3001docker-compose.yml\u30d5\u30a1\u30a4\u30eb\u3067\u30b3\u30de\u30f3\u30c9\u3092\u69cb\u6210\u3057\u3066\u518d\u5229\u7528\u3067\u304d\u307e\u3059\u3002 Docker\u304c\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3055\u308c\u305f\u72b6\u614b\u3067\u5229\u7528\u3067\u304d\u307e\u3059\u3002<\/span><\/p>\n<p><span style=\"font-weight: 400\"><strong>Docker Swarm\uff1a<\/strong>\u30b3\u30f3\u30c6\u30ca\u30fc\u306e\u30c7\u30d7\u30ed\u30a4\u3092\u8abf\u6574\u3057\u307e\u3059\u3002<\/span><\/p>\n<p><span style=\"font-weight: 400\"><strong>Docker Services\uff1a<\/strong>\u672c\u756a\u74b0\u5883\u306e\u30b3\u30f3\u30c6\u30ca\u30fc\u3067\u3059\u3002 \u30b5\u30fc\u30d3\u30b9\u306fImage\u306e\u307f\u3092\u5b9f\u884c\u3057\u307e\u3059\u304c\u3001Image\u3092\u5b9f\u884c\u3059\u308b\u65b9\u6cd5\u3092\u6697\u53f7\u5316\u3057\u307e\u3059\u3002 \u4f7f\u7528\u3059\u308b\u30dd\u30fc\u30c8\u3001\u30b5\u30fc\u30d3\u30b9\u3092\u5b9f\u884c\u3059\u308b\u305f\u3081\u306e\u30b3\u30f3\u30c6\u30ca\u30fc\u306e\u30b3\u30d4\u30fc\u6570\u306f\u3001\u5fc5\u8981\u304b\u3064\u5373\u6642\u306e\u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u3092\u767a\u63ee\u3057\u307e\u3059\u3002<\/span><\/p>\n<h2><strong>IX. Docker\u306e\u57fa\u672c\u306a\u30b3\u30de\u30f3\u30c9<\/strong><\/h2>\n<p><span style=\"font-weight: 400\">image\/container\u30ea\u30b9\u30c8<\/span><\/p>\n<pre><code><span style=\"font-weight: 400\">docker image\/container ls<\/span><\/code><\/pre>\n<p><span style=\"font-weight: 400\">\u3059\u3079\u3066\u306eontainers\u30ea\u30b9\u30c8<\/span><\/p>\n<pre><code><span style=\"font-weight: 400\">docker ps \u2013a<\/span><\/code><\/pre>\n<p><span style=\"font-weight: 400\">container\u3092\u30b9\u30c8\u30c3\u30d7<\/span><\/p>\n<pre><code><span style=\"font-weight: 400\">docker stop &lt;Container\u540d&gt;<\/span><\/code><\/pre>\n<p><span style=\"font-weight: 400\">Image\u304b\u3089Container\u3092\u5b9f\u65bd\u304b\u3064Container\u540d\u3092\u5909\u66f4<\/span><\/p>\n<pre><code><span style=\"font-weight: 400\">docker run \u2013name &lt;Container\u540d&gt; &lt;Image\u540d&gt;<\/span><\/code><\/pre>\n<p><span style=\"font-weight: 400\">\u3059\u3079\u3066\u306econtainer\u3092\u30b9\u30c8\u30c3\u30d7<\/span><\/p>\n<pre><code><span style=\"font-weight: 400\">docker stop $(docker ps \u2013a \u2013q)<\/span><\/code><\/pre>\n<p><span style=\"font-weight: 400\">container\u30ed\u30b0\u3092\u8868\u793a<\/span><\/p>\n<pre><code><span style=\"font-weight: 400\">docker logs &lt;Container\u540d&gt;<\/span><\/code><\/pre>\n<p><span style=\"font-weight: 400\">container\u304b\u3089Image\u3092\u30d3\u30eb\u30c9<\/span><\/p>\n<pre><span style=\"font-weight: 400\"><code>docker build -t &lt;Container\u540d&gt;<\/code> <\/span><\/pre>\n<p>\u30d0\u30c3\u30af\u30b0\u30e9\u30a6\u30f3\u30c9\u3067\u5b9f\u884c\u3055\u308c\u308b\u30b3\u30f3\u30c6\u30ca\u3092\u4f5c\u6210<\/p>\n<pre><code><span style=\"font-weight: 400\">docker run -d &lt;Image\u540d&gt;<\/span><\/code><\/pre>\n<p><span style=\"font-weight: 400\">container\u3092\u8d77\u52d5<\/span><\/p>\n<pre><code><span style=\"font-weight: 400\">docker start &lt;Container\u540d&gt;<\/span><\/code><\/pre>\n<p>See more: <a href=\"https:\/\/docs.docker.com\/reference\/\">https:\/\/docs.docker.com\/reference\/<\/a><\/p>\n<h2><strong>X. \u521d\u671f\u8a2d\u5b9a<\/strong><\/h2>\n<p>\u30b9\u30c6\u30c3\u30d7\uff11: AWS\u306eEC2\u306b\u30a2\u30af\u30bb\u30b9<\/p>\n<ul>\n<li>Tera Term\u30c4\u30fc\u30eb\u3092\u958b\u304f<\/li>\n<li>Host\u306b\u30db\u30b9\u30c8\u30b5\u30fc\u30d0IP\u3092\u5165\u529b<\/li>\n<\/ul>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-5592 size-full\" src=\"https:\/\/briswell-vn.com\/wp-content\/uploads\/2021\/01\/host-teraterm.png\" alt=\"\" width=\"658\" height=\"339\" srcset=\"https:\/\/s3-ap-southeast-1.amazonaws.com\/homepage-media\/wp-content\/uploads\/2021\/01\/04163035\/host-teraterm.png 658w, https:\/\/s3-ap-southeast-1.amazonaws.com\/homepage-media\/wp-content\/uploads\/2021\/01\/04163035\/host-teraterm-300x155.png 300w\" sizes=\"auto, (max-width: 658px) 100vw, 658px\" \/><\/p>\n<ul>\n<li>username\u3068key\u306b\u5165\u529b\u3057\u3066\u304b\u3089\u3001OK\u30dc\u30bf\u30f3\u3092\u62bc\u4e0b\u3059\u308b<\/li>\n<li>\n<div>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-5593 size-full\" src=\"https:\/\/briswell-vn.com\/wp-content\/uploads\/2021\/01\/key-teraterm.png\" alt=\"\" width=\"462\" height=\"429\" srcset=\"https:\/\/s3-ap-southeast-1.amazonaws.com\/homepage-media\/wp-content\/uploads\/2021\/01\/04163312\/key-teraterm.png 462w, https:\/\/s3-ap-southeast-1.amazonaws.com\/homepage-media\/wp-content\/uploads\/2021\/01\/04163312\/key-teraterm-300x279.png 300w, https:\/\/s3-ap-southeast-1.amazonaws.com\/homepage-media\/wp-content\/uploads\/2021\/01\/04163312\/key-teraterm-269x250.png 269w\" sizes=\"auto, (max-width: 462px) 100vw, 462px\" \/><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-5594 size-full\" src=\"https:\/\/briswell-vn.com\/wp-content\/uploads\/2021\/01\/Terminal.png\" alt=\"\" width=\"659\" height=\"343\" srcset=\"https:\/\/s3-ap-southeast-1.amazonaws.com\/homepage-media\/wp-content\/uploads\/2021\/01\/04163531\/Terminal.png 659w, https:\/\/s3-ap-southeast-1.amazonaws.com\/homepage-media\/wp-content\/uploads\/2021\/01\/04163531\/Terminal-300x156.png 300w\" sizes=\"auto, (max-width: 659px) 100vw, 659px\" \/><\/p>\n<p><span style=\"font-weight: 400\">\u30b9\u30c6\u30c3\u30d7\uff12: Docker\u3092\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb<\/span><\/p>\n<ol>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">\u3042\u306a\u305f\u306e\u30a4\u30f3\u30b9\u30c6\u30f3\u30b9\u3067\u30d1\u30c3\u30b1\u30fc\u30b8\u3092\u66f4\u65b0<\/span>\n<pre><code><span style=\"font-weight: 400\">sudo yum update -y<\/span><\/code><\/pre>\n<\/li>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">Docker\u3092\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb<\/span>\n<pre><code><span style=\"font-weight: 400\">sudo yum install docker -y<\/span><\/code><\/pre>\n<\/li>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">Docker\u30b5\u30fc\u30d3\u30b9\u3092\u8d77\u52d5<\/span>\n<pre><code><span style=\"font-weight: 400\">sudo service docker start<\/span><\/code><\/pre>\n<\/li>\n<li style=\"font-weight: 400\">ec2-user\u3092docker\u30b0\u30eb\u30fc\u30d7\u306b\u8ffd\u52a0\u3057\u3066\u3001sudo\u3092\u4f7f\u7528\u305b\u305a\u306bDocker\u30b3\u30de\u30f3\u30c9\u3092\u5b9f\u884c\u3067\u304d\u308b\u3088\u3046\u306b\u3057\u307e\u3059\u3002\n<pre><code><span style=\"font-weight: 400\">sudo usermod -a -G docker ec2-user<\/span><\/code><\/pre>\n<p>&nbsp;<\/li>\n<\/ol>\n<p><span style=\"font-weight: 400\">\u30b9\u30c6\u30c3\u30d7\uff13: GIT\u306e\u8a2d\u5b9a<\/span><\/p>\n<ol>\n<li><span style=\"font-weight: 400\">\u00a0Git\u3092\u30bb\u30c3\u30c8\u30a2\u30c3\u30d7<\/span>\n<pre><span style=\"font-family: Consolas, Monaco, monospace\">sudo yum install git\r\n<\/span><\/pre>\n<\/li>\n<li><span style=\"font-weight: 400\">\u00a0\u30c7\u30d7\u30ed\u30a4\u3092\u884c\u3044\u305f\u3044\u30bd\u30fc\u30b9\u30b3\u30fc\u30c9\u3092Git\u304b\u3089Clone\/pull\u3059\u308b<\/span>\n<pre><span style=\"font-weight: 400\">git clone https:\/\/usernameToken:passwordToken@gitlab.com\/&lt;project name&gt;\/&lt;git name&gt;.git\r\n\u307e\u305f\u306f\r\ngit pull origin develop<\/span><\/pre>\n<\/li>\n<\/ol>\n<\/div>\n<div>\n<p>** usernameToken\u306fDeployToken\u540d\u3067\u3042\u3063\u3066\u3001passwordToken\u306f\u6587\u5b57\u306e\u30e9\u30f3\u30c0\u30e0\u306a\u6587\u5b57\u5217\u304b\u3089Git\u3067\u81ea\u52d5\u306b\u4f5c\u6210\u3059\u308b\u3002(<a href=\"https:\/\/docs.gitlab.com\/ee\/user\/project\/deploy_tokens\/\">\u3053\u3061\u3089\u3092\u53c2\u7167<\/a>).<\/p>\n<\/div>\n<\/li>\n<\/ul>\n<h2><strong>XI. \u30c7\u30d7\u30ed\u30a4<\/strong><\/h2>\n<ol>\n<li><span style=\"font-weight: 400\">\u30bd\u30fc\u30b9\u30b3\u30fc\u30c9\u683c\u7d0d\u3057\u3066\u3044\u308b\u30d5\u30a9\u30eb\u30c0\u306b\u79fb\u52d5<\/span>\n<pre><code><span style=\"font-family: Consolas, Monaco, monospace\">cd &lt;\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u30d5\u30a9\u30eb\u30c0&gt;\r\n<\/span><\/code><\/pre>\n<p>\u30bd\u30fc\u30b9\u306eDockerfile-dev\u30d5\u30a1\u30a4\u30eb\u306f\u4ee5\u4e0b\u306b\u3088\u308a\u8a2d\u5b9a\u3055\u308c\u308b\u3053\u3068<\/p>\n<div>\n<pre># Check out https:\/\/hub.docker.com\/_\/node to select a new base image\r\nFROM node:12-alpine\r\nRUN apk add git\r\n\r\n# Set to a non-root built-in user `node`\r\nUSER node\r\n\r\n# Create app directory (with user `node`)\r\nRUN mkdir -p \/home\/node\/app\r\nWORKDIR \/home\/node\/app\r\n\r\nENV NODE_ENV=\"&lt;\u74b0\u5883\u540d&gt;\"\r\nENV PORT=\"3334\" ENV DEBUG=\"front:*\"\r\nENV SESSION_SECRET=\"session-secret\"\r\n\r\n# Install app dependencies\r\n# A wildcard is used to ensure both package.json AND package-lock.json are copied\r\n# where available (npm@5+)\r\nCOPY package*.json .\/\r\nRUN npm install\r\n\r\n# Bundle app source code\r\nCOPY . .\r\n\r\n# Bind to all network interfaces so that it can be mapped to the host OS\r\nENV HOST=0.0.0.0 PORT=3334\r\nEXPOSE $PORT\r\nCMD [ \"node\", \".\" ]<\/pre>\n<\/div>\n<\/li>\n<li><span style=\"font-weight: 400\">Image\u30bd\u30fc\u30b9\u3092\u30d3\u30eb\u30c9<\/span>\n<pre><span style=\"font-family: Consolas, Monaco, monospace\"><code>docker build --no-cache -t &lt;<span style=\"font-weight: 400\">Image\u540d<\/span>&gt; -f Dockerfile.dev .<\/code> (\u958b\u767a\u74b0\u5883\u7528)<\/span><\/pre>\n<p><span style=\"font-weight: 400\">* -t : Image\u30bf\u30b0\u306e\u30aa\u30d7\u30b7\u30e7\u30f3<br \/>\n* . : \u30bd\u30fc\u30b9\u30d5\u30a9\u30eb\u30c0<br \/>\n* &#8211;no-cache: \u30ad\u30e3\u30c3\u30b7\u30e5\u4fdd\u5b58\u3057\u306a\u3044<\/span><\/li>\n<li><span style=\"font-weight: 400\">Image\u30bd\u30fc\u30b9\u3067Container\u3092\u8d77\u52d5<\/span>\n<pre><code><span style=\"font-family: Consolas, Monaco, monospace\">docker run -dp &lt;\u30db\u30b9\u30c8\u00b7<span style=\"font-weight: 400\">\u30dd\u30fc\u30c8&gt;:&lt;Container\u30dd\u30fc\u30c8&gt;<\/span> --name &lt;<span style=\"font-weight: 400\">Container\u540d<\/span>&gt; &lt;<span style=\"font-weight: 400\">Image\u540d<\/span>&gt;<\/span><\/code><\/pre>\n<p><span style=\"font-weight: 400\">* &#8211;name: Container\u540d\u3092\u8a2d\u5b9a\u3002\u540d\u524d\u306f\u4e00\u610f\u3067\u3059\u3002\u305d\u3046\u3067\u306a\u3044\u5834\u5408\u306f\u3001docker\u304c\u751f\u6210\u3057\u307e\u3059\u3002<br \/>\n* -p: container\u30dd\u30fc\u30c8\u3092\u958b\u304f.<br \/>\n* -d: \u30d0\u30c3\u30af\u30b0\u30e9\u30a6\u30f3\u30c9\u30e2\u30fc\u30c9\u3092\u30bf\u30fc\u30f3\u30aa\u30f3<\/span><\/li>\n<li><span style=\"font-weight: 400\">nginx\u30d5\u30a9\u30eb\u30c0\u306b\u30a2\u30af\u30bb\u30b9<\/span>\n<pre><code><span style=\"font-family: Consolas, Monaco, monospace\">cd nginx<\/span><\/code><\/pre>\n<p>nginx\u30d5\u30a9\u30eb\u30c0\u4e2d\u306bdefault.conf\u3068Dockerfile\u30d5\u30a1\u30a4\u30eb\u3092\u542b\u3081\u3066\u3044\u308b<br \/>\ndefault.conf\u30d5\u30a1\u30a4\u30eb\uff1a<\/p>\n<div>\n<pre>server {\r\n \u00a0\u00a0\u00a0location\u00a0\/\u00a0{\r\n \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0proxy_set_header\u00a0Host\u00a0$host;\r\n \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0proxy_set_header\u00a0X-Real-IP\u00a0$remote_addr;\r\n \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0proxy_set_header\u00a0X-Forwarded-For\u00a0$proxy_add_x_forwarded_for;\r\n \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0proxy_set_header\u00a0X-Forwarded-Proto\u00a0$scheme;\r\n \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0proxy_pass\u00a0http:\/\/app:3334;\r\n \u00a0\u00a0\u00a0}\r\n}<\/pre>\n<p>Dockerfile\u30d5\u30a1\u30a4\u30eb<\/p>\n<\/div>\n<pre>FROM nginx\r\nRUN rm \/etc\/nginx\/conf.d\/* \r\nCOPY default.conf \/etc\/nginx\/conf.d\/<\/pre>\n<\/li>\n<li><span style=\"font-weight: 400\">\u30bd\u30fc\u30b9\u7528Image nginx\u3092\u30d3\u30eb\u30c9<\/span>\n<pre><code><span style=\"font-family: Consolas, Monaco, monospace\">docker build -t es\/nginx .<\/span><\/code><\/pre>\n<\/li>\n<li><span style=\"font-weight: 400\">es\/nginx\u306eContainer\u3092\u8d77\u52d5<\/span>\n<pre><code><span style=\"font-weight: 400\">docker run -dp 80:80 --link &lt;Container\u540d&gt;:app --name nginx-proxy es\/nginx<\/span><\/code><\/pre>\n<\/li>\n<\/ol>\n<p><span style=\"font-weight: 400\">\u30b9\u30c6\u30c3\u30d7\uff13: Image\u3068Container\u3092\u8868\u793a<\/span><\/p>\n<ul>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">image\u30ea\u30b9\u30c8<\/span><\/li>\n<\/ul>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-5448 size-full\" src=\"https:\/\/briswell-vn.com\/wp-content\/uploads\/2021\/01\/images-ec2.png\" alt=\"\" width=\"789\" height=\"124\" srcset=\"https:\/\/s3-ap-southeast-1.amazonaws.com\/homepage-media\/wp-content\/uploads\/2021\/01\/28122425\/images-ec2.png 789w, https:\/\/s3-ap-southeast-1.amazonaws.com\/homepage-media\/wp-content\/uploads\/2021\/01\/28122425\/images-ec2-300x47.png 300w, https:\/\/s3-ap-southeast-1.amazonaws.com\/homepage-media\/wp-content\/uploads\/2021\/01\/28122425\/images-ec2-768x121.png 768w\" sizes=\"auto, (max-width: 789px) 100vw, 789px\" \/><\/p>\n<ul>\n<li>\u00a0container\u30ea\u30b9\u30c8<\/li>\n<\/ul>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-5449 \" src=\"https:\/\/briswell-vn.com\/wp-content\/uploads\/2021\/01\/container-ec2-1024x87.png\" alt=\"\" width=\"789\" height=\"67\" srcset=\"https:\/\/s3-ap-southeast-1.amazonaws.com\/homepage-media\/wp-content\/uploads\/2021\/01\/28122548\/container-ec2-1024x87.png 1024w, https:\/\/s3-ap-southeast-1.amazonaws.com\/homepage-media\/wp-content\/uploads\/2021\/01\/28122548\/container-ec2-300x25.png 300w, https:\/\/s3-ap-southeast-1.amazonaws.com\/homepage-media\/wp-content\/uploads\/2021\/01\/28122548\/container-ec2-768x65.png 768w, https:\/\/s3-ap-southeast-1.amazonaws.com\/homepage-media\/wp-content\/uploads\/2021\/01\/28122548\/container-ec2.png 1348w\" sizes=\"auto, (max-width: 789px) 100vw, 789px\" \/><\/p>\n<p><span style=\"font-weight: 400\"> \u30b9\u30c6\u30c3\u30d74\uff1aWebsite\u306b\u30a2\u30af\u30bb\u30b9<\/span><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-5450 size-large\" src=\"https:\/\/briswell-vn.com\/wp-content\/uploads\/2021\/01\/login-ec2-1024x490.jpg\" alt=\"\" width=\"1024\" height=\"490\" srcset=\"https:\/\/s3-ap-southeast-1.amazonaws.com\/homepage-media\/wp-content\/uploads\/2021\/01\/28122802\/login-ec2-1024x490.jpg 1024w, https:\/\/s3-ap-southeast-1.amazonaws.com\/homepage-media\/wp-content\/uploads\/2021\/01\/28122802\/login-ec2-300x144.jpg 300w, https:\/\/s3-ap-southeast-1.amazonaws.com\/homepage-media\/wp-content\/uploads\/2021\/01\/28122802\/login-ec2-768x368.jpg 768w, https:\/\/s3-ap-southeast-1.amazonaws.com\/homepage-media\/wp-content\/uploads\/2021\/01\/28122802\/login-ec2.jpg 1372w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/p>\n<h2>XI. \u53c2\u7167<\/h2>\n<p><a href=\"https:\/\/docs.docker.com\/get-docker\/\">https:\/\/docs.docker.com\/get-docker\/<\/a><\/p>\n<p><a href=\"https:\/\/docs.docker.com\/reference\/\">https:\/\/docs.docker.com\/reference\/<\/a><\/p>\n<p><a href=\"https:\/\/docs.docker.com\/\">https:\/\/docs.docker.com\/<\/a><\/p>\n<p><a href=\"https:\/\/egghead.io\/lessons\/node-js-setup-an-nginx-proxy-for-a-node-js-app-with-docker\">https:\/\/egghead.io\/lessons\/node-js-setup-an-nginx-proxy-for-a-node-js-app-with-docker<\/a><\/p>","protected":false},"excerpt":{"rendered":"<p>I. Docker\u306f\u4f55\uff1f Docker\u3068\u306f\u3001\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u3092\u958b\u767a\u30fb\u914d\u7f6e \u30fb\u30c7\u30d7\u30ed\u30a4\u30fb\u5b9f\u65bd\u3059\u308b\u305f\u3081\u306e\u30aa\u30fc\u30d7\u30f3\u30bd\u30fc\u30b9\u30d7\u30e9\u30c3\u30c8\u30d5\u30a9\u30fc\u30e0 [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":5460,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_mi_skip_tracking":false,"footnotes":""},"categories":[4,71],"tags":[],"class_list":["post-5423","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-news","category-it-tec"],"_links":{"self":[{"href":"https:\/\/www.briswell-vn.com\/ja\/wp-json\/wp\/v2\/posts\/5423","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.briswell-vn.com\/ja\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.briswell-vn.com\/ja\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.briswell-vn.com\/ja\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.briswell-vn.com\/ja\/wp-json\/wp\/v2\/comments?post=5423"}],"version-history":[{"count":0,"href":"https:\/\/www.briswell-vn.com\/ja\/wp-json\/wp\/v2\/posts\/5423\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.briswell-vn.com\/ja\/wp-json\/wp\/v2\/media\/5460"}],"wp:attachment":[{"href":"https:\/\/www.briswell-vn.com\/ja\/wp-json\/wp\/v2\/media?parent=5423"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.briswell-vn.com\/ja\/wp-json\/wp\/v2\/categories?post=5423"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.briswell-vn.com\/ja\/wp-json\/wp\/v2\/tags?post=5423"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}