{"id":73144,"date":"2024-08-12T06:26:54","date_gmt":"2024-08-12T02:56:54","guid":{"rendered":"https:\/\/nabfollower.com\/blog\/building-an-efficient-jenkins-docker-vue-project-automated-deployment-environment-2c0l\/"},"modified":"2024-08-12T06:26:54","modified_gmt":"2024-08-12T02:56:54","slug":"building-an-efficient-jenkins-docker-vue-project-automated-deployment-environment-2c0l","status":"publish","type":"post","link":"https:\/\/nabfollower.com\/blog\/building-an-efficient-jenkins-docker-vue-project-automated-deployment-environment-2c0l\/","title":{"rendered":"\u0627\u06cc\u062c\u0627\u062f \u06cc\u06a9 \u0645\u062d\u06cc\u0637 \u0627\u0633\u062a\u0642\u0631\u0627\u0631 \u062e\u0648\u062f\u06a9\u0627\u0631 Jenkins + Docker + Vue Project"},"content":{"rendered":"<div data-article-id=\"1955836\" id=\"article-body\">\n<ul>\n<li>\u0627\u0633\u06a9\u0631\u06cc\u067e\u062a\u200c\u0647\u0627\u06cc \u0634\u0644 \u0633\u0641\u0627\u0631\u0634\u06cc\u060c \u06a9\u0646\u062a\u0631\u0644 \u0645\u062d\u06cc\u0637 \u0627\u0633\u062a\u0642\u0631\u0627\u0631 \u06cc\u06a9\u067e\u0627\u0631\u0686\u0647 \u0631\u0627 \u0631\u0627\u062d\u062a\u200c\u062a\u0631 \u0648 \u0627\u0646\u0639\u0637\u0627\u0641\u200c\u067e\u0630\u06cc\u0631\u062a\u0631 \u0645\u06cc\u200c\u06a9\u0646\u0646\u062f.<\/li>\n<li>\u0627\u06af\u0631 \u0633\u0631\u0648\u0631 \u062c\u0627\u06cc\u06af\u0632\u06cc\u0646 \u0634\u0648\u062f\u060c \u062d\u062c\u0645 \u06a9\u0627\u0631\u06cc \u0628\u0631\u0627\u06cc \u0627\u0633\u062a\u0642\u0631\u0627\u0631 \u0645\u062c\u062f\u062f \u0646\u0633\u0628\u062a\u0627\u064b \u06a9\u0645 \u0627\u0633\u062a.<\/li>\n<\/ul>\n<p>\u0627\u0628\u062a\u062f\u0627 \u0628\u0627\u06cc\u062f \u06cc\u06a9 \u0633\u0631\u0648\u0631 \u062f\u0627\u0634\u062a\u0647 \u0628\u0627\u0634\u06cc\u062f. \u0645\u0646 \u0627\u0632 \u06cc\u06a9 \u0646\u0645\u0648\u0646\u0647 Alibaba Cloud ECS \u062f\u0631 \u0645\u0646\u0637\u0642\u0647 \u0634\u0631\u0642 \u0686\u06cc\u0646 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0631\u062f\u0645. \u0622\u0645\u0648\u0632\u0634 \u0647\u0627\u06cc \u0622\u0646\u0644\u0627\u06cc\u0646 \u0632\u06cc\u0627\u062f\u06cc \u0628\u0631\u0627\u06cc \u062e\u0631\u06cc\u062f \u0633\u0631\u0648\u0631 \u0648\u062c\u0648\u062f \u062f\u0627\u0631\u062f. \u067e\u0633 \u0627\u0632 \u062e\u0631\u06cc\u062f\u060c \u06cc\u06a9 IP \u0639\u0645\u0648\u0645\u06cc \u0648 \u06cc\u06a9 \u0631\u0645\u0632 \u0639\u0628\u0648\u0631 \u0628\u0631\u0627\u06cc \u0648\u0631\u0648\u062f \u0628\u0647 \u0633\u0631\u0648\u0631 \u0627\u0632 \u0637\u0631\u06cc\u0642 SSH \u062e\u0648\u0627\u0647\u06cc\u062f \u062f\u0627\u0634\u062a.<\/p>\n<p>\u0627\u06af\u0631 \u0628\u0627 Docker \u0622\u0634\u0646\u0627\u06cc\u06cc \u0646\u062f\u0627\u0631\u06cc\u062f\u060c \u062a\u0648\u0635\u06cc\u0647 \u0645\u06cc \u06a9\u0646\u0645 \u0627\u0628\u062a\u062f\u0627 \u0627\u0633\u0646\u0627\u062f \u0622\u0646 \u0631\u0627 \u0628\u0631\u0631\u0633\u06cc \u06a9\u0646\u06cc\u062f. \u06a9\u0627\u0646\u062a\u06cc\u0646\u0631\u0647\u0627\u06cc Docker \u0645\u0627\u0646\u0646\u062f \u06a9\u0627\u0646\u062a\u06cc\u0646\u0631\u0647\u0627\u06cc \u062d\u0645\u0644 \u0648 \u0646\u0642\u0644 \u062f\u0631 \u06cc\u06a9 \u06a9\u0634\u062a\u06cc \u0628\u0627\u0631\u06cc \u0647\u0633\u062a\u0646\u062f. \u0647\u0631 \u06a9\u0627\u0646\u062a\u06cc\u0646\u0631 \u0627\u062c\u0646\u0627\u0633 \u062e\u0648\u062f \u0631\u0627 \u0646\u06af\u0647 \u0645\u06cc \u062f\u0627\u0631\u062f \u0648 \u0631\u0648\u06cc \u062f\u06cc\u06af\u0631\u0627\u0646 \u062a\u0623\u062b\u06cc\u0631 \u0646\u0645\u06cc \u06af\u0630\u0627\u0631\u062f. \u0628\u0647 \u0639\u0646\u0648\u0627\u0646 \u0645\u062b\u0627\u0644\u060c \u06cc\u06a9 \u0633\u0631\u0648\u06cc\u0633 Redis \u0648 \u06cc\u06a9 \u0633\u0631\u0648\u06cc\u0633 MongoDB \u0647\u0631 \u06a9\u062f\u0627\u0645 \u0645\u06cc \u062a\u0648\u0627\u0646\u0646\u062f \u062f\u0631 \u06a9\u0627\u0646\u062a\u06cc\u0646\u0631 \u062e\u0648\u062f \u0642\u0631\u0627\u0631 \u06af\u06cc\u0631\u0646\u062f. \u0627\u06cc\u0646 \u06a9\u0627\u0646\u062a\u06cc\u0646\u0631\u0647\u0627 \u0645\u062a\u06a9\u06cc \u0628\u0647 \u06cc\u06a9 \u0645\u062d\u06cc\u0637 \u0627\u062c\u0631\u0627\u06cc\u06cc \u0647\u0633\u062a\u0646\u062f \u06a9\u0647 \u062f\u0627\u06a9\u0631 \u0622\u0646 \u0631\u0627 Image \u0645\u06cc \u0646\u0627\u0645\u062f. \u0647\u0631 \u0638\u0631\u0641 \u0686\u0631\u062e\u0647 \u062d\u06cc\u0627\u062a \u062e\u0648\u062f \u0631\u0627 \u0645\u062f\u06cc\u0631\u06cc\u062a \u0645\u06cc \u06a9\u0646\u062f.<\/p>\n<p>\u062c\u0646\u06a9\u06cc\u0646\u0632 \u06cc\u06a9 \u067e\u0631\u0648\u0698\u0647 \u0646\u0631\u0645 \u0627\u0641\u0632\u0627\u0631\u06cc \u0645\u0646\u0628\u0639 \u0628\u0627\u0632 \u0627\u0633\u062a \u06a9\u0647 \u062f\u0631 \u062c\u0627\u0648\u0627 \u062a\u0648\u0633\u0639\u0647 \u06cc\u0627\u0641\u062a\u0647 \u0648 \u0639\u0645\u062f\u062a\u0627\u064b \u0628\u0631\u0627\u06cc \u06cc\u06a9\u067e\u0627\u0631\u0686\u0647 \u0633\u0627\u0632\u06cc \u0645\u062f\u0627\u0648\u0645 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u06cc \u0634\u0648\u062f. \u0627\u0633\u0627\u0633\u0627\u064b \u0628\u0647 \u0634\u0645\u0627 \u0627\u06cc\u0646 \u0627\u0645\u06a9\u0627\u0646 \u0631\u0627 \u0645\u06cc\u200c\u062f\u0647\u062f \u06a9\u0647 \u0627\u0633\u06a9\u0631\u06cc\u067e\u062a\u200c\u0647\u0627 \u0631\u0627 \u0627\u0632 \u0642\u0628\u0644 \u0628\u0646\u0648\u06cc\u0633\u06cc\u062f\u060c \u0648 \u0647\u0646\u06af\u0627\u0645\u06cc \u06a9\u0647 \u0627\u06cc\u0646 \u0627\u0633\u06a9\u0631\u06cc\u067e\u062a\u200c\u0647\u0627 \u0628\u0627 \u0645\u0648\u0641\u0642\u06cc\u062a \u0627\u0634\u06a9\u0627\u0644 \u0632\u062f\u0627\u06cc\u06cc \u0634\u062f\u0646\u062f\u060c \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u0646\u062f \u0628\u0647 \u0637\u0648\u0631 \u062e\u0648\u062f\u06a9\u0627\u0631 \u0628\u0631\u0627\u06cc \u0627\u0633\u062a\u0642\u0631\u0627\u0631\u0647\u0627\u06cc \u0622\u06cc\u0646\u062f\u0647 \u0628\u062f\u0648\u0646 \u062a\u063a\u06cc\u06cc\u0631 \u0627\u062c\u0631\u0627 \u0634\u0648\u0646\u062f.<\/p>\n<p>\u0645\u0633\u062a\u0646\u062f\u0627\u062a \u0645\u0631\u062c\u0639<\/p>\n<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_85 counter-hierarchy ez-toc-counter-rtl ez-toc-grey ez-toc-container-direction\">\n<div class=\"ez-toc-title-container\">\n<p class=\"ez-toc-title\" style=\"cursor:inherit\">\u0641\u0647\u0631\u0633\u062a \u0645\u0637\u0627\u0644\u0628<\/p>\n<span class=\"ez-toc-title-toggle\"><a href=\"#\" class=\"ez-toc-pull-right ez-toc-btn ez-toc-btn-xs ez-toc-btn-default ez-toc-toggle\" aria-label=\"\u062a\u063a\u06cc\u06cc\u0631 \u0648\u0636\u0639\u06cc\u062a \u0641\u0647\u0631\u0633\u062a \u0645\u0637\u0627\u0644\u0628\"><span class=\"ez-toc-js-icon-con\"><span class=\"\"><span class=\"eztoc-hide\" style=\"display:none;\">Toggle<\/span><span class=\"ez-toc-icon-toggle-span\"><svg style=\"fill: #999;color:#999\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" class=\"list-377408\" width=\"20px\" height=\"20px\" viewBox=\"0 0 24 24\" fill=\"none\"><path d=\"M6 6H4v2h2V6zm14 0H8v2h12V6zM4 11h2v2H4v-2zm16 0H8v2h12v-2zM4 16h2v2H4v-2zm16 0H8v2h12v-2z\" fill=\"currentColor\"><\/path><\/svg><svg style=\"fill: #999;color:#999\" class=\"arrow-unsorted-368013\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"10px\" height=\"10px\" viewBox=\"0 0 24 24\" version=\"1.2\" baseProfile=\"tiny\"><path d=\"M18.2 9.3l-6.2-6.3-6.2 6.3c-.2.2-.3.4-.3.7s.1.5.3.7c.2.2.4.3.7.3h11c.3 0 .5-.1.7-.3.2-.2.3-.5.3-.7s-.1-.5-.3-.7zM5.8 14.7l6.2 6.3 6.2-6.3c.2-.2.3-.5.3-.7s-.1-.5-.3-.7c-.2-.2-.4-.3-.7-.3h-11c-.3 0-.5.1-.7.3-.2.2-.3.5-.3.7s.1.5.3.7z\"\/><\/svg><\/span><\/span><\/span><\/a><\/span><\/div>\n<nav><ul class='ez-toc-list ez-toc-list-level-1 ' ><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-1\" href=\"https:\/\/nabfollower.com\/blog\/building-an-efficient-jenkins-docker-vue-project-automated-deployment-environment-2c0l\/#%D8%AD%D8%B0%D9%81_%D9%86%D8%B5%D8%A8_%D9%86%D8%B3%D8%AE%D9%87_%D9%87%D8%A7%DB%8C_%D9%82%D8%AF%DB%8C%D9%85%DB%8C\" >\u062d\u0630\u0641 \u0646\u0635\u0628 \u0646\u0633\u062e\u0647 \u0647\u0627\u06cc \u0642\u062f\u06cc\u0645\u06cc<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/nabfollower.com\/blog\/building-an-efficient-jenkins-docker-vue-project-automated-deployment-environment-2c0l\/#%D9%86%D8%B5%D8%A8_%D8%A7%D8%B2_%D8%B7%D8%B1%DB%8C%D9%82_APT\" >\u0646\u0635\u0628 \u0627\u0632 \u0637\u0631\u06cc\u0642 APT<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"https:\/\/nabfollower.com\/blog\/building-an-efficient-jenkins-docker-vue-project-automated-deployment-environment-2c0l\/#%D9%86%D8%B5%D8%A8_Docker_CE\" >\u0646\u0635\u0628 Docker CE<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-4\" href=\"https:\/\/nabfollower.com\/blog\/building-an-efficient-jenkins-docker-vue-project-automated-deployment-environment-2c0l\/#%D9%86%D8%B5%D8%A8_%D8%AE%D9%88%D8%AF%DA%A9%D8%A7%D8%B1_%D8%A7%D8%B2_%D8%B7%D8%B1%DB%8C%D9%82_%D8%A7%D8%B3%DA%A9%D8%B1%DB%8C%D9%BE%D8%AA\" >\u0646\u0635\u0628 \u062e\u0648\u062f\u06a9\u0627\u0631 \u0627\u0632 \u0637\u0631\u06cc\u0642 \u0627\u0633\u06a9\u0631\u06cc\u067e\u062a<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-5\" href=\"https:\/\/nabfollower.com\/blog\/building-an-efficient-jenkins-docker-vue-project-automated-deployment-environment-2c0l\/#%D8%B1%D8%A7%D9%87_%D8%A7%D9%86%D8%AF%D8%A7%D8%B2%DB%8C_Docker_CE\" >\u0631\u0627\u0647 \u0627\u0646\u062f\u0627\u0632\u06cc Docker CE<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-6\" href=\"https:\/\/nabfollower.com\/blog\/building-an-efficient-jenkins-docker-vue-project-automated-deployment-environment-2c0l\/#%D8%A7%DB%8C%D8%AC%D8%A7%D8%AF_%DA%AF%D8%B1%D9%88%D9%87_%DA%A9%D8%A7%D8%B1%D8%A8%D8%B1%DB%8C_Docker\" >\u0627\u06cc\u062c\u0627\u062f \u06af\u0631\u0648\u0647 \u06a9\u0627\u0631\u0628\u0631\u06cc Docker<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-7\" href=\"https:\/\/nabfollower.com\/blog\/building-an-efficient-jenkins-docker-vue-project-automated-deployment-environment-2c0l\/#%D8%AA%D8%B3%D8%AA_%D9%86%D8%B5%D8%A8_%D8%AF%D8%A7%DA%A9%D8%B1\" >\u062a\u0633\u062a \u0646\u0635\u0628 \u062f\u0627\u06a9\u0631<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-8\" href=\"https:\/\/nabfollower.com\/blog\/building-an-efficient-jenkins-docker-vue-project-automated-deployment-environment-2c0l\/#%D8%B4%D8%AA%D8%A7%D8%A8_%D8%AA%D8%B5%D9%88%DB%8C%D8%B1\" >\u0634\u062a\u0627\u0628 \u062a\u0635\u0648\u06cc\u0631<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-9\" href=\"https:\/\/nabfollower.com\/blog\/building-an-efficient-jenkins-docker-vue-project-automated-deployment-environment-2c0l\/#%D8%A8%D8%B1%D8%A7%DB%8C_%D8%AF%D8%A7%D9%86%D9%84%D9%88%D8%AF_%D8%A2%D8%AE%D8%B1%DB%8C%D9%86_%D9%86%D8%B3%D8%AE%D9%87_%D9%BE%D8%A7%DB%8C%D8%AF%D8%A7%D8%B1_Docker_Compose%D8%8C_%D8%A7%DB%8C%D9%86_%D8%AF%D8%B3%D8%AA%D9%88%D8%B1_%D8%B1%D8%A7_%D8%A7%D8%AC%D8%B1%D8%A7_%DA%A9%D9%86%DB%8C%D8%AF\" >\u0628\u0631\u0627\u06cc \u062f\u0627\u0646\u0644\u0648\u062f \u0622\u062e\u0631\u06cc\u0646 \u0646\u0633\u062e\u0647 \u067e\u0627\u06cc\u062f\u0627\u0631 Docker Compose\u060c \u0627\u06cc\u0646 \u062f\u0633\u062a\u0648\u0631 \u0631\u0627 \u0627\u062c\u0631\u0627 \u06a9\u0646\u06cc\u062f:<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-10\" href=\"https:\/\/nabfollower.com\/blog\/building-an-efficient-jenkins-docker-vue-project-automated-deployment-environment-2c0l\/#%D9%85%D8%AC%D9%88%D8%B2%D9%87%D8%A7%DB%8C_%D8%A7%D8%AC%D8%B1%D8%A7%DB%8C%DB%8C_%D8%B1%D8%A7_%D8%A8%D9%87_%D8%A8%D8%A7%DB%8C%D9%86%D8%B1%DB%8C_%D8%A7%D8%B9%D9%85%D8%A7%D9%84_%DA%A9%D9%86%DB%8C%D8%AF\" >\u0645\u062c\u0648\u0632\u0647\u0627\u06cc \u0627\u062c\u0631\u0627\u06cc\u06cc \u0631\u0627 \u0628\u0647 \u0628\u0627\u06cc\u0646\u0631\u06cc \u0627\u0639\u0645\u0627\u0644 \u06a9\u0646\u06cc\u062f:<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-11\" href=\"https:\/\/nabfollower.com\/blog\/building-an-efficient-jenkins-docker-vue-project-automated-deployment-environment-2c0l\/#%D9%86%D8%B3%D8%AE%D9%87_%D8%B1%D8%A7_%D8%A8%D8%B1%D8%B1%D8%B3%DB%8C_%DA%A9%D9%86%DB%8C%D8%AF\" >\u0646\u0633\u062e\u0647 \u0631\u0627 \u0628\u0631\u0631\u0633\u06cc \u06a9\u0646\u06cc\u062f:<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-12\" href=\"https:\/\/nabfollower.com\/blog\/building-an-efficient-jenkins-docker-vue-project-automated-deployment-environment-2c0l\/#%D8%A7%D8%A8%D8%AA%D8%AF%D8%A7_%DB%8C%DA%A9_%D8%B3%D8%A7%D8%AE%D8%AA%D8%A7%D8%B1_%D8%AF%D8%A7%DB%8C%D8%B1%DA%A9%D8%AA%D9%88%D8%B1%DB%8C_%D8%B1%D9%88%DB%8C_%D8%B3%D8%B1%D9%88%D8%B1_%D8%A7%DB%8C%D8%AC%D8%A7%D8%AF_%DA%A9%D9%86%DB%8C%D8%AF_%D8%A7%DB%8C%D9%86_%D9%81%D9%82%D8%B7_%DB%8C%DA%A9_%D9%86%D8%B3%D8%AE%D9%87_%D8%A2%D8%B2%D9%85%D8%A7%DB%8C%D8%B4%DB%8C_%D8%A7%D8%B3%D8%AA\" >\u0627\u0628\u062a\u062f\u0627 \u06cc\u06a9 \u0633\u0627\u062e\u062a\u0627\u0631 \u062f\u0627\u06cc\u0631\u06a9\u062a\u0648\u0631\u06cc \u0631\u0648\u06cc \u0633\u0631\u0648\u0631 \u0627\u06cc\u062c\u0627\u062f \u06a9\u0646\u06cc\u062f (\u0627\u06cc\u0646 \u0641\u0642\u0637 \u06cc\u06a9 \u0646\u0633\u062e\u0647 \u0622\u0632\u0645\u0627\u06cc\u0634\u06cc \u0627\u0633\u062a):<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-13\" href=\"https:\/\/nabfollower.com\/blog\/building-an-efficient-jenkins-docker-vue-project-automated-deployment-environment-2c0l\/#%D8%A8%D8%B9%D8%AF%D8%8C_%DB%8C%DA%A9_%D8%A8%D9%86%D9%88%DB%8C%D8%B3%DB%8C%D8%AF_docker-composeyml_%D9%81%D8%A7%DB%8C%D9%84_%D8%A8%D8%B1%D8%A7%DB%8C_%D9%86%D8%B5%D8%A8_%D8%AC%D9%86%DA%A9%DB%8C%D9%86%D8%B2\" >\u0628\u0639\u062f\u060c \u06cc\u06a9 \u0628\u0646\u0648\u06cc\u0633\u06cc\u062f docker-compose.yml \u0641\u0627\u06cc\u0644 \u0628\u0631\u0627\u06cc \u0646\u0635\u0628 \u062c\u0646\u06a9\u06cc\u0646\u0632:<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-14\" href=\"https:\/\/nabfollower.com\/blog\/building-an-efficient-jenkins-docker-vue-project-automated-deployment-environment-2c0l\/#1_%D8%A7%D8%A8%D8%AA%D8%AF%D8%A7_%DB%8C%DA%A9_%D8%B1%D8%A7_%D8%A7%DB%8C%D8%AC%D8%A7%D8%AF_%DA%A9%D9%86%DB%8C%D8%AF_nginxconf_%D9%81%D8%A7%DB%8C%D9%84_%D8%AF%D8%B1_%D8%AF%D8%A7%DB%8C%D8%B1%DA%A9%D8%AA%D9%88%D8%B1%DB%8C_%D8%B1%DB%8C%D8%B4%D9%87_%D9%BE%D8%B1%D9%88%DA%98%D9%87_%D8%B4%D9%85%D8%A7\" >1. \u0627\u0628\u062a\u062f\u0627 \u06cc\u06a9 \u0631\u0627 \u0627\u06cc\u062c\u0627\u062f \u06a9\u0646\u06cc\u062f nginx.conf \u0641\u0627\u06cc\u0644 \u062f\u0631 \u062f\u0627\u06cc\u0631\u06a9\u062a\u0648\u0631\u06cc \u0631\u06cc\u0634\u0647 \u067e\u0631\u0648\u0698\u0647 \u0634\u0645\u0627:<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-15\" href=\"https:\/\/nabfollower.com\/blog\/building-an-efficient-jenkins-docker-vue-project-automated-deployment-environment-2c0l\/#2_%D8%A7%DB%8C%D8%AC%D8%A7%D8%AF_%DB%8C%DA%A9_Dockerfile_%D8%AF%D8%B1_%D8%AF%D8%A7%DB%8C%D8%B1%DA%A9%D8%AA%D9%88%D8%B1%DB%8C_%D8%A7%D8%B5%D9%84%DB%8C_%D9%BE%D8%B1%D9%88%DA%98%D9%87_%D8%B4%D9%85%D8%A7\" >2. \u0627\u06cc\u062c\u0627\u062f \u06cc\u06a9 Dockerfile \u062f\u0631 \u062f\u0627\u06cc\u0631\u06a9\u062a\u0648\u0631\u06cc \u0627\u0635\u0644\u06cc \u067e\u0631\u0648\u0698\u0647 \u0634\u0645\u0627:<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-16\" href=\"https:\/\/nabfollower.com\/blog\/building-an-efficient-jenkins-docker-vue-project-automated-deployment-environment-2c0l\/#3_%D8%A7%DB%8C%D8%AC%D8%A7%D8%AF_%DB%8C%DA%A9_setupsh_%D8%A7%D8%B3%DA%A9%D8%B1%DB%8C%D9%BE%D8%AA_%D8%AF%D8%B1_%D8%AF%D8%A7%DB%8C%D8%B1%DA%A9%D8%AA%D9%88%D8%B1%DB%8C_%D8%B1%DB%8C%D8%B4%D9%87_%D9%BE%D8%B1%D9%88%DA%98%D9%87_%D8%B4%D9%85%D8%A7_%D8%A8%D8%B1%D8%A7%DB%8C_%DA%A9%D9%85%DA%A9_%D8%A8%D9%87_%D8%A7%D8%AC%D8%B1%D8%A7%DB%8C_%D8%AF%D8%B3%D8%AA%D9%88%D8%B1%D8%A7%D8%AA\" >3. \u0627\u06cc\u062c\u0627\u062f \u06cc\u06a9 setup.sh \u0627\u0633\u06a9\u0631\u06cc\u067e\u062a \u062f\u0631 \u062f\u0627\u06cc\u0631\u06a9\u062a\u0648\u0631\u06cc \u0631\u06cc\u0634\u0647 \u067e\u0631\u0648\u0698\u0647 \u0634\u0645\u0627 \u0628\u0631\u0627\u06cc \u06a9\u0645\u06a9 \u0628\u0647 \u0627\u062c\u0631\u0627\u06cc \u062f\u0633\u062a\u0648\u0631\u0627\u062a:<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-17\" href=\"https:\/\/nabfollower.com\/blog\/building-an-efficient-jenkins-docker-vue-project-automated-deployment-environment-2c0l\/#4_%D8%AF%D8%B1_%D9%86%D9%87%D8%A7%DB%8C%D8%AA%D8%8C_%DB%8C%DA%A9_%D9%BE%D8%B1%D9%88%DA%98%D9%87_%D8%AF%D8%B1_%D8%AC%D9%86%DA%A9%DB%8C%D9%86%D8%B2_%D8%A7%DB%8C%D8%AC%D8%A7%D8%AF_%DA%A9%D9%86%DB%8C%D8%AF\" >4. \u062f\u0631 \u0646\u0647\u0627\u06cc\u062a\u060c \u06cc\u06a9 \u067e\u0631\u0648\u0698\u0647 \u062f\u0631 \u062c\u0646\u06a9\u06cc\u0646\u0632 \u0627\u06cc\u062c\u0627\u062f \u06a9\u0646\u06cc\u062f:<\/a><\/li><\/ul><\/nav><\/div>\n<h3><span class=\"ez-toc-section\" id=\"%D8%AD%D8%B0%D9%81_%D9%86%D8%B5%D8%A8_%D9%86%D8%B3%D8%AE%D9%87_%D9%87%D8%A7%DB%8C_%D9%82%D8%AF%DB%8C%D9%85%DB%8C\"><\/span>\n<p>  \u062d\u0630\u0641 \u0646\u0635\u0628 \u0646\u0633\u062e\u0647 \u0647\u0627\u06cc \u0642\u062f\u06cc\u0645\u06cc<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight shell\"><code><span class=\"nv\">$ <\/span><span class=\"nb\">sudo <\/span>apt-get remove docker docker-engine docker.io\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<h3><span class=\"ez-toc-section\" id=\"%D9%86%D8%B5%D8%A8_%D8%A7%D8%B2_%D8%B7%D8%B1%DB%8C%D9%82_APT\"><\/span>\n<p>  \u0646\u0635\u0628 \u0627\u0632 \u0637\u0631\u06cc\u0642 APT<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>\u0627\u0632 \u0622\u0646\u062c\u0627\u06cc\u06cc \u06a9\u0647 \u0645\u0646\u0627\u0628\u0639 APT \u0627\u0632 HTTPS \u0628\u0631\u0627\u06cc \u0627\u0637\u0645\u06cc\u0646\u0627\u0646 \u0627\u0632 \u062f\u0633\u062a\u06a9\u0627\u0631\u06cc \u0646\u0634\u062f\u0646 \u0646\u0631\u0645 \u0627\u0641\u0632\u0627\u0631 \u062f\u0631 \u062d\u06cc\u0646 \u062f\u0627\u0646\u0644\u0648\u062f \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u06cc \u06a9\u0646\u0646\u062f\u060c \u0627\u0628\u062a\u062f\u0627 \u0628\u0627\u06cc\u062f \u0628\u0633\u062a\u0647 \u0627\u0646\u062a\u0642\u0627\u0644 HTTPS \u0648 \u06af\u0648\u0627\u0647\u06cc\u0646\u0627\u0645\u0647 \u0647\u0627\u06cc CA \u0631\u0627 \u0627\u0636\u0627\u0641\u0647 \u06a9\u0646\u06cc\u0645.<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight shell\"><code><span class=\"nv\">$ <\/span><span class=\"nb\">sudo <\/span>apt-get update\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight shell\"><code><span class=\"nv\">$ <\/span><span class=\"nb\">sudo <\/span>apt-get <span class=\"nb\">install \n    <\/span>apt-transport-https <span class=\"se\">\\<\/span>\n    ca-certificates <span class=\"se\">\\<\/span>\n    curl <span class=\"se\">\\<\/span>\n    software-properties-common\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p>\u0628\u0627 \u062a\u0648\u062c\u0647 \u0628\u0647 \u0645\u0634\u06a9\u0644\u0627\u062a \u0634\u0628\u06a9\u0647 \u062f\u0631 \u0686\u06cc\u0646\u060c \u0627\u06a9\u06cc\u062f\u0627\u064b \u062a\u0648\u0635\u06cc\u0647 \u0645\u06cc \u0634\u0648\u062f \u0627\u0632 \u0645\u0646\u0627\u0628\u0639 \u062f\u0627\u062e\u0644\u06cc \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u06cc\u062f. \u0628\u0631\u0627\u06cc \u0645\u0646\u0627\u0628\u0639 \u0631\u0633\u0645\u06cc\u060c \u0646\u0638\u0631\u0627\u062a \u0631\u0627 \u0628\u0628\u06cc\u0646\u06cc\u062f.<\/p>\n<p>\u0628\u0631\u0627\u06cc \u062a\u0627\u06cc\u06cc\u062f \u0645\u0634\u0631\u0648\u0639\u06cc\u062a \u0628\u0633\u062a\u0647 \u0647\u0627\u06cc \u062f\u0627\u0646\u0644\u0648\u062f \u0634\u062f\u0647\u060c \u06a9\u0644\u06cc\u062f GPG \u0631\u0627 \u0628\u0631\u0627\u06cc \u0645\u0646\u0628\u0639 \u0646\u0631\u0645 \u0627\u0641\u0632\u0627\u0631 \u0627\u0636\u0627\u0641\u0647 \u06a9\u0646\u06cc\u062f.<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight shell\"><code><span class=\"nv\">$ <\/span>curl <span class=\"nt\">-fsSL<\/span> https:\/\/mirrors.ustc.edu.cn\/docker-ce\/linux\/ubuntu\/gpg | <span class=\"nb\">sudo <\/span>apt-key add -\n\n<span class=\"c\"># Official Source<\/span>\n<span class=\"c\"># $ curl -fsSL https:\/\/download.docker.com\/linux\/ubuntu\/gpg | sudo apt-key add -<\/span>\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p>\u0633\u067e\u0633 \u0645\u0646\u0628\u0639 \u0646\u0631\u0645 \u0627\u0641\u0632\u0627\u0631 Docker \u0631\u0627 \u0628\u0647 \u0622\u0646 \u0627\u0636\u0627\u0641\u0647 \u06a9\u0646\u06cc\u062f <code>source.list<\/code>:<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight shell\"><code><span class=\"nv\">$ <\/span><span class=\"nb\">sudo <\/span>add-apt-repository <span class=\"se\">\\<\/span>\n    <span class=\"s2\">\"deb [arch=amd64] https:\/\/mirrors.ustc.edu.cn\/docker-ce\/linux\/ubuntu <\/span><span class=\"se\">\\<\/span><span class=\"s2\">\n    <\/span><span class=\"si\">$(<\/span>lsb_release <span class=\"nt\">-cs<\/span><span class=\"si\">)<\/span><span class=\"s2\"> <\/span><span class=\"se\">\\<\/span><span class=\"s2\">\n    stable\"<\/span>\n\n<span class=\"c\"># Official Source<\/span>\n<span class=\"c\"># $ sudo add-apt-repository \\<\/span>\n    <span class=\"c\"># \"deb [arch=amd64] https:\/\/download.docker.com\/linux\/ubuntu \\<\/span>\n    <span class=\"c\"># $(lsb_release -cs) \\<\/span>\n    <span class=\"c\"># stable\"<\/span>\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p>\u062f\u0633\u062a\u0648\u0631 \u0628\u0627\u0644\u0627 \u0646\u0633\u062e\u0647 \u067e\u0627\u06cc\u062f\u0627\u0631 \u0645\u0646\u0628\u0639 Docker CE APT \u0631\u0627 \u0627\u0636\u0627\u0641\u0647 \u0645\u06cc \u06a9\u0646\u062f. \u0627\u06af\u0631 \u0628\u0647 \u0646\u0633\u062e\u0647 \u0622\u0632\u0645\u0627\u06cc\u0634\u06cc \u06cc\u0627 \u0633\u0627\u062e\u062a \u0634\u0628\u0627\u0646\u0647 \u0646\u06cc\u0627\u0632 \u062f\u0627\u0631\u06cc\u062f\u060c \u0622\u0646 \u0631\u0627 \u062a\u063a\u06cc\u06cc\u0631 \u062f\u0647\u06cc\u062f <code>stable<\/code> \u0628\u0647 <code>test<\/code> \u06cc\u0627 <code>nightly<\/code>.<\/p>\n<h3><span class=\"ez-toc-section\" id=\"%D9%86%D8%B5%D8%A8_Docker_CE\"><\/span>\n<p>  \u0646\u0635\u0628 Docker CE<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>\u06a9\u0634 \u0628\u0633\u062a\u0647 APT \u0631\u0627 \u0628\u0647 \u0631\u0648\u0632 \u06a9\u0646\u06cc\u062f \u0648 Docker CE \u0631\u0627 \u0646\u0635\u0628 \u06a9\u0646\u06cc\u062f:<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight shell\"><code><span class=\"nv\">$ <\/span><span class=\"nb\">sudo <\/span>apt-get update\n\n<span class=\"nv\">$ <\/span><span class=\"nb\">sudo <\/span>apt-get <span class=\"nb\">install <\/span>docker-ce\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<h3><span class=\"ez-toc-section\" id=\"%D9%86%D8%B5%D8%A8_%D8%AE%D9%88%D8%AF%DA%A9%D8%A7%D8%B1_%D8%A7%D8%B2_%D8%B7%D8%B1%DB%8C%D9%82_%D8%A7%D8%B3%DA%A9%D8%B1%DB%8C%D9%BE%D8%AA\"><\/span>\n<p>  \u0646\u0635\u0628 \u062e\u0648\u062f\u06a9\u0627\u0631 \u0627\u0632 \u0637\u0631\u06cc\u0642 \u0627\u0633\u06a9\u0631\u06cc\u067e\u062a<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>\u0628\u0631\u0627\u06cc \u0645\u062d\u06cc\u0637\u200c\u0647\u0627\u06cc \u0622\u0632\u0645\u0627\u06cc\u0634 \u06cc\u0627 \u062a\u0648\u0633\u0639\u0647\u060c Docker \u06cc\u06a9 \u0627\u0633\u06a9\u0631\u06cc\u067e\u062a \u0646\u0635\u0628 \u0645\u0646\u0627\u0633\u0628 \u0628\u0631\u0627\u06cc \u0633\u0627\u062f\u0647\u200c\u0633\u0627\u0632\u06cc \u0641\u0631\u0622\u06cc\u0646\u062f \u0627\u0631\u0627\u0626\u0647 \u0645\u06cc\u200c\u06a9\u0646\u062f. \u062f\u0631 \u0633\u06cc\u0633\u062a\u0645 \u0647\u0627\u06cc \u0627\u0648\u0628\u0648\u0646\u062a\u0648\u060c \u0645\u06cc \u062a\u0648\u0627\u0646\u06cc\u062f \u0627\u0632 \u0627\u06cc\u0646 \u0627\u0633\u06a9\u0631\u06cc\u067e\u062a \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u06cc\u062f:<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight shell\"><code><span class=\"nv\">$ <\/span>curl <span class=\"nt\">-fsSL<\/span> get.docker.com <span class=\"nt\">-o<\/span> get-docker.sh\n\n<span class=\"nv\">$ <\/span><span class=\"nb\">sudo <\/span>sh get-docker.sh <span class=\"nt\">--mirror<\/span> Aliyun\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p>\u0627\u062c\u0631\u0627\u06cc \u0627\u06cc\u0646 \u062f\u0633\u062a\u0648\u0631 \u0628\u0647 \u0637\u0648\u0631 \u062e\u0648\u062f\u06a9\u0627\u0631 \u0647\u0645\u0647 \u0686\u06cc\u0632 \u0631\u0627 \u0622\u0645\u0627\u062f\u0647 \u0645\u06cc \u06a9\u0646\u062f \u0648 \u0646\u0633\u062e\u0647 Edge Docker CE \u0631\u0627 \u0631\u0648\u06cc \u0633\u06cc\u0633\u062a\u0645 \u0634\u0645\u0627 \u0646\u0635\u0628 \u0645\u06cc \u06a9\u0646\u062f.<\/p>\n<h3><span class=\"ez-toc-section\" id=\"%D8%B1%D8%A7%D9%87_%D8%A7%D9%86%D8%AF%D8%A7%D8%B2%DB%8C_Docker_CE\"><\/span>\n<p>  \u0631\u0627\u0647 \u0627\u0646\u062f\u0627\u0632\u06cc Docker CE<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight shell\"><code><span class=\"nv\">$ <\/span><span class=\"nb\">sudo <\/span>systemctl <span class=\"nb\">enable <\/span>docker\n\n<span class=\"nv\">$ <\/span><span class=\"nb\">sudo <\/span>systemctl start docker\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<h3><span class=\"ez-toc-section\" id=\"%D8%A7%DB%8C%D8%AC%D8%A7%D8%AF_%DA%AF%D8%B1%D9%88%D9%87_%DA%A9%D8%A7%D8%B1%D8%A8%D8%B1%DB%8C_Docker\"><\/span>\n<p>  \u0627\u06cc\u062c\u0627\u062f \u06af\u0631\u0648\u0647 \u06a9\u0627\u0631\u0628\u0631\u06cc Docker<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>\u0628\u0647 \u0637\u0648\u0631 \u067e\u06cc\u0634 \u0641\u0631\u0636\u060c \u062f\u0633\u062a\u0648\u0631\u0627\u062a \u062f\u0627\u06a9\u0631 \u0628\u0627 \u0645\u0648\u062a\u0648\u0631 \u062f\u0627\u06a9\u0631 \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u0633\u0648\u06a9\u062a \u06cc\u0648\u0646\u06cc\u06a9\u0633 \u0627\u0631\u062a\u0628\u0627\u0637 \u0628\u0631\u0642\u0631\u0627\u0631 \u0645\u06cc \u06a9\u0646\u0646\u062f. \u0641\u0642\u0637 \u06a9\u0627\u0631\u0628\u0631 \u0627\u0635\u0644\u06cc \u0648 \u06a9\u0627\u0631\u0628\u0631\u0627\u0646 \u06af\u0631\u0648\u0647 \u062f\u0627\u06a9\u0631 \u0645\u06cc \u062a\u0648\u0627\u0646\u0646\u062f \u0628\u0647 \u0633\u0648\u06a9\u062a \u06cc\u0648\u0646\u06cc\u06a9\u0633 \u0645\u0648\u062a\u0648\u0631 \u062f\u0627\u06a9\u0631 \u062f\u0633\u062a\u0631\u0633\u06cc \u062f\u0627\u0634\u062a\u0647 \u0628\u0627\u0634\u0646\u062f. \u0628\u0647 \u062f\u0644\u0627\u06cc\u0644 \u0627\u0645\u0646\u06cc\u062a\u06cc\u060c \u0645\u0639\u0645\u0648\u0644\u0627\u064b \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u06a9\u0627\u0631\u0628\u0631 \u0631\u06cc\u0634\u0647 \u0645\u0633\u062a\u0642\u06cc\u0645\u0627\u064b \u062f\u0631 \u0633\u06cc\u0633\u062a\u0645 \u0644\u06cc\u0646\u0648\u06a9\u0633 \u062a\u0648\u0635\u06cc\u0647 \u0646\u0645\u06cc \u0634\u0648\u062f. \u06cc\u06a9 \u0631\u0648\u06cc\u06a9\u0631\u062f \u0628\u0647\u062a\u0631 \u0627\u06cc\u0646 \u0627\u0633\u062a \u06a9\u0647 \u06a9\u0627\u0631\u0628\u0631\u0627\u0646\u06cc \u0631\u0627 \u06a9\u0647 \u0646\u06cc\u0627\u0632 \u0628\u0647 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 Docker \u062f\u0627\u0631\u0646\u062f \u0628\u0647 \u06af\u0631\u0648\u0647 \u06a9\u0627\u0631\u0628\u0631\u06cc Docker \u0627\u0636\u0627\u0641\u0647 \u06a9\u0646\u06cc\u062f.<\/p>\n<p>\u0627\u06cc\u062c\u0627\u062f \u06af\u0631\u0648\u0647 Docker:<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight shell\"><code><span class=\"nv\">$ <\/span><span class=\"nb\">sudo <\/span>groupadd docker\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p>\u06a9\u0627\u0631\u0628\u0631 \u0641\u0639\u0644\u06cc \u0631\u0627 \u0628\u0647 \u06af\u0631\u0648\u0647 Docker \u0627\u0636\u0627\u0641\u0647 \u06a9\u0646\u06cc\u062f:<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight shell\"><code><span class=\"nv\">$ <\/span><span class=\"nb\">sudo <\/span>usermod <span class=\"nt\">-aG<\/span> docker <span class=\"nv\">$USER<\/span>\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p>\u0627\u0632 \u0633\u06cc\u0633\u062a\u0645 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f \u0648 \u062f\u0648\u0628\u0627\u0631\u0647 \u0648\u0627\u0631\u062f \u0634\u0648\u06cc\u062f\u060c \u0633\u067e\u0633 Docker \u0631\u0627 \u062a\u0633\u062a \u06a9\u0646\u06cc\u062f.<\/p>\n<h3><span class=\"ez-toc-section\" id=\"%D8%AA%D8%B3%D8%AA_%D9%86%D8%B5%D8%A8_%D8%AF%D8%A7%DA%A9%D8%B1\"><\/span>\n<p>  \u062a\u0633\u062a \u0646\u0635\u0628 \u062f\u0627\u06a9\u0631<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight shell\"><code><span class=\"nv\">$ <\/span>docker run hello-world\n\nUnable to find image <span class=\"s1\">'hello-world:latest'<\/span> locally\nlatest: Pulling from library\/hello-world\nd1725b59e92d: Pull <span class=\"nb\">complete\n<\/span>Digest: sha256:0add3ace90ecb4adbf7777e9aacf18357296e799f81cabc9fde470971e499788\nStatus: Downloaded newer image <span class=\"k\">for <\/span>hello-world:latest\n\nHello from Docker!\nThis message shows that your installation appears to be working correctly.\n\nTo generate this message, Docker took the following steps:\n 1. The Docker client contacted the Docker daemon.\n 2. The Docker daemon pulled the <span class=\"s2\">\"hello-world\"<\/span> image from Docker Hub.\n    <span class=\"o\">(<\/span>amd64<span class=\"o\">)<\/span>\n 3. The Docker daemon created a new container from that image, which runs the\n    executable that produces the output you are currently reading.\n 4. The Docker daemon streamed that output to the Docker client, which sent it\n    to your terminal.\n\nTo try something more ambitious, you can run an Ubuntu container with:\n <span class=\"nv\">$ <\/span>docker run <span class=\"nt\">-it<\/span> ubuntu bash\n\nShare images, automate workflows, and more with a free Docker ID:\n https:\/\/hub.docker.com\/\n\nFor more examples and ideas, visit:\n https:\/\/docs.docker.com\/get-started\/\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p>\u0627\u06af\u0631 \u062e\u0631\u0648\u062c\u06cc \u0628\u0627\u0644\u0627 \u0631\u0627 \u0645\u0634\u0627\u0647\u062f\u0647 \u06a9\u0631\u062f\u06cc\u062f\u060c \u0646\u0635\u0628 \u0628\u0627 \u0645\u0648\u0641\u0642\u06cc\u062a \u0627\u0646\u062c\u0627\u0645 \u0634\u062f.<\/p>\n<h3><span class=\"ez-toc-section\" id=\"%D8%B4%D8%AA%D8%A7%D8%A8_%D8%AA%D8%B5%D9%88%DB%8C%D8%B1\"><\/span>\n<p>  \u0634\u062a\u0627\u0628 \u062a\u0635\u0648\u06cc\u0631<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>\u0627\u06af\u0631 \u0645\u062a\u0648\u062c\u0647 \u0634\u062f\u06cc\u062f \u06a9\u0647 \u06a9\u0634\u06cc\u062f\u0646 \u062a\u0635\u0627\u0648\u06cc\u0631 Docker \u0628\u0633\u06cc\u0627\u0631 \u06a9\u0646\u062f \u0627\u0633\u062a\u060c \u0645\u06cc \u062a\u0648\u0627\u0646\u06cc\u062f \u0634\u062a\u0627\u0628 \u062a\u0635\u0648\u06cc\u0631 \u062f\u0627\u062e\u0644\u06cc Docker \u0631\u0627 \u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc \u06a9\u0646\u06cc\u062f.<\/p>\n<p>\u0634\u062a\u0627\u0628 \u0622\u06cc\u0646\u0647 \u0627\u0628\u0631\u06cc \u0639\u0644\u06cc \u0628\u0627\u0628\u0627<\/p>\n<p>\u0645\u0633\u062a\u0646\u062f\u0627\u062a \u0645\u0631\u062c\u0639<\/p>\n<h3><span class=\"ez-toc-section\" id=\"%D8%A8%D8%B1%D8%A7%DB%8C_%D8%AF%D8%A7%D9%86%D9%84%D9%88%D8%AF_%D8%A2%D8%AE%D8%B1%DB%8C%D9%86_%D9%86%D8%B3%D8%AE%D9%87_%D9%BE%D8%A7%DB%8C%D8%AF%D8%A7%D8%B1_Docker_Compose%D8%8C_%D8%A7%DB%8C%D9%86_%D8%AF%D8%B3%D8%AA%D9%88%D8%B1_%D8%B1%D8%A7_%D8%A7%D8%AC%D8%B1%D8%A7_%DA%A9%D9%86%DB%8C%D8%AF\"><\/span>\n<p>  \u0628\u0631\u0627\u06cc \u062f\u0627\u0646\u0644\u0648\u062f \u0622\u062e\u0631\u06cc\u0646 \u0646\u0633\u062e\u0647 \u067e\u0627\u06cc\u062f\u0627\u0631 Docker Compose\u060c \u0627\u06cc\u0646 \u062f\u0633\u062a\u0648\u0631 \u0631\u0627 \u0627\u062c\u0631\u0627 \u06a9\u0646\u06cc\u062f:<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight shell\"><code><span class=\"nv\">$ <\/span><span class=\"nb\">sudo <\/span>curl <span class=\"nt\">-L<\/span> <span class=\"s2\">\"https:\/\/github.com\/docker\/compose\/releases\/download\/1.25.0\/docker-compose-<\/span><span class=\"si\">$(<\/span><span class=\"nb\">uname<\/span> <span class=\"nt\">-s<\/span><span class=\"si\">)<\/span><span class=\"s2\">-<\/span><span class=\"si\">$(<\/span><span class=\"nb\">uname<\/span> <span class=\"nt\">-m<\/span><span class=\"si\">)<\/span><span class=\"s2\">\"<\/span> <span class=\"nt\">-o<\/span> \/usr\/local\/bin\/docker-compose\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<h3><span class=\"ez-toc-section\" id=\"%D9%85%D8%AC%D9%88%D8%B2%D9%87%D8%A7%DB%8C_%D8%A7%D8%AC%D8%B1%D8%A7%DB%8C%DB%8C_%D8%B1%D8%A7_%D8%A8%D9%87_%D8%A8%D8%A7%DB%8C%D9%86%D8%B1%DB%8C_%D8%A7%D8%B9%D9%85%D8%A7%D9%84_%DA%A9%D9%86%DB%8C%D8%AF\"><\/span>\n<p>  \u0645\u062c\u0648\u0632\u0647\u0627\u06cc \u0627\u062c\u0631\u0627\u06cc\u06cc \u0631\u0627 \u0628\u0647 \u0628\u0627\u06cc\u0646\u0631\u06cc \u0627\u0639\u0645\u0627\u0644 \u06a9\u0646\u06cc\u062f:<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight shell\"><code><span class=\"nv\">$ <\/span><span class=\"nb\">sudo chmod<\/span> +x \/usr\/local\/bin\/docker-compose\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<h3><span class=\"ez-toc-section\" id=\"%D9%86%D8%B3%D8%AE%D9%87_%D8%B1%D8%A7_%D8%A8%D8%B1%D8%B1%D8%B3%DB%8C_%DA%A9%D9%86%DB%8C%D8%AF\"><\/span>\n<p>  \u0646\u0633\u062e\u0647 \u0631\u0627 \u0628\u0631\u0631\u0633\u06cc \u06a9\u0646\u06cc\u062f:<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight shell\"><code><span class=\"nv\">$ <\/span>docker-compose <span class=\"nt\">--version<\/span>\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p>\u0628\u0631\u0627\u06cc \u0646\u0635\u0628 Jenkins\u060c \u0645\u0646 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 Docker Compose \u0631\u0627 \u0627\u0646\u062a\u062e\u0627\u0628 \u06a9\u0631\u062f\u0645. Docker Compose \u0639\u0645\u0644\u06cc\u0627\u062a Docker \u0631\u0627 \u062e\u0648\u062f\u06a9\u0627\u0631 \u0645\u06cc \u06a9\u0646\u062f \u0648 \u0628\u0647 \u0634\u0645\u0627 \u0627\u0645\u06a9\u0627\u0646 \u0645\u06cc \u062f\u0647\u062f \u062a\u0645\u0627\u0645 \u0639\u0645\u0644\u06cc\u0627\u062a \u067e\u06cc\u0686\u06cc\u062f\u0647 Docker \u0631\u0627 \u0628\u0627 \u06cc\u06a9 \u0641\u0631\u0645\u0627\u0646 \u06a9\u0627\u0645\u0644 \u06a9\u0646\u06cc\u062f.<\/p>\n<h3><span class=\"ez-toc-section\" id=\"%D8%A7%D8%A8%D8%AA%D8%AF%D8%A7_%DB%8C%DA%A9_%D8%B3%D8%A7%D8%AE%D8%AA%D8%A7%D8%B1_%D8%AF%D8%A7%DB%8C%D8%B1%DA%A9%D8%AA%D9%88%D8%B1%DB%8C_%D8%B1%D9%88%DB%8C_%D8%B3%D8%B1%D9%88%D8%B1_%D8%A7%DB%8C%D8%AC%D8%A7%D8%AF_%DA%A9%D9%86%DB%8C%D8%AF_%D8%A7%DB%8C%D9%86_%D9%81%D9%82%D8%B7_%DB%8C%DA%A9_%D9%86%D8%B3%D8%AE%D9%87_%D8%A2%D8%B2%D9%85%D8%A7%DB%8C%D8%B4%DB%8C_%D8%A7%D8%B3%D8%AA\"><\/span>\n<p>  \u0627\u0628\u062a\u062f\u0627 \u06cc\u06a9 \u0633\u0627\u062e\u062a\u0627\u0631 \u062f\u0627\u06cc\u0631\u06a9\u062a\u0648\u0631\u06cc \u0631\u0648\u06cc \u0633\u0631\u0648\u0631 \u0627\u06cc\u062c\u0627\u062f \u06a9\u0646\u06cc\u062f (\u0627\u06cc\u0646 \u0641\u0642\u0637 \u06cc\u06a9 \u0646\u0633\u062e\u0647 \u0622\u0632\u0645\u0627\u06cc\u0634\u06cc \u0627\u0633\u062a):<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight plaintext\"><code>\/home\/jenkins\n     - docker-compose.yml\n     - jenkins-home\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<h3><span class=\"ez-toc-section\" id=\"%D8%A8%D8%B9%D8%AF%D8%8C_%DB%8C%DA%A9_%D8%A8%D9%86%D9%88%DB%8C%D8%B3%DB%8C%D8%AF_docker-composeyml_%D9%81%D8%A7%DB%8C%D9%84_%D8%A8%D8%B1%D8%A7%DB%8C_%D9%86%D8%B5%D8%A8_%D8%AC%D9%86%DA%A9%DB%8C%D9%86%D8%B2\"><\/span>\n<p>  \u0628\u0639\u062f\u060c \u06cc\u06a9 \u0628\u0646\u0648\u06cc\u0633\u06cc\u062f <code>docker-compose.yml<\/code> \u0641\u0627\u06cc\u0644 \u0628\u0631\u0627\u06cc \u0646\u0635\u0628 \u062c\u0646\u06a9\u06cc\u0646\u0632:<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight yaml\"><code><span class=\"na\">version<\/span><span class=\"pi\">:<\/span> <span class=\"s1\">'<\/span><span class=\"s\">3'<\/span>    <span class=\"c1\"># Specifies the format of the docker-compose.yml file<\/span>\n<span class=\"na\">services<\/span><span class=\"pi\">:<\/span>       <span class=\"c1\"># Collection of multiple containers<\/span>\n  <span class=\"na\">docker_jenkins<\/span><span class=\"pi\">:<\/span> \n    <span class=\"na\">user<\/span><span class=\"pi\">:<\/span> <span class=\"s\">root<\/span>  <span class=\"c1\"># Using root to avoid some permission issues<\/span>\n    <span class=\"na\">restart<\/span><span class=\"pi\">:<\/span> <span class=\"s\">always<\/span> <span class=\"c1\"># Restart policy<\/span>\n    <span class=\"na\">image<\/span><span class=\"pi\">:<\/span> <span class=\"s\">jenkins\/jenkins:lts<\/span>  <span class=\"c1\"># Specifies the image to use, in this case, LTS (Long-Term Support)<\/span>\n    <span class=\"na\">container_name<\/span><span class=\"pi\">:<\/span> <span class=\"s\">jenkins<\/span> <span class=\"c1\"># Container name<\/span>\n    <span class=\"na\">ports<\/span><span class=\"pi\">:<\/span>      <span class=\"c1\"># Exposed ports<\/span>\n      <span class=\"pi\">-<\/span> <span class=\"s1\">'<\/span><span class=\"s\">8080:8080'<\/span>\n      <span class=\"pi\">-<\/span> <span class=\"s1\">'<\/span><span class=\"s\">50000:50000'<\/span>\n    <span class=\"na\">volumes<\/span><span class=\"pi\">:<\/span>    <span class=\"c1\"># Volume mount paths<\/span>\n      <span class=\"pi\">-<\/span> <span class=\"s\">\/home\/jenkins\/jenkins_home\/:\/var\/jenkins_home<\/span>  <span class=\"c1\"># Mounts the directory we created to Jenkins's home directory inside the container<\/span>\n      <span class=\"pi\">-<\/span> <span class=\"s\">\/var\/run\/docker.sock:\/var\/run\/docker.sock<\/span>\n      <span class=\"pi\">-<\/span> <span class=\"s\">\/usr\/bin\/docker:\/usr\/bin\/docker<\/span>     <span class=\"c1\"># Allows the use of Docker commands inside the container<\/span>\n      <span class=\"pi\">-<\/span> <span class=\"s\">\/usr\/local\/bin\/docker-compose:\/usr\/local\/bin\/docker-compose<\/span> <span class=\"c1\"># Allows the use of Docker Compose commands inside the container<\/span>\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p>\u0628\u0647 \u062f\u0627\u06cc\u0631\u06a9\u062a\u0648\u0631\u06cc \u062c\u0646\u06a9\u06cc\u0646\u0632 \u0628\u0631\u0648\u06cc\u062f \u0648 \u0627\u062c\u0631\u0627 \u06a9\u0646\u06cc\u062f:<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight shell\"><code><span class=\"nv\">$ <\/span>docker-compose up <span class=\"nt\">-d<\/span>\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p>\u0627\u06cc\u0646 \u062f\u0633\u062a\u0648\u0631 \u0628\u0647 \u0637\u0648\u0631 \u062e\u0648\u062f\u06a9\u0627\u0631 \u062a\u0635\u0648\u06cc\u0631 \u0631\u0627 \u0645\u06cc \u06a9\u0634\u062f \u0648 \u0647\u0645\u0647 \u0686\u06cc\u0632 \u0631\u0627 \u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc \u0645\u06cc \u06a9\u0646\u062f.<\/p>\n<p>\u0627\u06af\u0631 \u0647\u0645\u0647 \u0686\u06cc\u0632 \u062e\u0648\u0628 \u067e\u06cc\u0634 \u0631\u0641\u062a\u060c \u0627\u06a9\u0646\u0648\u0646 \u0645\u06cc \u062a\u0648\u0627\u0646\u06cc\u062f \u0628\u0647 \u0633\u0631\u0648\u0631 \u062e\u0648\u062f \u062f\u0631 \u0627\u06cc\u0646 \u0622\u062f\u0631\u0633 \u062f\u0633\u062a\u0631\u0633\u06cc \u062f\u0627\u0634\u062a\u0647 \u0628\u0627\u0634\u06cc\u062f <code>http:\/\/your-server-address:port<\/code> \u0648 \u0631\u0627\u0628\u0637 \u0632\u06cc\u0631 \u0631\u0627 \u0628\u0628\u06cc\u0646\u06cc\u062f:<\/p>\n<p><\/p>\n<p>\u062f\u0627\u06cc\u0631\u06a9\u062a\u0648\u0631\u06cc \u062c\u0646\u06a9\u06cc\u0646\u0632\u06cc \u0631\u0627 \u06a9\u0647 \u0627\u06cc\u062c\u0627\u062f \u06a9\u0631\u062f\u06cc\u062f \u0628\u0627\u0632 \u06a9\u0646\u06cc\u062f \u0648 \u0628\u0647 \u0622\u0646 \u0628\u0631\u0648\u06cc\u062f <code>jenkins-home<\/code>:<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight plaintext\"><code>\/home\/jenkins\/jenkins-home\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p><img decoding=\"async\" src=\"https:\/\/res.cloudinary.com\/practicaldev\/image\/fetch\/s--qMeByBUa--\/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800\/https:\/\/p1-jj.byteimg.com\/tos-cn-i-t2oaga2asx\/gold-user-assets\/2019\/7\/23\/16c1d94e758452f9%7Etplv-t2oaga2asx-image.image\" loading=\"lazy\" width=\"800\" height=\"728\" alt=\"\" title=\"\"><\/p>\n<p>\u0631\u0627 \u0648\u0627\u0631\u062f \u06a9\u0646\u06cc\u062f <code>secrets<\/code> \u062f\u0627\u06cc\u0631\u06a9\u062a\u0648\u0631\u06cc:<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight shell\"><code><span class=\"nv\">$ <\/span><span class=\"nb\">cat <\/span>initialAdminPassword\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p><img decoding=\"async\" src=\"https:\/\/res.cloudinary.com\/practicaldev\/image\/fetch\/s--ecWGMLOn--\/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800\/https:\/\/p1-jj.byteimg.com\/tos-cn-i-t2oaga2asx\/gold-user-assets\/2019\/7\/23\/16c1d97fed386f9f%7Etplv-t2oaga2asx-image.image\" loading=\"lazy\" width=\"409\" height=\"36\" alt=\"\" title=\"\"><\/p>\n<p>\u0645\u062d\u062a\u0648\u0627\u06cc \u0627\u06cc\u0646 \u0641\u0627\u06cc\u0644 \u0631\u0627 \u06a9\u067e\u06cc \u06a9\u0631\u062f\u0647 \u0648 \u062f\u0631 \u0642\u0633\u0645\u062a \u0631\u0645\u0632 \u0639\u0628\u0648\u0631 \u0645\u062f\u06cc\u0631 \u0642\u0631\u0627\u0631 \u062f\u0647\u06cc\u062f.<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/res.cloudinary.com\/practicaldev\/image\/fetch\/s--z5Asdu2R--\/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800\/https:\/\/p1-jj.byteimg.com\/tos-cn-i-t2oaga2asx\/gold-user-assets\/2019\/7\/23\/16c1d9c03f8e46ce%7Etplv-t2oaga2asx-image.image\" loading=\"lazy\" width=\"800\" height=\"434\" alt=\"\" title=\"\"><\/p>\n<p><img decoding=\"async\" src=\"https:\/\/res.cloudinary.com\/practicaldev\/image\/fetch\/s--SA6DzgyQ--\/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800\/https:\/\/p1-jj.byteimg.com\/tos-cn-i-t2oaga2asx\/gold-user-assets\/2019\/7\/23\/16c1d9c622f48be9%7Etplv-t2oaga2asx-image.image\" loading=\"lazy\" width=\"796\" height=\"407\" alt=\"\" title=\"\"><\/p>\n<p>\u0628\u0639\u062f\u060c \u062f\u0648 \u0627\u0641\u0632\u0648\u0646\u0647 \u0631\u0627 \u0646\u0635\u0628 \u06a9\u0646\u06cc\u062f:<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight plaintext\"><code>NodeJS Plugin\nPublish Over SSH\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p><img decoding=\"async\" src=\"https:\/\/res.cloudinary.com\/practicaldev\/image\/fetch\/s--IulT1ggl--\/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800\/https:\/\/p1-jj.byteimg.com\/tos-cn-i-t2oaga2asx\/gold-user-assets\/2019\/7\/23\/16c1d9e695b0edfa%7Etplv-t2oaga2asx-image.image\" loading=\"lazy\" width=\"800\" height=\"486\" alt=\"\" title=\"\"><br \/><img decoding=\"async\" src=\"https:\/\/res.cloudinary.com\/practicaldev\/image\/fetch\/s--qwjDkEN2--\/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800\/https:\/\/p1-jj.byteimg.com\/tos-cn-i-t2oaga2asx\/gold-user-assets\/2019\/7\/23\/16c1da1244bf7efc%7Etplv-t2oaga2asx-image.image\" loading=\"lazy\" width=\"800\" height=\"452\" alt=\"\" title=\"\"><\/p>\n<p>\u0628\u0647 \u067e\u0627\u06cc\u06cc\u0646 \u0627\u0633\u06a9\u0631\u0648\u0644 \u06a9\u0646\u06cc\u062f.<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/res.cloudinary.com\/practicaldev\/image\/fetch\/s--PHXTnoBz--\/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800\/https:\/\/p1-jj.byteimg.com\/tos-cn-i-t2oaga2asx\/gold-user-assets\/2019\/7\/23\/16c1da21665f1ac2%7Etplv-t2oaga2asx-image.image\" loading=\"lazy\" width=\"599\" height=\"125\" alt=\"\" title=\"\"><br \/><img decoding=\"async\" src=\"https:\/\/res.cloudinary.com\/practicaldev\/image\/fetch\/s--0_7TPyiI--\/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800\/https:\/\/p1-jj.byteimg.com\/tos-cn-i-t2oaga2asx\/gold-user-assets\/2019\/7\/23\/16c1da265c2bd528%7Etplv-t2oaga2asx-image.image\" loading=\"lazy\" width=\"800\" height=\"450\" alt=\"\" title=\"\"><br \/><img decoding=\"async\" src=\"https:\/\/res.cloudinary.com\/practicaldev\/image\/fetch\/s--Y9xIXVVH--\/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800\/https:\/\/p1-jj.byteimg.com\/tos-cn-i-t2oaga2asx\/gold-user-assets\/2019\/7\/23\/16c1da36f618510d%7Etplv-t2oaga2asx-image.image\" loading=\"lazy\" width=\"800\" height=\"171\" alt=\"\" title=\"\"><br \/><img decoding=\"async\" src=\"https:\/\/res.cloudinary.com\/practicaldev\/image\/fetch\/s--tdG77qul--\/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800\/https:\/\/p1-jj.byteimg.com\/tos-cn-i-t2oaga2asx\/gold-user-assets\/2019\/7\/23\/16c1da5e695030f3%7Etplv-t2oaga2asx-image.image\" loading=\"lazy\" width=\"800\" height=\"402\" alt=\"\" title=\"\"><\/p>\n<p>\u0645\u0631\u062c\u0639 \u0631\u0633\u0645\u06cc<\/p>\n<h3><span class=\"ez-toc-section\" id=\"1_%D8%A7%D8%A8%D8%AA%D8%AF%D8%A7_%DB%8C%DA%A9_%D8%B1%D8%A7_%D8%A7%DB%8C%D8%AC%D8%A7%D8%AF_%DA%A9%D9%86%DB%8C%D8%AF_nginxconf_%D9%81%D8%A7%DB%8C%D9%84_%D8%AF%D8%B1_%D8%AF%D8%A7%DB%8C%D8%B1%DA%A9%D8%AA%D9%88%D8%B1%DB%8C_%D8%B1%DB%8C%D8%B4%D9%87_%D9%BE%D8%B1%D9%88%DA%98%D9%87_%D8%B4%D9%85%D8%A7\"><\/span>\n<p>  1. \u0627\u0628\u062a\u062f\u0627 \u06cc\u06a9 \u0631\u0627 \u0627\u06cc\u062c\u0627\u062f \u06a9\u0646\u06cc\u062f <code>nginx.conf<\/code> \u0641\u0627\u06cc\u0644 \u062f\u0631 \u062f\u0627\u06cc\u0631\u06a9\u062a\u0648\u0631\u06cc \u0631\u06cc\u0634\u0647 \u067e\u0631\u0648\u0698\u0647 \u0634\u0645\u0627:<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight nginx\"><code><span class=\"k\">user<\/span>  <span class=\"s\">nginx<\/span><span class=\"p\">;<\/span>\n<span class=\"k\">worker_processes<\/span>  <span class=\"mi\">1<\/span><span class=\"p\">;<\/span>\n<span class=\"k\">error_log<\/span>  <span class=\"n\">\/var\/log\/nginx\/error.log<\/span> <span class=\"s\">warn<\/span><span class=\"p\">;<\/span>\n<span class=\"k\">pid<\/span>        <span class=\"n\">\/var\/run\/nginx.pid<\/span><span class=\"p\">;<\/span>\n<span class=\"k\">events<\/span> <span class=\"p\">{<\/span>\n  <span class=\"kn\">worker_connections<\/span>  <span class=\"mi\">1024<\/span><span class=\"p\">;<\/span>\n<span class=\"p\">}<\/span>\n<span class=\"k\">http<\/span> <span class=\"p\">{<\/span>\n  <span class=\"kn\">include<\/span>       <span class=\"n\">\/etc\/nginx\/mime.types<\/span><span class=\"p\">;<\/span>\n  <span class=\"kn\">default_type<\/span>  <span class=\"nc\">application\/octet-stream<\/span><span class=\"p\">;<\/span>\n  <span class=\"kn\">log_format<\/span>  <span class=\"s\">main<\/span>  <span class=\"s\">'<\/span><span class=\"nv\">$remote_addr<\/span> <span class=\"s\">-<\/span> <span class=\"nv\">$remote_user<\/span> <span class=\"s\">[<\/span><span class=\"nv\">$time_local<\/span><span class=\"s\">]<\/span> <span class=\"s\">\"<\/span><span class=\"nv\">$request<\/span><span class=\"s\">\"<\/span> <span class=\"s\">'<\/span>\n  <span class=\"s\">'<\/span><span class=\"nv\">$status<\/span> <span class=\"nv\">$body_bytes_sent<\/span> <span class=\"s\">\"<\/span><span class=\"nv\">$http_referer<\/span><span class=\"s\">\"<\/span> <span class=\"s\">'<\/span>\n  <span class=\"s\">'\"<\/span><span class=\"nv\">$http_user_agent<\/span><span class=\"s\">\"<\/span> <span class=\"s\">\"<\/span><span class=\"nv\">$http_x_forwarded_for<\/span><span class=\"s\">\"'<\/span><span class=\"p\">;<\/span>\n  <span class=\"kn\">access_log<\/span>  <span class=\"n\">\/var\/log\/nginx\/access.log<\/span>  <span class=\"s\">main<\/span><span class=\"p\">;<\/span>\n  <span class=\"kn\">sendfile<\/span>        <span class=\"no\">on<\/span><span class=\"p\">;<\/span>\n  <span class=\"kn\">keepalive_timeout<\/span>  <span class=\"mi\">65<\/span><span class=\"p\">;<\/span>\n  <span class=\"kn\">server<\/span> <span class=\"p\">{<\/span>\n    <span class=\"kn\">listen<\/span>       <span class=\"mi\">80<\/span><span class=\"p\">;<\/span>\n    <span class=\"kn\">server_name<\/span>  <span class=\"s\">www.lovelp.xin<\/span><span class=\"p\">;<\/span>  <span class=\"c1\"># Domain name<\/span>\n    <span class=\"kn\">location<\/span> <span class=\"n\">\/<\/span> <span class=\"p\">{<\/span>\n      <span class=\"kn\">root<\/span>   <span class=\"n\">\/app<\/span><span class=\"p\">;<\/span>  <span class=\"c1\"># Directory location<\/span>\n      <span class=\"kn\">index<\/span>  <span class=\"s\">index.html<\/span><span class=\"p\">;<\/span>\n      <span class=\"kn\">try_files<\/span> <span class=\"nv\">$uri<\/span> <span class=\"nv\">$uri<\/span><span class=\"n\">\/<\/span> <span class=\"n\">\/index.html<\/span><span class=\"p\">;<\/span>\n    <span class=\"p\">}<\/span>\n    <span class=\"kn\">error_page<\/span>   <span class=\"mi\">500<\/span> <span class=\"mi\">502<\/span> <span class=\"mi\">503<\/span> <span class=\"mi\">504<\/span>  <span class=\"n\">\/50x.html<\/span><span class=\"p\">;<\/span>\n    <span class=\"kn\">location<\/span> <span class=\"p\">=<\/span> <span class=\"n\">\/50x.html<\/span> <span class=\"p\">{<\/span>\n      <span class=\"kn\">root<\/span>   <span class=\"n\">\/usr\/share\/nginx\/html<\/span><span class=\"p\">;<\/span>\n    <span class=\"p\">}<\/span>\n  <span class=\"p\">}<\/span>\n<span class=\"p\">}<\/span>\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<h3><span class=\"ez-toc-section\" id=\"2_%D8%A7%DB%8C%D8%AC%D8%A7%D8%AF_%DB%8C%DA%A9_Dockerfile_%D8%AF%D8%B1_%D8%AF%D8%A7%DB%8C%D8%B1%DA%A9%D8%AA%D9%88%D8%B1%DB%8C_%D8%A7%D8%B5%D9%84%DB%8C_%D9%BE%D8%B1%D9%88%DA%98%D9%87_%D8%B4%D9%85%D8%A7\"><\/span>\n<p>  2. \u0627\u06cc\u062c\u0627\u062f \u06cc\u06a9 <code>Dockerfile<\/code> \u062f\u0631 \u062f\u0627\u06cc\u0631\u06a9\u062a\u0648\u0631\u06cc \u0627\u0635\u0644\u06cc \u067e\u0631\u0648\u0698\u0647 \u0634\u0645\u0627:<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight docker\"><code><span class=\"k\">FROM<\/span><span class=\"s\"> node<\/span>\n<span class=\"k\">WORKDIR<\/span><span class=\"s\"> \/app<\/span>\n\n<span class=\"k\">COPY<\/span><span class=\"s\"> package*.json .\/<\/span>\n<span class=\"k\">RUN <\/span>npm <span class=\"nb\">install<\/span> <span class=\"nt\">-g<\/span> cnpm <span class=\"nt\">--registry<\/span><span class=\"o\">=<\/span>https:\/\/registry.npm.taobao.org\n<span class=\"k\">RUN <\/span>cnpm <span class=\"nb\">install<\/span>\n<span class=\"k\">COPY<\/span><span class=\"s\"> .\/ \/app<\/span>\n<span class=\"k\">RUN <\/span>npm run build:prod\n\n<span class=\"k\">FROM<\/span><span class=\"s\"> nginx<\/span>\n<span class=\"k\">RUN <\/span><span class=\"nb\">mkdir<\/span> \/app\n<span class=\"k\">COPY<\/span><span class=\"s\"> --from=0 \/app\/dist \/app<\/span>\n<span class=\"k\">COPY<\/span><span class=\"s\"> nginx.conf \/etc\/nginx\/nginx.conf<\/span>\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<h3><span class=\"ez-toc-section\" id=\"3_%D8%A7%DB%8C%D8%AC%D8%A7%D8%AF_%DB%8C%DA%A9_setupsh_%D8%A7%D8%B3%DA%A9%D8%B1%DB%8C%D9%BE%D8%AA_%D8%AF%D8%B1_%D8%AF%D8%A7%DB%8C%D8%B1%DA%A9%D8%AA%D9%88%D8%B1%DB%8C_%D8%B1%DB%8C%D8%B4%D9%87_%D9%BE%D8%B1%D9%88%DA%98%D9%87_%D8%B4%D9%85%D8%A7_%D8%A8%D8%B1%D8%A7%DB%8C_%DA%A9%D9%85%DA%A9_%D8%A8%D9%87_%D8%A7%D8%AC%D8%B1%D8%A7%DB%8C_%D8%AF%D8%B3%D8%AA%D9%88%D8%B1%D8%A7%D8%AA\"><\/span>\n<p>  3. \u0627\u06cc\u062c\u0627\u062f \u06cc\u06a9 <code>setup.sh<\/code> \u0627\u0633\u06a9\u0631\u06cc\u067e\u062a \u062f\u0631 \u062f\u0627\u06cc\u0631\u06a9\u062a\u0648\u0631\u06cc \u0631\u06cc\u0634\u0647 \u067e\u0631\u0648\u0698\u0647 \u0634\u0645\u0627 \u0628\u0631\u0627\u06cc \u06a9\u0645\u06a9 \u0628\u0647 \u0627\u062c\u0631\u0627\u06cc \u062f\u0633\u062a\u0648\u0631\u0627\u062a:<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight shell\"><code><span class=\"c\">#!\/usr\/bin\/env bash<\/span>\n<span class=\"nv\">image_version<\/span><span class=\"o\">=<\/span><span class=\"sb\">`<\/span><span class=\"nb\">date<\/span> +%Y%m%d%H%M<span class=\"sb\">`<\/span><span class=\"p\">;<\/span>\n<span class=\"c\"># Stop the shop_admin container<\/span>\ndocker stop shop_admin <span class=\"o\">||<\/span> <span class=\"nb\">true<\/span><span class=\"p\">;<\/span>\n<span class=\"c\"># Remove the shop_admin container<\/span>\ndocker <span class=\"nb\">rm <\/span>shop_admin <span class=\"o\">||<\/span> <span class=\"nb\">true<\/span><span class=\"p\">;<\/span>\n<span class=\"c\"># Remove the shop\/admin image<\/span>\ndocker rmi <span class=\"nt\">--force<\/span> <span class=\"si\">$(<\/span>docker images | <span class=\"nb\">grep <\/span>shop\/admin | <span class=\"nb\">awk<\/span> <span class=\"s1\">'{print $3}'<\/span><span class=\"si\">)<\/span>\n<span class=\"c\"># Build the shop\/admin:$image_version image<\/span>\ndocker build <span class=\"nb\">.<\/span> <span class=\"nt\">-t<\/span> shop\/admin:<span class=\"nv\">$image_version<\/span><span class=\"p\">;<\/span>\n<span class=\"c\"># List the images<\/span>\ndocker images<span class=\"p\">;<\/span>\n<span class=\"c\"># Create a container named shop_admin from the shop\/admin image<\/span>\ndocker run <span class=\"nt\">-p<\/span> 9527:80 <span class=\"nt\">-d<\/span> <span class=\"nt\">--name<\/span> shop_admin shop\/admin:<span class=\"nv\">$image_version<\/span><span class=\"p\">;<\/span>\n<span class=\"c\"># View logs<\/span>\ndocker logs shop_admin<span class=\"p\">;<\/span>\n<span class=\"c\"># Remove images generated during the build process<\/span>\ndocker rmi <span class=\"si\">$(<\/span>docker images <span class=\"nt\">-f<\/span> <span class=\"s2\">\"dangling=true\"<\/span> <span class=\"nt\">-q<\/span><span class=\"si\">)<\/span>\n<span class=\"c\"># Automatically clean up space<\/span>\ndocker system prune <span class=\"nt\">-a<\/span> <span class=\"nt\">-f<\/span>\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<h3><span class=\"ez-toc-section\" id=\"4_%D8%AF%D8%B1_%D9%86%D9%87%D8%A7%DB%8C%D8%AA%D8%8C_%DB%8C%DA%A9_%D9%BE%D8%B1%D9%88%DA%98%D9%87_%D8%AF%D8%B1_%D8%AC%D9%86%DA%A9%DB%8C%D9%86%D8%B2_%D8%A7%DB%8C%D8%AC%D8%A7%D8%AF_%DA%A9%D9%86%DB%8C%D8%AF\"><\/span>\n<p>  4. \u062f\u0631 \u0646\u0647\u0627\u06cc\u062a\u060c \u06cc\u06a9 \u067e\u0631\u0648\u0698\u0647 \u062f\u0631 \u062c\u0646\u06a9\u06cc\u0646\u0632 \u0627\u06cc\u062c\u0627\u062f \u06a9\u0646\u06cc\u062f:<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p><img decoding=\"async\" src=\"https:\/\/res.cloudinary.com\/practicaldev\/image\/fetch\/s--DpWVXoOs--\/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800\/https:\/\/p1-jj.byteimg.com\/tos-cn-i-t2oaga2asx\/gold-user-assets\/2019\/7\/23\/16c1da7e5163cf18%7Etplv-t2oaga2asx-image.image\" loading=\"lazy\" width=\"800\" height=\"646\" alt=\"\" title=\"\"><\/p>\n<p><img decoding=\"async\" src=\"https:\/\/res.cloudinary.com\/practicaldev\/image\/fetch\/s--_-3_FoaM--\/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800\/https:\/\/p1-jj.byteimg.com\/tos-cn-i-t2oaga2asx\/gold-user-assets\/2019\/7\/23\/16c1da92d3f61f9b%7Etplv-t2oaga2asx-image.image\" loading=\"lazy\" width=\"800\" height=\"463\" alt=\"\" title=\"\"><\/p>\n<p><img decoding=\"async\" src=\"https:\/\/res.cloudinary.com\/practicaldev\/image\/fetch\/s--h2e24Qxf--\/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800\/https:\/\/p1-jj.byteimg.com\/tos-cn-i-t2oaga2asx\/gold-user-assets\/2019\/7\/23\/16c1da976268c023%7Etplv-t2oaga2asx-image.image\" loading=\"lazy\" width=\"800\" height=\"270\" alt=\"\" title=\"\"><\/p>\n<p><img decoding=\"async\" src=\"https:\/\/res.cloudinary.com\/practicaldev\/image\/fetch\/s---Fk666Ht--\/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800\/https:\/\/p1-jj.byteimg.com\/tos-cn-i-t2oaga2asx\/gold-user-assets\/2019\/7\/23\/16c1db1c3130fed4%7Etplv-t2oaga2asx-image.image\" loading=\"lazy\" width=\"800\" height=\"295\" alt=\"\" title=\"\"><\/p>\n<p>\u062f\u0631 \u0646\u0647\u0627\u06cc\u062a\u060c \u0645\u06cc \u062a\u0648\u0627\u0646\u06cc\u062f \u0628\u0627 \u062e\u0648\u0634\u062d\u0627\u0644\u06cc \u0631\u0648\u06cc \u0622\u0646 \u06a9\u0644\u06cc\u06a9 \u06a9\u0646\u06cc\u062f <code>Build Now<\/code>.<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/res.cloudinary.com\/practicaldev\/image\/fetch\/s--eotH005n--\/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800\/https:\/\/p1-jj.byteimg.com\/tos-cn-i-t2oaga2asx\/gold-user-assets\/2019\/7\/23\/16c1db3f07153468%7Etplv-t2oaga2asx-image.image\" loading=\"lazy\" width=\"800\" height=\"446\" alt=\"\" title=\"\"><\/p>\n<\/p><\/div>\n","protected":false},"excerpt":{"rendered":"<p>\u0627\u0633\u06a9\u0631\u06cc\u067e\u062a\u200c\u0647\u0627\u06cc \u0634\u0644 \u0633\u0641\u0627\u0631\u0634\u06cc\u060c \u06a9\u0646\u062a\u0631\u0644 \u0645\u062d\u06cc\u0637 \u0627\u0633\u062a\u0642\u0631\u0627\u0631 \u06cc\u06a9\u067e\u0627\u0631\u0686\u0647 \u0631\u0627 \u0631\u0627\u062d\u062a\u200c\u062a\u0631 \u0648 \u0627\u0646\u0639\u0637\u0627\u0641\u200c\u067e\u0630\u06cc\u0631\u062a\u0631 \u0645\u06cc\u200c\u06a9\u0646\u0646\u062f. \u0627\u06af\u0631 \u0633\u0631\u0648\u0631 \u062c\u0627\u06cc\u06af\u0632\u06cc\u0646 \u0634\u0648\u062f\u060c \u062d\u062c\u0645 \u06a9\u0627\u0631\u06cc \u0628\u0631\u0627\u06cc \u0627\u0633\u062a\u0642\u0631\u0627\u0631 \u0645\u062c\u062f\u062f \u0646\u0633\u0628\u062a\u0627\u064b \u06a9\u0645 \u0627\u0633\u062a. \u0627\u0628\u062a\u062f\u0627 \u0628\u0627\u06cc\u062f \u06cc\u06a9 \u0633\u0631\u0648\u0631 \u062f\u0627\u0634\u062a\u0647 \u0628\u0627\u0634\u06cc\u062f. \u0645\u0646 \u0627\u0632 \u06cc\u06a9 \u0646\u0645\u0648\u0646\u0647 Alibaba Cloud ECS \u062f\u0631 \u0645\u0646\u0637\u0642\u0647 \u0634\u0631\u0642 \u0686\u06cc\u0646 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0631\u062f\u0645. \u0622\u0645\u0648\u0632\u0634 \u0647\u0627\u06cc \u0622\u0646\u0644\u0627\u06cc\u0646 \u0632\u06cc\u0627\u062f\u06cc \u0628\u0631\u0627\u06cc \u062e\u0631\u06cc\u062f \u0633\u0631\u0648\u0631 \u0648\u062c\u0648\u062f \u062f\u0627\u0631\u062f. \u067e\u0633 \u0627\u0632 \u062e\u0631\u06cc\u062f\u060c &hellip;<\/p>\n","protected":false},"author":2,"featured_media":73147,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"fifu_image_url":"","fifu_image_alt":"","footnotes":""},"categories":[339],"tags":[],"class_list":["post-73144","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-dev"],"_links":{"self":[{"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/posts\/73144","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/comments?post=73144"}],"version-history":[{"count":0,"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/posts\/73144\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/media\/73147"}],"wp:attachment":[{"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/media?parent=73144"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/categories?post=73144"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/tags?post=73144"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}