{"id":1383,"date":"2025-03-20T23:38:33","date_gmt":"2025-03-20T21:38:33","guid":{"rendered":"https:\/\/olvas.dev\/?p=1383"},"modified":"2025-03-20T23:38:35","modified_gmt":"2025-03-20T21:38:35","slug":"%d0%bf%d0%be%d0%bb%d0%bd%d0%be%d0%b5-%d0%bf%d1%80%d0%b0%d0%ba%d1%82%d0%b8%d1%87%d0%b5%d1%81%d0%ba%d0%be%d0%b5-%d1%80%d1%83%d0%ba%d0%be%d0%b2%d0%be%d0%b4%d1%81%d1%82%d0%b2%d0%be-%d0%bf%d0%be-docker-2","status":"publish","type":"post","link":"https:\/\/olvas.dev\/?p=1383","title":{"rendered":"\u041f\u043e\u043b\u043d\u043e\u0435 \u043f\u0440\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0435 \u0440\u0443\u043a\u043e\u0432\u043e\u0434\u0441\u0442\u0432\u043e \u043f\u043e Docker: \u0441 \u043d\u0443\u043b\u044f \u0434\u043e \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0430 \u043d\u0430 AWS"},"content":{"rendered":"\n<h3 class=\"wp-block-heading\">\u0427\u0442\u043e \u0442\u0430\u043a\u043e\u0435 \u0414\u043e\u043a\u0435\u0440?<\/h3>\n\n\n\n<p>\u041e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u0435&nbsp;<a href=\"https:\/\/www.docker.com\/\" target=\"_blank\" rel=\"noreferrer noopener\">\u0414\u043e\u043a\u0435\u0440\u0430<\/a>&nbsp;\u0432 \u0412\u0438\u043a\u0438\u043f\u0435\u0434\u0438\u0438 \u0437\u0432\u0443\u0447\u0438\u0442 \u0442\u0430\u043a:<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p>\u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u043d\u043e\u0435 \u043e\u0431\u0435\u0441\u043f\u0435\u0447\u0435\u043d\u0438\u0435 \u0434\u043b\u044f \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0437\u0430\u0446\u0438\u0438 \u0440\u0430\u0437\u0432\u0451\u0440\u0442\u044b\u0432\u0430\u043d\u0438\u044f \u0438 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f\u043c\u0438 \u0432 \u0441\u0440\u0435\u0434\u0435 \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u043d\u0430 \u0443\u0440\u043e\u0432\u043d\u0435 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u043e\u043d\u043d\u043e\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u044b; \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u00ab\u0443\u043f\u0430\u043a\u043e\u0432\u0430\u0442\u044c\u00bb \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u0441\u043e \u0432\u0441\u0435\u043c \u0435\u0433\u043e \u043e\u043a\u0440\u0443\u0436\u0435\u043d\u0438\u0435\u043c \u0438 \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u044f\u043c\u0438 \u0432 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440, \u0430 \u0442\u0430\u043a\u0436\u0435 \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u0441\u0440\u0435\u0434\u0443 \u043f\u043e \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044e \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0430\u043c\u0438.<\/p>\n<\/blockquote>\n\n\n\n<p>\u041e\u0433\u043e! \u041a\u0430\u043a \u043c\u043d\u043e\u0433\u043e \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438.&nbsp;<a target=\"_blank\" rel=\"noreferrer noopener\"><\/a>\u041f\u0440\u043e\u0441\u0442\u044b\u043c\u0438 \u0441\u043b\u043e\u0432\u0430\u043c\u0438, \u0414\u043e\u043a\u0435\u0440 \u044d\u0442\u043e \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0430\u043c, \u0441\u0438\u0441\u0442\u0435\u043c\u043d\u044b\u043c\u0438 \u0430\u0434\u043c\u0438\u043d\u0438\u0441\u0442\u0440\u0430\u0442\u043e\u0440\u0430\u043c \u0438 \u0434\u0440\u0443\u0433\u0438\u043c \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u0438\u0441\u0442\u0430\u043c \u0434\u0435\u043f\u043b\u043e\u0438\u0442\u044c \u0438\u0445 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u0432 \u043f\u0435\u0441\u043e\u0447\u043d\u0438\u0446\u0435 (\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043d\u0430\u0437\u044b\u0432\u0430\u044e\u0442\u0441\u044f&nbsp;<em>\u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0430\u043c\u0438<\/em>), \u0434\u043b\u044f \u0437\u0430\u043f\u0443\u0441\u043a\u0430 \u043d\u0430 \u0446\u0435\u043b\u0435\u0432\u043e\u0439 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u043e\u043d\u043d\u043e\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u0435, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, Linux. \u041a\u043b\u044e\u0447\u0435\u0432\u043e\u0435 \u043f\u0440\u0435\u0438\u043c\u0443\u0449\u0435\u0441\u0442\u0432\u043e \u0414\u043e\u043a\u0435\u0440\u0430 \u0432 \u0442\u043e\u043c, \u0447\u0442\u043e \u043e\u043d \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f\u043c&nbsp;<strong>\u0443\u043f\u0430\u043a\u043e\u0432\u0430\u0442\u044c \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u0441\u043e \u0432\u0441\u0435\u043c\u0438 \u0435\u0433\u043e \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u044f\u043c\u0438 \u0432 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0439 \u043c\u043e\u0434\u0443\u043b\u044c<\/strong>&nbsp;\u0434\u043b\u044f \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438. \u0412 \u043e\u0442\u043b\u0438\u0447\u0438\u0435 \u043e\u0442 \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u044b\u0445 \u043c\u0430\u0448\u0438\u043d, \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u044b \u043d\u0435 \u0441\u043e\u0437\u0434\u0430\u044e\u0442 \u0442\u0430\u043a\u043e\u0439 \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0439 \u043d\u0430\u0433\u0440\u0443\u0437\u043a\u0438, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0441 \u043d\u0438\u043c\u0438 \u043c\u043e\u0436\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0441\u0438\u0441\u0442\u0435\u043c\u0443 \u0438 \u0440\u0435\u0441\u0443\u0440\u0441\u044b \u0431\u043e\u043b\u0435\u0435 \u044d\u0444\u0444\u0435\u043a\u0442\u0438\u0432\u043d\u043e.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">\u0427\u0442\u043e \u0442\u0430\u043a\u043e\u0435 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440?<\/h3>\n\n\n\n<p>\u0421\u0442\u0430\u043d\u0434\u0430\u0440\u0442 \u0432 \u0438\u043d\u0434\u0443\u0441\u0442\u0440\u0438\u0438 \u043d\u0430 \u0441\u0435\u0433\u043e\u0434\u043d\u044f\u0448\u043d\u0438\u0439 \u0434\u0435\u043d\u044c \u2014 \u044d\u0442\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u044b\u0435 \u043c\u0430\u0448\u0438\u043d\u044b \u0434\u043b\u044f \u0437\u0430\u043f\u0443\u0441\u043a\u0430 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439. \u0412\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u044b\u0435 \u043c\u0430\u0448\u0438\u043d\u044b \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u044e\u0442 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u0432\u043d\u0443\u0442\u0440\u0438 \u0433\u043e\u0441\u0442\u0435\u0432\u043e\u0439 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u043e\u043d\u043d\u043e\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u044b, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u043d\u0430 \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u043e\u043c \u0436\u0435\u043b\u0435\u0437\u0435 \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u0439 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u043e\u043d\u043d\u043e\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u044b \u0441\u0435\u0440\u0432\u0435\u0440\u0430.<\/p>\n\n\n\n<p>\u0412\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u044b\u0435 \u043c\u0430\u0448\u0438\u043d\u044b \u043e\u0442\u043b\u0438\u0447\u043d\u043e \u043f\u043e\u0434\u0445\u043e\u0434\u044f\u0442 \u0434\u043b\u044f \u043f\u043e\u043b\u043d\u043e\u0439 \u0438\u0437\u043e\u043b\u044f\u0446\u0438\u0438 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0430 \u0434\u043b\u044f \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f: \u043f\u043e\u0447\u0442\u0438 \u043d\u0438\u043a\u0430\u043a\u0438\u0435 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u044b \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u0439 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u043e\u043d\u043d\u043e\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u044b \u043d\u0435 \u043c\u043e\u0433\u0443\u0442 \u043f\u043e\u0432\u043b\u0438\u044f\u0442\u044c \u043d\u0430 \u0441\u043e\u0444\u0442 \u0433\u043e\u0441\u0442\u0435\u0432\u043e\u0439 \u041e\u0421, \u0438 \u043d\u0430\u043e\u0431\u043e\u0440\u043e\u0442. \u041d\u043e \u0437\u0430 \u0442\u0430\u043a\u0443\u044e \u0438\u0437\u043e\u043b\u044f\u0446\u0438\u044e \u043f\u0440\u0438\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u043f\u043b\u0430\u0442\u0438\u0442\u044c. \u0421\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442 \u0437\u043d\u0430\u0447\u0438\u0442\u0435\u043b\u044c\u043d\u0430\u044f \u0432\u044b\u0447\u0438\u0441\u043b\u0438\u0442\u0435\u043b\u044c\u043d\u0430\u044f \u043d\u0430\u0433\u0440\u0443\u0437\u043a\u0430, \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u0430\u044f \u0434\u043b\u044f \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u0436\u0435\u043b\u0435\u0437\u0430 \u0433\u043e\u0441\u0442\u0435\u0432\u043e\u0439 \u041e\u0421.<\/p>\n\n\n\n<p>\u041a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u044b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442 \u0434\u0440\u0443\u0433\u043e\u0439 \u043f\u043e\u0434\u0445\u043e\u0434: \u043e\u043d\u0438 \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u044e\u0442 \u0441\u0445\u043e\u0436\u0438\u0439 \u0441 \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u044b\u043c\u0438 \u043c\u0430\u0448\u0438\u043d\u0430\u043c\u0438 \u0443\u0440\u043e\u0432\u0435\u043d\u044c \u0438\u0437\u043e\u043b\u044f\u0446\u0438\u0438, \u043d\u043e \u0431\u043b\u0430\u0433\u043e\u0434\u0430\u0440\u044f \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e\u043c\u0443 \u0437\u0430\u0434\u0435\u0439\u0441\u0442\u0432\u043e\u0432\u0430\u043d\u0438\u044e \u043d\u0438\u0437\u043a\u043e\u0443\u0440\u043e\u0432\u043d\u0435\u0432\u044b\u0445 \u043c\u0435\u0445\u0430\u043d\u0438\u0437\u043c\u043e\u0432 \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u0439 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u043e\u043d\u043d\u043e\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u044b \u0434\u0435\u043b\u0430\u044e\u0442 \u044d\u0442\u043e \u0441 \u0432 \u0440\u0430\u0437\u044b \u043c\u0435\u043d\u044c\u0448\u0435\u0439 \u043d\u0430\u0433\u0440\u0443\u0437\u043a\u043e\u0439.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">\u041f\u043e\u0447\u0435\u043c\u0443 \u044f \u0434\u043e\u043b\u0436\u0435\u043d \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0438\u0445?<\/h3>\n\n\n\n<p>\u0412\u0437\u043b\u0435\u0442 \u0414\u043e\u043a\u0435\u0440\u0430 \u0431\u044b\u043b \u043f\u043e-\u043d\u0430\u0441\u0442\u043e\u044f\u0449\u0435\u043c\u0443 \u044d\u043f\u0438\u0447\u043d\u044b\u043c. \u041d\u0435 \u0441\u043c\u043e\u0442\u0440\u044f \u043d\u0430 \u0442\u043e, \u0447\u0442\u043e \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u044b \u0441\u0430\u043c\u0438 \u043f\u043e \u0441\u0435\u0431\u0435 \u2014 \u043d\u0435 \u043d\u043e\u0432\u0430\u044f \u0442\u0435\u0445\u043d\u043e\u043b\u043e\u0433\u0438\u044f, \u0434\u043e \u0414\u043e\u043a\u0435\u0440\u0430 \u043e\u043d\u0438 \u043d\u0435 \u0431\u044b\u043b\u0438 \u0442\u0430\u043a \u0440\u0430\u0441\u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0435\u043d\u044b \u0438 \u043f\u043e\u043f\u0443\u043b\u044f\u0440\u043d\u044b. \u0414\u043e\u043a\u0435\u0440 \u0438\u0437\u043c\u0435\u043d\u0438\u043b \u0441\u0438\u0442\u0443\u0430\u0446\u0438\u044e, \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u0438\u0432 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u044b\u0439 API, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0441\u0438\u043b\u044c\u043d\u043e \u0443\u043f\u0440\u043e\u0441\u0442\u0438\u043b \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u043e\u0432, \u0438 \u043f\u043e\u0437\u0432\u043e\u043b\u0438\u043b \u0441\u043e\u043e\u0431\u0449\u0435\u0441\u0442\u0432\u0443 \u0432\u043c\u0435\u0441\u0442\u0435 \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u043d\u0430\u0434 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430\u043c\u0438 \u043f\u043e \u0440\u0430\u0431\u043e\u0442\u0435 \u0441 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0430\u043c\u0438. \u0412 \u0441\u0442\u0430\u0442\u044c\u0435, \u043e\u043f\u0443\u0431\u043b\u0438\u043a\u043e\u0432\u0430\u043d\u043d\u043e\u0439 \u0432 &nbsp;<a href=\"http:\/\/www.theregister.co.uk\/2014\/05\/23\/google_containerization_two_billion\/\" target=\"_blank\" rel=\"noreferrer noopener\">The Register<\/a>&nbsp;\u0432 \u0441\u0435\u0440\u0435\u0434\u0438\u043d\u0435 2014 \u0433\u043e\u0432\u043e\u0440\u0438\u0442\u0441\u044f, \u0447\u0442\u043e \u0413\u0443\u0433\u043b \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442 \u0431\u043e\u043b\u044c\u0448\u0435&nbsp;<strong>\u0434\u0432\u0443\u0445 \u043c\u0438\u043b\u043b\u0438\u0430\u0440\u0434\u043e\u0432 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u043e\u0432 \u0432 \u043d\u0435\u0434\u0435\u043b\u044e<\/strong>.<\/p>\n\n\n\n<p><strong>Google Trends \u0434\u043b\u044f \u0441\u043b\u043e\u0432\u0430 &#8216;Docker&#8217;<\/strong><br><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/files\/469\/7ad\/a07\/4697ada0727345c9a8f5ac7f8553ec70.png\" alt=\"interest\"><\/p>\n\n\n\n<p>\u0412 \u0434\u043e\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0435 \u043a \u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u043c\u0443 \u0440\u043e\u0441\u0442\u0443 \u0414\u043e\u043a\u0435\u0440\u0430, \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u044f-\u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a Docker Inc. \u0431\u044b\u043b\u0430 \u043e\u0446\u0435\u043d\u0435\u043d\u0430 \u0432 \u0434\u0432\u0430 \u0441 \u043b\u0438\u0448\u043d\u0438\u043c \u043c\u0438\u043b\u043b\u0438\u0430\u0440\u0434\u0430 \u0434\u043e\u043b\u043b\u0430\u0440\u043e\u0432! \u0411\u043b\u0430\u0433\u043e\u0434\u0430\u0440\u044f \u043f\u0440\u0435\u0438\u043c\u0443\u0449\u0435\u0441\u0442\u0432\u0430\u043c \u0432 \u044d\u0444\u0444\u0435\u043a\u0442\u0438\u0432\u043d\u043e\u0441\u0442\u0438 \u0438 \u043f\u043e\u0440\u0442\u0430\u0442\u0438\u0432\u043d\u043e\u0441\u0442\u0438, \u0414\u043e\u043a\u0435\u0440 \u043d\u0430\u0447\u0430\u043b \u043f\u043e\u043b\u0443\u0447\u0430\u0442\u044c \u0432\u0441\u0435 \u0431\u043e\u043b\u044c\u0448\u0435 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0438, \u0438 \u0441\u0435\u0439\u0447\u0430\u0441 \u0441\u0442\u043e\u0438\u0442 \u0432\u043e \u0433\u043b\u0430\u0432\u0435 \u0434\u0432\u0438\u0436\u0435\u043d\u0438\u044f \u043f\u043e&nbsp;<strong>\u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0438\u0437\u0430\u0446\u0438\u0438<\/strong>&nbsp;(containerization). \u041a\u0430\u043a \u0441\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0435 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0438, \u043c\u044b \u0434\u043e\u043b\u0436\u043d\u044b \u043f\u043e\u043d\u044f\u0442\u044c \u044d\u0442\u043e\u0442 \u0442\u0440\u0435\u043d\u0434 \u0438 \u0432\u044b\u044f\u0441\u043d\u0438\u0442\u044c, \u043a\u0430\u043a\u0443\u044e \u043f\u043e\u043b\u044c\u0437\u0443 \u043c\u044b \u043c\u043e\u0436\u0435\u043c \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0438\u0437 \u043d\u0435\u0433\u043e.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">\u0427\u0435\u043c\u0443 \u043c\u0435\u043d\u044f \u043d\u0430\u0443\u0447\u0438\u0442 \u044d\u0442\u043e \u043f\u043e\u0441\u043e\u0431\u0438\u0435?<\/h3>\n\n\n\n<p>\u042d\u0442\u043e \u0435\u0434\u0438\u043d\u043e\u0435 \u0438 \u043f\u043e\u043b\u043d\u043e\u0435 \u043f\u043e\u0441\u043e\u0431\u0438\u0435 \u043f\u043e \u0432\u0441\u0435\u043c \u0430\u0441\u043f\u0435\u043a\u0442\u0430\u043c \u0440\u0430\u0431\u043e\u0442\u044b \u0441 \u0414\u043e\u043a\u0435\u0440\u043e\u043c. \u041a\u0440\u043e\u043c\u0435 \u0440\u0430\u0437\u044a\u044f\u0441\u043d\u0435\u043d\u0438\u044f \u043c\u0438\u0444\u043e\u0432 \u043e \u0414\u043e\u043a\u0435\u0440\u0435 \u0438 \u0435\u0433\u043e \u044d\u043a\u043e\u0441\u0438\u0441\u0442\u0435\u043c\u0435, \u043e\u043d\u043e \u043f\u043e\u0437\u0432\u043e\u043b\u0438\u0442 \u0432\u0430\u043c \u043f\u043e\u043b\u0443\u0447\u0438\u0442 \u043d\u0435\u0431\u043e\u043b\u044c\u0448\u043e\u0439 \u043e\u043f\u044b\u0442 \u043f\u043e \u0441\u0431\u043e\u0440\u043a\u0435 \u0438 \u0434\u0435\u043f\u043b\u043e\u044e \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0445 \u0432\u0435\u0431-\u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439 \u0432 \u043e\u0431\u043b\u0430\u043a\u0435. \u041c\u044b \u0431\u0443\u0434\u0435\u043c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c&nbsp;<a href=\"http:\/\/aws.amazon.com\/\" target=\"_blank\" rel=\"noreferrer noopener\">Amazon Web Services<\/a>&nbsp;\u0434\u043b\u044f \u0434\u0435\u043f\u043b\u043e\u044f \u0441\u0442\u0430\u0442\u0438\u0447\u043d\u044b\u0445 \u0441\u0430\u0439\u0442\u043e\u0432, \u0438 \u0434\u0432\u0430 \u0434\u0438\u043d\u0430\u043c\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u0432\u0435\u0431-\u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u0437\u0430\u0434\u0435\u043f\u043b\u043e\u0438\u043c \u043d\u0430&nbsp;<a href=\"https:\/\/aws.amazon.com\/ec2\/\" target=\"_blank\" rel=\"noreferrer noopener\">EC2<\/a>&nbsp;\u0441 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435\u043c&nbsp;<a href=\"https:\/\/aws.amazon.com\/elasticbeanstalk\/\" target=\"_blank\" rel=\"noreferrer noopener\">Elastic Beanstalk<\/a>&nbsp;\u0438&nbsp;<a href=\"https:\/\/aws.amazon.com\/ecs\/\" target=\"_blank\" rel=\"noreferrer noopener\">Elastic Container Service<\/a>. \u0414\u0430\u0436\u0435 \u0435\u0441\u043b\u0438 \u0432\u044b \u043d\u0438\u043a\u043e\u0433\u0434\u0430 \u043d\u0438\u0447\u0435\u0433\u043e \u043d\u0435 \u0434\u0435\u043f\u043b\u043e\u0438\u043b\u0438, \u044d\u0442\u043e \u043f\u043e\u0441\u043e\u0431\u0438\u0435 \u0434\u0430\u0441\u0442 \u0432\u0430\u043c \u0432\u0441\u0435 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e\u0435.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">\u041a\u0430\u043a \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u044d\u0442\u043e\u0442 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442<\/h2>\n\n\n\n<p>\u042d\u0442\u043e\u0442 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442 \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0440\u0430\u0437\u0434\u0435\u043b\u043e\u0432, \u043a\u0430\u0436\u0434\u044b\u0439 \u0438\u0437 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u043f\u043e\u0441\u0432\u044f\u0449\u0435\u043d \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u043e\u043c\u0443 \u0430\u0441\u043f\u0435\u043a\u0442\u0443 \u0414\u043e\u043a\u0435\u0440\u0430. \u0412 \u043a\u0430\u0436\u0434\u043e\u043c \u0440\u0430\u0437\u0434\u0435\u043b\u0435 \u043c\u044b \u0431\u0443\u0434\u0435\u043c \u0432\u0432\u043e\u0434\u0438\u0442\u044c \u043a\u043e\u043c\u0430\u043d\u0434\u044b \u0438\u043b\u0438 \u043f\u0438\u0441\u0430\u0442\u044c \u043a\u043e\u0434. \u0412\u0435\u0441\u044c \u043a\u043e\u0434 \u0434\u043e\u0441\u0442\u0443\u043f\u0435\u043d \u0432\u00a0<a href=\"http:\/\/github.com\/prakhar1989\/docker-curriculum\" target=\"_blank\" rel=\"noreferrer noopener\">\u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u0438 \u043d\u0430 \u0413\u0438\u0442\u0445\u0430\u0431\u0435<\/a>.<a target=\"_blank\" rel=\"noreferrer noopener\"><\/a><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">\u0412\u0432\u0435\u0434\u0435\u043d\u0438\u0435<\/h2>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p>\u0412\u043d\u0438\u043c\u0430\u043d\u0438\u0435: \u0412 \u044d\u0442\u043e\u043c \u043f\u043e\u0441\u043e\u0431\u0438\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0432\u0435\u0440\u0441\u0438\u044f \u0414\u043e\u043a\u0435\u0440\u0430\u00a0<strong>1.12.0-rc2<\/strong>. \u0415\u0441\u043b\u0438 \u0432\u044b \u0441\u0442\u043e\u043b\u043a\u043d\u0443\u043b\u0438\u0441\u044c \u0441 \u043d\u0435\u0441\u043e\u0432\u043c\u0435\u0441\u0442\u0438\u043c\u043e\u0441\u0442\u044c\u044e, \u043f\u043e\u0436\u0430\u043b\u0443\u0439\u0441\u0442\u0430, \u043e\u0442\u043f\u0440\u0430\u0432\u044c\u0442\u0435\u00a0<a href=\"https:\/\/github.com\/prakhar1989\/docker-curriculum\/issues\" target=\"_blank\" rel=\"noreferrer noopener\">issue<\/a>. \u0421\u043f\u0430\u0441\u0438\u0431\u043e!<a target=\"_blank\" rel=\"noreferrer noopener\"><\/a><\/p>\n<\/blockquote>\n\n\n\n<h3 class=\"wp-block-heading\">\u041f\u0440\u0435-\u0440\u0435\u043a\u0432\u0438\u0437\u0438\u0442\u044b<\/h3>\n\n\n\n<p>\u0412\u0441\u0435, \u0447\u0442\u043e \u043d\u0443\u0436\u043d\u043e \u0434\u043b\u044f \u043f\u0440\u043e\u0445\u043e\u0436\u0434\u0435\u043d\u0438\u044f \u044d\u0442\u043e\u0433\u043e \u043f\u043e\u0441\u043e\u0431\u0438\u044f \u2014 \u044d\u0442\u043e \u0431\u0430\u0437\u043e\u0432\u044b\u0435 \u043d\u0430\u0432\u044b\u043a\u0438 \u0441 \u043a\u043e\u043c\u0430\u043d\u0434\u043d\u043e\u0439 \u0441\u0442\u0440\u043e\u043a\u043e\u0439 \u0438 \u0442\u0435\u043a\u0441\u0442\u043e\u0432\u044b\u043c \u0440\u0435\u0434\u0430\u043a\u0442\u043e\u0440\u043e\u043c. \u041e\u043f\u044b\u0442 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u0432\u0435\u0431-\u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439 \u0431\u0443\u0434\u0435\u0442 \u043f\u043e\u043b\u0435\u0437\u0435\u043d, \u043d\u043e \u043d\u0435 \u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u0435\u043d. \u0412 \u0442\u0435\u0447\u0435\u043d\u0438\u0435 \u0440\u0430\u0431\u043e\u0442\u044b \u043c\u044b \u0441\u0442\u043e\u043b\u043a\u043d\u0435\u043c\u0441\u044f \u0441 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u0438\u043c\u0438 \u043e\u0431\u043b\u0430\u0447\u043d\u044b\u043c\u0438 \u0441\u0435\u0440\u0432\u0438\u0441\u0430\u043c\u0438. \u0412\u0430\u043c \u043f\u043e\u043d\u0430\u0434\u043e\u0431\u0438\u0442\u0441\u044f \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u0430\u043a\u043a\u0430\u0443\u043d\u0442 \u043d\u0430 \u044d\u0442\u0438\u0445 \u0441\u0430\u0439\u0442\u0430\u0445:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"http:\/\/aws.amazon.com\/\" target=\"_blank\" rel=\"noreferrer noopener\">Amazon Web Services<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/hub.docker.com\/\" target=\"_blank\" rel=\"noreferrer noopener\">Docker Hub<\/a><a target=\"_blank\" rel=\"noreferrer noopener\"><\/a><\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">\u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 \u043a\u043e\u043c\u043f\u044c\u044e\u0442\u0435\u0440\u0430<\/h3>\n\n\n\n<p>\u0423\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 \u0438 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 \u0432\u0441\u0435\u0445 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u044b\u0445 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u043e\u0432 \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u0442\u044f\u0436\u0435\u043b\u043e\u0439 \u0437\u0430\u0434\u0430\u0447\u0435\u0439, \u043d\u043e, \u043a \u0441\u0447\u0430\u0441\u0442\u044c\u044e, \u0414\u043e\u043a\u0435\u0440 \u0441\u0442\u0430\u043b \u0434\u043e\u0432\u043e\u043b\u044c\u043d\u043e \u0441\u0442\u0430\u0431\u0438\u043b\u044c\u043d\u044b\u043c, \u0438 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 \u0438 \u0437\u0430\u043f\u0443\u0441\u043a \u0435\u0433\u043e \u043d\u0430 \u043b\u044e\u0431\u043e\u0439 \u041e\u0421 \u0441\u0442\u0430\u043b\u043e \u043e\u0447\u0435\u043d\u044c \u043f\u0440\u043e\u0441\u0442\u043e\u0439 \u0437\u0430\u0434\u0430\u0447\u0435\u0439. \u0418\u0442\u0430\u043a, \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u043c \u0414\u043e\u043a\u0435\u0440.<\/p>\n\n\n\n<h5 class=\"wp-block-heading\">\u0414\u043e\u043a\u0435\u0440<\/h5>\n\n\n\n<p>\u0415\u0449\u0435 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0440\u0435\u043b\u0438\u0437\u043e\u0432 \u043d\u0430\u0437\u0430\u0434 \u0437\u0430\u043f\u0443\u0441\u043a \u0414\u043e\u043a\u0435\u0440\u0430 \u043d\u0430 OS X \u0438 Windows \u0431\u044b\u043b \u0431\u044b\u043b \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u043d\u044b\u043c. \u041d\u043e \u043a\u043e\u043c\u0430\u043d\u0434\u0430 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u043e\u0432 \u043f\u0440\u043e\u0434\u0435\u043b\u0430\u043b\u0430 \u043e\u0433\u0440\u043e\u043c\u043d\u0443\u044e \u0440\u0430\u0431\u043e\u0442\u0443, \u0438 \u0441\u0435\u0433\u043e\u0434\u043d\u044f \u0432\u0435\u0441\u044c \u043f\u0440\u043e\u0446\u0435\u0441\u0441 \u2014 \u043f\u0440\u043e\u0449\u0435 \u043d\u0435\u043a\u0443\u0434\u0430. \u042d\u0442\u043e\u0442 \u0442\u0443\u0442\u043e\u0440\u0438\u0430\u043b&nbsp;<em>getting started<\/em>&nbsp;\u0432\u043a\u043b\u044e\u0447\u0430\u0435\u0442 \u0432 \u0441\u0435\u0431\u044f \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u044b\u0435 \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0438 \u043f\u043e \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0435 \u043d\u0430&nbsp;<a href=\"https:\/\/www.docker.com\/products\/docker#\/mac\" target=\"_blank\" rel=\"noreferrer noopener\">\u041c\u0430\u043a<\/a>,&nbsp;<a href=\"https:\/\/www.docker.com\/products\/docker#\/linux\" target=\"_blank\" rel=\"noreferrer noopener\">Linux<\/a>&nbsp;\u0438&nbsp;<a href=\"https:\/\/www.docker.com\/products\/docker#\/windows\" target=\"_blank\" rel=\"noreferrer noopener\">Windows<\/a>.<\/p>\n\n\n\n<p>\u041f\u0440\u043e\u0432\u0435\u0440\u0438\u043c, \u0432\u0441\u0435 \u043b\u0438 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u043e \u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u043e:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>$ docker run hello-world<br><br>Hello from Docker.<br>This message shows that your installation appears to be working correctly.<br>...<br><\/code><\/pre>\n\n\n\n<h5 class=\"wp-block-heading\">Python<\/h5>\n\n\n\n<p>Python \u043e\u0431\u044b\u0447\u043d\u043e \u043f\u0440\u0435\u0434\u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d \u043d\u0430 OS X \u0438 \u043d\u0430 \u0431\u043e\u043b\u044c\u0448\u0438\u043d\u0441\u0442\u0432\u0435 \u0434\u0438\u0441\u0442\u0440\u0438\u0431\u0443\u0442\u0438\u0432\u043e\u0432 Linux. \u0415\u0441\u043b\u0438 \u0432\u0430\u043c \u043d\u0443\u0436\u043d\u043e \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c \u041f\u0438\u0442\u043e\u043d, \u0442\u043e \u0441\u043a\u0430\u0447\u0430\u0439\u0442\u0435 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0449\u0438\u043a&nbsp;<a href=\"https:\/\/www.python.org\/downloads\/\" target=\"_blank\" rel=\"noreferrer noopener\">\u0437\u0434\u0435\u0441\u044c<\/a>.<\/p>\n\n\n\n<p>\u041f\u0440\u043e\u0432\u0435\u0440\u044c\u0442\u0435 \u0432\u0435\u0440\u0441\u0438\u044e:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>$ python --version<br>Python 2.7.11<br><\/code><\/pre>\n\n\n\n<p>\u041c\u044b \u0431\u0443\u0434\u0435\u043c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c&nbsp;<a href=\"https:\/\/pip.readthedocs.org\/en\/stable\/\" target=\"_blank\" rel=\"noreferrer noopener\">pip<\/a>&nbsp;\u0434\u043b\u044f \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438 \u043f\u0430\u043a\u0435\u0442\u043e\u0432 \u0434\u043b\u044f \u043d\u0430\u0448\u0435\u0433\u043e \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f. \u0415\u0441\u043b\u0438 pip \u043d\u0435 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d, \u0442\u043e&nbsp;<a href=\"http:\/\/pip.readthedocs.org\/en\/stable\/installing\/\" target=\"_blank\" rel=\"noreferrer noopener\">\u0441\u043a\u0430\u0447\u0430\u0439\u0442\u0435<\/a>&nbsp;\u0432\u0435\u0440\u0441\u0438\u044e \u0434\u043b\u044f \u0441\u0432\u043e\u0435\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u044b.<\/p>\n\n\n\n<p>\u0414\u043b\u044f \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0438 \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u0435 \u0442\u0430\u043a\u0443\u044e \u043a\u043e\u043c\u0430\u043d\u0434\u0443:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>$ pip --version<br>pip 7.1.2 from \/Library\/Python\/2.7\/site-packages\/pip-7.1.2-py2.7.egg (python 2.7)<br><\/code><\/pre>\n\n\n\n<h5 class=\"wp-block-heading\">Java (\u043d\u0435 \u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u043e)<\/h5>\n\n\n\n<p>\u0420\u0430\u0437\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u0435\u043c\u043e\u0435 \u043d\u0430\u043c\u0438 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u0431\u0443\u0434\u0435\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c&nbsp;<a href=\"https:\/\/www.elastic.co\/\" target=\"_blank\" rel=\"noreferrer noopener\">Elasticsearch<\/a>&nbsp;\u0434\u043b\u044f \u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f \u0438 \u043f\u043e\u0438\u0441\u043a\u0430. \u0414\u043b\u044f \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u0437\u0430\u043f\u0443\u0441\u043a\u0430 Elasticsearch \u0432\u0430\u043c \u043f\u043e\u043d\u0430\u0434\u043e\u0431\u0438\u0442\u0441\u044f Java. \u0412 \u044d\u0442\u043e\u043c \u043f\u043e\u0441\u043e\u0431\u0438\u0438 \u0432\u0441\u0435 \u0431\u0443\u0434\u0435\u0442 \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0442\u044c\u0441\u044f \u0432\u043d\u0443\u0442\u0440\u0438 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0430, \u0442\u0430\u043a \u0447\u0442\u043e \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u043e \u043d\u0435 \u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u043e \u0438\u043c\u0435\u0442\u044c Java. \u0415\u0441\u043b\u0438 Java \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u0430, \u0442\u043e \u043a\u043e\u043c\u0430\u043d\u0434\u0430&nbsp;<code>java -version<\/code>&nbsp;\u0434\u043e\u043b\u0436\u043d\u0430 \u0441\u0433\u0435\u043d\u0435\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043f\u043e\u0434\u043e\u0431\u043d\u044b\u0439 \u0432\u044b\u0432\u043e\u0434:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>$ java -version<br>java version \"1.8.0_60\"<br>Java(TM) SE Runtime Environment (build 1.8.0_60-b27)<br>Java HotSpot(TM) 64-Bit Server VM (build 25.60-b23, mixed mode)<br><\/code><\/pre>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<p><a target=\"_blank\" rel=\"noreferrer noopener\"><\/a><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">1.0 \u0418\u0433\u0440\u0430\u0435\u043c \u0441 Busybox<\/h2>\n\n\n\n<p>\u0422\u0435\u043f\u0435\u0440\u044c, \u043a\u043e\u0433\u0434\u0430 \u0432\u0441\u0435 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e\u0435 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u043e, \u043f\u043e\u0440\u0430 \u0432\u0437\u044f\u0442\u044c\u0441\u044f \u0437\u0430 \u0440\u0430\u0431\u043e\u0442\u0443. \u0412 \u044d\u0442\u043e\u043c \u0440\u0430\u0437\u0434\u0435\u043b\u0435 \u043c\u044b \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u043c \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440&nbsp;<a href=\"https:\/\/en.wikipedia.org\/wiki\/BusyBox\" target=\"_blank\" rel=\"noreferrer noopener\">Busybox<\/a>&nbsp;\u043d\u0430 \u043d\u0430\u0448\u0435\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u0435 \u0438 \u043f\u043e\u043f\u0440\u043e\u0431\u0443\u0435\u043c \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c&nbsp;<code>docker run<\/code>.<\/p>\n\n\n\n<p>\u0414\u043b\u044f \u043d\u0430\u0447\u0430\u043b\u0430, \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u0435 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0443\u044e \u043a\u043e\u043c\u0430\u043d\u0434\u0443:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>$ docker pull busybox<br><\/code><\/pre>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p>\u0412\u043d\u0438\u043c\u0430\u043d\u0438\u0435: \u0432 \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0438 \u043e\u0442 \u0442\u043e\u0433\u043e, \u043a\u0430\u043a \u0432\u044b \u0443\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u043b\u0438 \u0414\u043e\u043a\u0435\u0440 \u043d\u0430 \u0441\u0432\u043e\u044e \u0441\u0438\u0441\u0442\u0435\u043c\u0443, \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e \u043f\u043e\u044f\u0432\u043b\u0435\u043d\u0438\u0435 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f&nbsp;<code>permission denied<\/code>. \u0415\u0441\u043b\u0438 \u0432\u044b \u043d\u0430 \u041c\u0430\u043a\u0435, \u0442\u043e \u0443\u0434\u043e\u0441\u0442\u043e\u0432\u0435\u0440\u044c\u0442\u0435\u0441\u044c, \u0447\u0442\u043e \u0434\u0432\u0438\u0436\u043e\u043a \u0414\u043e\u043a\u0435\u0440 \u0437\u0430\u043f\u0443\u0449\u0435\u043d. \u0415\u0441\u043b\u0438 \u0432\u044b \u043d\u0430 \u041b\u0438\u043d\u0443\u043a\u0441\u0435, \u0442\u043e \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u0435 \u044d\u0442\u0443 \u043a\u043e\u043c\u0430\u043d\u0434\u0443 \u0441&nbsp;<code>sudo<\/code>. \u0418\u043b\u0438 \u043c\u043e\u0436\u0435\u0442\u0435&nbsp;<a href=\"https:\/\/docs.docker.com\/engine\/installation\/linux\/ubuntulinux\/#create-a-docker-group\" target=\"_blank\" rel=\"noreferrer noopener\">\u0441\u043e\u0437\u0434\u0430\u0442\u044c \u0433\u0440\u0443\u043f\u043f\u0443 docker<\/a>&nbsp;\u0447\u0442\u043e\u0431\u044b \u0438\u0437\u0431\u0430\u0432\u0438\u0442\u044c\u0441\u044f \u043e\u0442 \u044d\u0442\u043e\u0439 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u044b.<\/p>\n<\/blockquote>\n\n\n\n<p>\u041a\u043e\u043c\u0430\u043d\u0434\u0430&nbsp;<code>pull<\/code>&nbsp;\u0441\u043a\u0430\u0447\u0438\u0432\u0430\u0435\u0442 \u043e\u0431\u0440\u0430\u0437 busybox&nbsp;\u0438\u0437&nbsp;<a href=\"https:\/\/hub.docker.com\/explore\/\" target=\"_blank\" rel=\"noreferrer noopener\"><strong>\u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430 \u0414\u043e\u043a\u0435\u0440\u0430<\/strong><\/a>&nbsp;\u0438 \u0441\u043e\u0445\u0440\u0430\u043d\u044f\u0435\u0442 \u0435\u0433\u043e \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u043e. \u041c\u043e\u0436\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043a\u043e\u043c\u0430\u043d\u0434\u0443&nbsp;<code>docker images<\/code>, \u0447\u0442\u043e\u0431\u044b \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u0441\u043f\u0438\u0441\u043e\u043a \u043e\u0431\u0440\u0430\u0437\u043e\u0432 \u0432 \u0441\u0438\u0441\u0442\u0435\u043c\u0435.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>$ docker images\nREPOSITORY              TAG                 IMAGE ID            CREATED             VIRTUAL SIZE\nbusybox                 latest              c51f86c28340        4 weeks ago         1.109 MB\n<a target=\"_blank\" rel=\"noreferrer noopener\"><\/a><\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">1.1 Docker Run<\/h3>\n\n\n\n<p>\u041e\u0442\u043b\u0438\u0447\u043d\u043e! \u0422\u0435\u043f\u0435\u0440\u044c \u0434\u0430\u0432\u0430\u0439\u0442\u0435 \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u043c \u0414\u043e\u043a\u0435\u0440-<strong>\u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440<\/strong>&nbsp;\u0441 \u044d\u0442\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c. \u0414\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c \u0432\u043e\u043b\u0448\u0435\u0431\u043d\u0443\u044e \u043a\u043e\u043c\u0430\u043d\u0434\u0443&nbsp;<code>docker run<\/code>:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>$ docker run busybox<\/code><\/pre>\n\n\n\n<p>\u041f\u043e\u0434\u043e\u0436\u0434\u0438\u0442\u0435, \u043d\u0438\u0447\u0435\u0433\u043e \u043d\u0435 \u043f\u0440\u043e\u0438\u0437\u043e\u0448\u043b\u043e! \u042d\u0442\u043e \u0431\u0430\u0433? \u041d\u0443, \u043d\u0435\u0442. \u041f\u043e\u0434 \u043a\u0430\u043f\u043e\u0442\u043e\u043c \u043f\u0440\u043e\u0438\u0437\u043e\u0448\u043b\u043e \u043c\u043d\u043e\u0433\u043e \u0432\u0441\u0435\u0433\u043e. \u0414\u043e\u043a\u0435\u0440-\u043a\u043b\u0438\u0435\u043d\u0442 \u043d\u0430\u0448\u0435\u043b \u043e\u0431\u0440\u0430\u0437 (\u0432 \u043d\u0430\u0448\u0435\u043c \u0441\u043b\u0443\u0447\u0430\u0435, busybox), \u0437\u0430\u0433\u0440\u0443\u0437\u0438\u043b \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440 \u0438 \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u043b \u043a\u043e\u043c\u0430\u043d\u0434\u0443 \u0432\u043d\u0443\u0442\u0440\u0438 \u044d\u0442\u043e\u0433\u043e \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0430. \u041c\u044b \u0441\u0434\u0435\u043b\u0430\u043b\u0438&nbsp;<code>docker run busybox<\/code>, \u043d\u043e \u043d\u0435 \u0443\u043a\u0430\u0437\u0430\u043b\u0438 \u043d\u0438\u043a\u0430\u043a\u0438\u0445 \u043a\u043e\u043c\u0430\u043d\u0434, \u0442\u0430\u043a \u0447\u0442\u043e \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440 \u0437\u0430\u0433\u0440\u0443\u0437\u0438\u043b\u0441\u044f, \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u043b\u0430\u0441\u044c \u043f\u0443\u0441\u0442\u0430\u044f \u043a\u043e\u043c\u0430\u043d\u0434\u0430 \u0438 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0430 \u0437\u0430\u0432\u0435\u0440\u0448\u0438\u043b\u0430\u0441\u044c. \u041d\u0443, \u0434\u0430, \u043a\u0430\u043a-\u0442\u043e \u043e\u0431\u0438\u0434\u043d\u043e, \u0442\u0430\u043a \u0447\u0442\u043e \u0434\u0430\u0432\u0430\u0439\u0442\u0435 \u0441\u0434\u0435\u043b\u0430\u0435\u043c \u0447\u0442\u043e-\u0442\u043e \u043f\u043e\u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u0435\u0435.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>$ docker run busybox echo \"hello from busybox\"<br>hello from busybox<br><\/code><\/pre>\n\n\n\n<p>\u0423\u0440\u0430, \u043d\u0430\u043a\u043e\u043d\u0435\u0446-\u0442\u043e \u043a\u0430\u043a\u043e\u0439-\u0442\u043e \u0432\u044b\u0432\u043e\u0434. \u0412 \u043d\u0430\u0448\u0435\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u043a\u043b\u0438\u0435\u043d\u0442 \u0414\u043e\u043a\u0435\u0440\u0430 \u043f\u043e\u0441\u043b\u0443\u0448\u043d\u043e \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u043b \u043a\u043e\u043c\u0430\u043d\u0434\u0443&nbsp;<code>echo<\/code>&nbsp;\u0432\u043d\u0443\u0442\u0440\u0438 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0430, \u0430 \u043f\u043e\u0442\u043e\u043c \u0432\u044b\u0448\u0435\u043b \u0438\u0437 \u043d\u0435\u0433\u043e. \u0412\u044b, \u043d\u0430\u0432\u0435\u0440\u043d\u043e\u0435, \u0437\u0430\u043c\u0435\u0442\u0438\u043b\u0438, \u0447\u0442\u043e \u0432\u0441\u0435 \u043f\u0440\u043e\u0438\u0437\u043e\u0448\u043b\u043e \u043e\u0447\u0435\u043d\u044c \u0431\u044b\u0441\u0442\u0440\u043e. \u0410 \u0442\u0435\u043f\u0435\u0440\u044c \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u044c\u0442\u0435 \u0441\u0435\u0431\u0435, \u043a\u0430\u043a \u043d\u0443\u0436\u043d\u043e \u0437\u0430\u0433\u0440\u0443\u0436\u0430\u0442\u044c \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u0443\u044e \u043c\u0430\u0448\u0438\u043d\u0443, \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0442\u044c \u0432 \u043d\u0435\u0439 \u043a\u043e\u043c\u0430\u043d\u0434\u0443 \u0438 \u0432\u044b\u043a\u043b\u044e\u0447\u0430\u0442\u044c \u0435\u0435. \u0422\u0435\u043f\u0435\u0440\u044c \u044f\u0441\u043d\u043e, \u043f\u043e\u0447\u0435\u043c\u0443 \u0433\u043e\u0432\u043e\u0440\u044f\u0442, \u0447\u0442\u043e \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u044b \u0431\u044b\u0441\u0442\u0440\u044b\u0435!<\/p>\n\n\n\n<p>\u0422\u0435\u043f\u0435\u0440\u044c \u0434\u0430\u0432\u0430\u0439\u0442\u0435 \u0432\u0437\u0433\u043b\u044f\u043d\u0435\u043c \u043d\u0430 \u043a\u043e\u043c\u0430\u043d\u0434\u0443&nbsp;<code>docker ps<\/code>. \u041e\u043d\u0430 \u0432\u044b\u0432\u043e\u0434\u0438\u0442 \u043d\u0430 \u044d\u043a\u0440\u0430\u043d \u0441\u043f\u0438\u0441\u043e\u043a \u0432\u0441\u0435\u0445 \u0437\u0430\u043f\u0443\u0449\u0435\u043d\u043d\u044b\u0445 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u043e\u0432.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>$ docker ps\nCONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES<\/code><\/pre>\n\n\n\n<p>\u041a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u043e\u0432 \u0441\u0435\u0439\u0447\u0430\u0441 \u043d\u0435\u0442, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0432\u044b\u0432\u043e\u0434\u0438\u0442\u0441\u044f \u043f\u0443\u0441\u0442\u0430\u044f \u0441\u0442\u0440\u043e\u043a\u0430. \u041d\u0435 \u043e\u0447\u0435\u043d\u044c \u043f\u043e\u043b\u0435\u0437\u043d\u043e, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0434\u0430\u0432\u0430\u0439\u0442\u0435 \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u043c \u0431\u043e\u043b\u0435\u0435 \u043f\u043e\u043b\u0435\u0437\u043d\u044b\u0439 \u0432\u0430\u0440\u0438\u0430\u043d\u0442:&nbsp;<code>docker ps -a<\/code><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>$ docker ps -a<br>CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS                      PORTS               NAMES<br>305297d7a235        busybox             \"uptime\"            11 minutes ago      Exited (0) 11 minutes ago                       distracted_goldstine<br>ff0a5c3750b9        busybox             \"sh\"                12 minutes ago      Exited (0) 12 minutes ago                       elated_ramanujan<br><\/code><\/pre>\n\n\n\n<p>\u0422\u0435\u043f\u0435\u0440\u044c \u0432\u0438\u0434\u0435\u043d \u0441\u043f\u0438\u0441\u043e\u043a \u0432\u0441\u0435\u0445 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u043e\u0432, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043c\u044b \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u043b\u0438. \u0412 \u043a\u043e\u043b\u043e\u043d\u043a\u0435&nbsp;<code>STATUS<\/code>&nbsp;\u043c\u043e\u0436\u043d\u043e \u0437\u0430\u043c\u0435\u0442\u0438\u0442\u044c, \u0447\u0442\u043e \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u044b \u0437\u0430\u0432\u0435\u0440\u0448\u0438\u043b\u0438 \u0441\u0432\u043e\u044e \u0440\u0430\u0431\u043e\u0442\u0443 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043c\u0438\u043d\u0443\u0442 \u043d\u0430\u0437\u0430\u0434.<\/p>\n\n\n\n<p>\u0412\u0430\u043c, \u043d\u0430\u0432\u0435\u0440\u043d\u043e\u0435, \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u043e, \u043a\u0430\u043a \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c \u0431\u043e\u043b\u044c\u0448\u0435 \u043e\u0434\u043d\u043e\u0439 \u043a\u043e\u043c\u0430\u043d\u0434\u044b \u0432 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0435. \u0414\u0430\u0432\u0430\u0439\u0442\u0435 \u043f\u043e\u043f\u0440\u043e\u0431\u0443\u0435\u043c:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>$ docker run -it busybox sh\n\/ # ls\nbin   dev   etc   home  proc  root  sys   tmp   usr   var\n\/ # uptime\n 05:45:21 up  5:58,  0 users,  load average: 0.00, 0.01, 0.04<\/code><\/pre>\n\n\n\n<p>\u041a\u043e\u043c\u0430\u043d\u0434\u0430&nbsp;<code>run<\/code>&nbsp;\u0441 \u0444\u043b\u0430\u0433\u043e\u043c&nbsp;<code>-it<\/code>&nbsp;\u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0430\u0435\u0442 \u0438\u043d\u0442\u0435\u0440\u0430\u043a\u0442\u0438\u0432\u043d\u044b\u0439 tty \u0432 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440. \u0422\u0435\u043f\u0435\u0440\u044c \u043c\u043e\u0436\u043d\u043e \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0442\u044c \u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0443\u0433\u043e\u0434\u043d\u043e \u043c\u043d\u043e\u0433\u043e \u043a\u043e\u043c\u0430\u043d\u0434 \u0432\u043d\u0443\u0442\u0440\u0438. \u041f\u043e\u043f\u0440\u043e\u0431\u0443\u0439\u0442\u0435.<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p><strong>\u041e\u043f\u0430\u0441\u043d\u043e!<\/strong>: \u0415\u0441\u043b\u0438 \u0445\u043e\u0447\u0435\u0442\u0441\u044f \u043e\u0441\u0442\u0440\u044b\u0445 \u043e\u0449\u0443\u0449\u0435\u043d\u0438\u0439, \u0442\u043e \u043c\u043e\u0436\u0435\u0442\u0435 \u043f\u043e\u043f\u0440\u043e\u0431\u043e\u0432\u0430\u0442\u044c&nbsp;<code>rm -rf bin<\/code>&nbsp;\u0432 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0435. \u041d\u043e \u0443\u0434\u043e\u0441\u0442\u043e\u0432\u0435\u0440\u044c\u0442\u0435\u0441\u044c, \u0447\u0442\u043e \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u0442\u0435 \u0435\u0435 \u0432\u043d\u0443\u0442\u0440\u0438 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0430, \u0430&nbsp;<strong>\u043d\u0435 \u0441\u043d\u0430\u0440\u0443\u0436\u0438<\/strong>. \u0415\u0441\u043b\u0438 \u0441\u0434\u0435\u043b\u0430\u0435\u0442\u0435 \u044d\u0442\u043e \u0441\u043d\u0430\u0440\u0443\u0436\u0438, \u043d\u0430 \u0441\u0432\u043e\u0435\u043c \u043a\u043e\u043c\u043f\u044c\u044e\u0442\u0435\u0440\u0435, \u0442\u043e \u0431\u0443\u0434\u0435\u0442 \u043e\u0447\u0435\u043d\u044c \u043f\u043b\u043e\u0445\u043e, \u0438 \u043a\u043e\u043c\u0430\u043d\u0434\u044b \u0432\u0440\u043e\u0434\u0435&nbsp;<code>ls<\/code>,&nbsp;<code>echo<\/code>&nbsp;\u043f\u0435\u0440\u0435\u0441\u0442\u0430\u043d\u0443\u0442 \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c. \u041a\u043e\u0433\u0434\u0430 \u0432\u043d\u0443\u0442\u0440\u0438 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0430 \u0432\u0441\u0435 \u043f\u0435\u0440\u0435\u0441\u0442\u0430\u043d\u0435\u0442 \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c, \u043f\u0440\u043e\u0441\u0442\u043e \u0432\u044b\u0439\u0434\u0435\u0442\u0435 \u0438 \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u0435 \u0435\u0433\u043e \u0437\u0430\u043d\u043e\u0432\u043e \u043a\u043e\u043c\u0430\u043d\u0434\u043e\u0439&nbsp;<code>docker run -it busybox sh<\/code>. \u0414\u043e\u043a\u0435\u0440 \u0441\u043e\u0437\u0434\u0430\u0435\u0442 \u043d\u043e\u0432\u044b\u0439 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440 \u043f\u0440\u0438 \u0437\u0430\u043f\u0443\u0441\u043a\u0435, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0432\u0441\u0435 \u0437\u0430\u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u0441\u043d\u043e\u0432\u0430.<\/p>\n<\/blockquote>\n\n\n\n<p>\u041d\u0430 \u044d\u0442\u043e\u043c \u0437\u0430\u0445\u0432\u0430\u0442\u044b\u0432\u0430\u044e\u0449\u0438\u0439 \u0442\u0443\u0440 \u043f\u043e \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044f\u043c \u043a\u043e\u043c\u0430\u043d\u0434\u044b&nbsp;<code>docker run<\/code>&nbsp;\u0437\u0430\u043a\u043e\u043d\u0447\u0435\u043d. \u0421\u043a\u043e\u0440\u0435\u0435 \u0432\u0441\u0435\u0433\u043e, \u0432\u044b \u0431\u0443\u0434\u0435\u0442\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u044d\u0442\u0443 \u043a\u043e\u043c\u0430\u043d\u0434\u0443 \u0434\u043e\u0432\u043e\u043b\u044c\u043d\u043e \u0447\u0430\u0441\u0442\u043e. \u0422\u0430\u043a \u0447\u0442\u043e \u0432\u0430\u0436\u043d\u043e, \u0447\u0442\u043e\u0431\u044b \u043c\u044b \u043f\u043e\u043d\u044f\u043b\u0438 \u043a\u0430\u043a \u0441 \u043d\u0435\u0439 \u043e\u0431\u0440\u0430\u0449\u0430\u0442\u044c\u0441\u044f. \u0427\u0442\u043e\u0431\u044b \u0443\u0437\u043d\u0430\u0442\u044c \u0431\u043e\u043b\u044c\u0448\u0435 \u043e&nbsp;<code>run<\/code>, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0439\u0442\u0435&nbsp;<code>docker run --help<\/code>, \u0438 \u0443\u0432\u0438\u0434\u0438\u0442\u0435 \u043f\u043e\u043b\u043d\u044b\u0439 \u0441\u043f\u0438\u0441\u043e\u043a \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u043c\u044b\u0445 \u0444\u043b\u0430\u0433\u043e\u0432. \u0421\u043a\u043e\u0440\u043e \u043c\u044b \u0443\u0432\u0438\u0434\u0438\u043c \u0435\u0449\u0435 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0441\u043f\u043e\u0441\u043e\u0431\u043e\u0432 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f&nbsp;<code>docker run<\/code>.<\/p>\n\n\n\n<p>\u041f\u0435\u0440\u0435\u0434 \u0442\u0435\u043c, \u043a\u0430\u043a \u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0430\u0442\u044c, \u0434\u0430\u0432\u0430\u0439\u0442\u0435 \u0432\u043a\u0440\u0430\u0442\u0446\u0435 \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u0443\u0434\u0430\u043b\u0435\u043d\u0438\u0435 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u043e\u0432. \u041c\u044b \u0432\u0438\u0434\u0435\u043b\u0438 \u0432\u044b\u0448\u0435, \u0447\u0442\u043e \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u043a\u043e\u043c\u0430\u043d\u0434\u044b&nbsp;<code>docker ps -a<\/code>&nbsp;\u0432\u0441\u0435 \u0435\u0449\u0435 \u043c\u043e\u0436\u043d\u043e \u0443\u0432\u0438\u0434\u0435\u0442\u044c \u043e\u0441\u0442\u0430\u0442\u043a\u0438 \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043d\u043d\u044b\u0445 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u043e\u0432. \u041d\u0430 \u043f\u0440\u043e\u0442\u044f\u0436\u0435\u043d\u0438\u0438 \u044d\u0442\u043e\u0433\u043e \u043f\u043e\u0441\u043e\u0431\u0438\u044f, \u0432\u044b \u0431\u0443\u0434\u0435\u0442\u0435 \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0442\u044c&nbsp;<code>docker run<\/code>&nbsp;\u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0440\u0430\u0437, \u0438 \u043e\u0441\u0442\u0430\u0432\u0448\u0438\u0435\u0441\u044f, \u0431\u0435\u0437\u0434\u043e\u043c\u043d\u044b\u0435 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u044b \u0431\u0443\u0434\u0443\u0442 \u0441\u044a\u0435\u0434\u0430\u0442\u044c \u0434\u0438\u0441\u043a\u043e\u0432\u043e\u0435 \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u043e. \u0422\u0430\u043a \u0447\u0442\u043e \u044f \u0432\u0437\u044f\u043b \u0437\u0430 \u043f\u0440\u0430\u0432\u0438\u043b\u043e \u0443\u0434\u0430\u043b\u044f\u0442\u044c \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u044b \u043f\u043e\u0441\u043b\u0435 \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043d\u0438\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u0441 \u043d\u0438\u043c\u0438. \u0414\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u043a\u043e\u043c\u0430\u043d\u0434\u0430&nbsp;<code>docker rm<\/code>. \u041f\u0440\u043e\u0441\u0442\u043e \u0441\u043a\u043e\u043f\u0438\u0440\u0443\u0439\u0442\u0435 ID (\u043c\u043e\u0436\u043d\u043e \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e) \u0438\u0437 \u0432\u044b\u0432\u043e\u0434\u0430 \u0432\u044b\u0448\u0435 \u0438 \u043f\u0435\u0440\u0435\u0434\u0430\u0439\u0442\u0435 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430\u043c\u0438 \u0432 \u043a\u043e\u043c\u0430\u043d\u0434\u0443.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>$ docker rm 305297d7a235 ff0a5c3750b9\n305297d7a235\nff0a5c3750b9<\/code><\/pre>\n\n\n\n<p>\u041f\u0440\u0438 \u0443\u0434\u0430\u043b\u0435\u043d\u0438\u0438 \u0438\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440\u044b \u0431\u0443\u0434\u0443\u0442 \u0441\u043d\u043e\u0432\u0430 \u0432\u044b\u0432\u0435\u0434\u0435\u043d\u044b \u043d\u0430 \u044d\u043a\u0440\u0430\u043d. \u0415\u0441\u043b\u0438 \u043d\u0443\u0436\u043d\u043e \u0443\u0434\u0430\u043b\u0438\u0442\u044c \u043c\u043d\u043e\u0433\u043e \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u043e\u0432, \u0442\u043e \u0432\u043c\u0435\u0441\u0442\u043e \u0440\u0443\u0447\u043d\u043e\u0433\u043e \u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0438 \u0432\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u043c\u043e\u0436\u043d\u043e \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u0442\u0430\u043a:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>$ docker rm $(docker ps -a -q -f status=exited)<br><\/code><\/pre>\n\n\n\n<p>\u042d\u0442\u0430 \u043a\u043e\u043c\u0430\u043d\u0434\u0430 \u0443\u0434\u0430\u043b\u044f\u0435\u0442 \u0432\u0441\u0435 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u044b, \u0443 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0441\u0442\u0430\u0442\u0443\u0441&nbsp;<code>exited<\/code>. \u0424\u043b\u0430\u0433&nbsp;<code>-q<\/code>&nbsp;\u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u0442\u043e\u043b\u044c\u043a\u043e \u0447\u0438\u0441\u043b\u0435\u043d\u043d\u044b\u0435 ID, \u0430 \u0444\u043b\u0430\u0433&nbsp;<code>-f<\/code>&nbsp;\u0444\u0438\u043b\u044c\u0442\u0440\u0443\u0435\u0442 \u0432\u044b\u0432\u043e\u0434 \u043d\u0430 \u043e\u0441\u043d\u043e\u0432\u0435 \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u043d\u044b\u0445 \u0443\u0441\u043b\u043e\u0432\u0438\u0439. \u041f\u043e\u0441\u043b\u0435\u0434\u043d\u044f\u044f \u043f\u043e\u043b\u0435\u0437\u043d\u0430\u044f \u0434\u0435\u0442\u0430\u043b\u044c \u2014 \u043a\u043e\u043c\u0430\u043d\u0434\u0435&nbsp;<code>docker run<\/code>&nbsp;\u043c\u043e\u0436\u043d\u043e \u043f\u0435\u0440\u0435\u0434\u0430\u0442\u044c \u0444\u043b\u0430\u0433&nbsp;<code>--rm<\/code>, \u0442\u043e\u0433\u0434\u0430 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440 \u0431\u0443\u0434\u0435\u0442 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u0443\u0434\u0430\u043b\u044f\u0442\u044c\u0441\u044f \u043f\u0440\u0438 \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043d\u0438\u0438. \u042d\u0442\u043e \u043e\u0447\u0435\u043d\u044c \u043f\u043e\u043b\u0435\u0437\u043d\u043e \u0434\u043b\u044f \u0440\u0430\u0437\u043e\u0432\u044b\u0445 \u0437\u0430\u043f\u0443\u0441\u043a\u043e\u0432 \u0438 \u044d\u043a\u0441\u043f\u0435\u0440\u0438\u043c\u0435\u043d\u0442\u043e\u0432 \u0441 \u0414\u043e\u043a\u0435\u0440\u043e\u043c.<\/p>\n\n\n\n<p>\u0422\u0430\u043a\u0436\u0435 \u043c\u043e\u0436\u043d\u043e \u0443\u0434\u0430\u043b\u044f\u0442\u044c \u043d\u0435\u043d\u0443\u0436\u043d\u044b\u0435 \u043e\u0431\u0440\u0430\u0437\u044b \u043a\u043e\u043c\u0430\u043d\u0434\u043e\u0439\u00a0<code>docker rmi<\/code>.<a target=\"_blank\" rel=\"noreferrer noopener\"><\/a><\/p>\n\n\n\n<h3 class=\"wp-block-heading\">1.2 \u0422\u0435\u0440\u043c\u0438\u043d\u043e\u043b\u043e\u0433\u0438\u044f<\/h3>\n\n\n\n<p>\u0412 \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0435\u043c \u0440\u0430\u0437\u0434\u0435\u043b\u0435 \u043c\u044b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043b\u0438 \u043c\u043d\u043e\u0433\u043e \u0441\u043f\u0435\u0446\u0438\u0444\u0438\u0447\u043d\u043e\u0433\u043e \u0434\u043b\u044f \u0414\u043e\u043a\u0435\u0440\u0430 \u0436\u0430\u0440\u0433\u043e\u043d\u0430, \u0438 \u043c\u043d\u043e\u0433\u0438\u0445 \u044d\u0442\u043e \u043c\u043e\u0436\u0435\u0442 \u0437\u0430\u043f\u0443\u0442\u0430\u0442\u044c. \u041f\u0435\u0440\u0435\u0434 \u0442\u0435\u043c, \u043a\u0430\u043a \u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0430\u0442\u044c, \u0434\u0430\u0432\u0430\u0439\u0442\u0435 \u0440\u0430\u0437\u0431\u0435\u0440\u0435\u043c \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0442\u0435\u0440\u043c\u0438\u043d\u044b, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0447\u0430\u0441\u0442\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442\u0441\u044f \u0432 \u044d\u043a\u043e\u0441\u0438\u0441\u0442\u0435\u043c\u0435 \u0414\u043e\u043a\u0435\u0440\u0430.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><em>Images<\/em>\u00a0(\u043e\u0431\u0440\u0430\u0437\u044b)\u00a0&#8212; \u0421\u0445\u0435\u043c\u044b \u043d\u0430\u0448\u0435\u0433\u043e \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u044f\u0432\u043b\u044f\u044e\u0442\u0441\u044f \u043e\u0441\u043d\u043e\u0432\u043e\u0439 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u043e\u0432. \u0412 \u043f\u0440\u0438\u043c\u0435\u0440\u0435 \u0432\u044b\u0448\u0435 \u043c\u044b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043b\u0438 \u043a\u043e\u043c\u0430\u043d\u0434\u0443\u00a0<code>docker pull<\/code>\u00a0\u0447\u0442\u043e\u0431\u044b \u0441\u043a\u0430\u0447\u0430\u0442\u044c \u043e\u0431\u0440\u0430\u0437\u00a0<strong>busybox<\/strong>.<\/li>\n\n\n\n<li><em>Containers<\/em>\u00a0(\u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u044b)\u00a0&#8212; \u0421\u043e\u0437\u0434\u0430\u044e\u0442\u0441\u044f \u043d\u0430 \u043e\u0441\u043d\u043e\u0432\u0435 \u043e\u0431\u0440\u0430\u0437\u0430 \u0438 \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u044e\u0442 \u0441\u0430\u043c\u043e \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435. \u041c\u044b \u0441\u043e\u0437\u0434\u0430\u043b\u0438 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440 \u043a\u043e\u043c\u0430\u043d\u0434\u043e\u0439\u00a0<code>docker run<\/code>, \u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043b\u0438 \u043e\u0431\u0440\u0430\u0437 busybox, \u0441\u043a\u0430\u0447\u0430\u043d\u043d\u044b\u0439 \u0440\u0430\u043d\u0435\u0435. \u0421\u043f\u0438\u0441\u043e\u043a \u0437\u0430\u043f\u0443\u0449\u0435\u043d\u043d\u044b\u0445 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u043e\u0432 \u043c\u043e\u0436\u043d\u043e \u0443\u0432\u0438\u0434\u0435\u0442\u044c \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u043a\u043e\u043c\u0430\u043d\u0434\u044b\u00a0<code>docker ps<\/code>.<\/li>\n\n\n\n<li><em>Docker Daemon<\/em>\u00a0(\u0434\u0435\u043c\u043e\u043d \u0414\u043e\u043a\u0435\u0440\u0430)\u00a0&#8212; \u0424\u043e\u043d\u043e\u0432\u044b\u0439 \u0441\u0435\u0440\u0432\u0438\u0441, \u0437\u0430\u043f\u0443\u0449\u0435\u043d\u043d\u044b\u0439 \u043d\u0430 \u0445\u043e\u0441\u0442-\u043c\u0430\u0448\u0438\u043d\u0435, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043e\u0442\u0432\u0435\u0447\u0430\u0435\u0442 \u0437\u0430 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0435, \u0437\u0430\u043f\u0443\u0441\u043a \u0438 \u0443\u043d\u0438\u0447\u0442\u043e\u0436\u0435\u043d\u0438\u0435 \u0414\u043e\u043a\u0435\u0440-\u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u043e\u0432. \u0414\u0435\u043c\u043e\u043d \u2014 \u044d\u0442\u043e \u043f\u0440\u043e\u0446\u0435\u0441\u0441, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0437\u0430\u043f\u0443\u0449\u0435\u043d \u043d\u0430 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u043e\u043d\u043d\u043e\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u0435, \u0441 \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u0432\u0437\u0430\u0438\u043c\u043e\u0434\u0435\u0439\u0441\u0442\u0432\u0443\u0435\u0442 \u043a\u043b\u0438\u0435\u043d\u0442.<\/li>\n\n\n\n<li><em>Docker Client<\/em>\u00a0(\u043a\u043b\u0438\u0435\u043d\u0442 \u0414\u043e\u043a\u0435\u0440\u0430)\u00a0&#8212; \u0423\u0442\u0438\u043b\u0438\u0442\u0430 \u043a\u043e\u043c\u0430\u043d\u0434\u043d\u043e\u0439 \u0441\u0442\u0440\u043e\u043a\u0438, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044e \u0432\u0437\u0430\u0438\u043c\u043e\u0434\u0435\u0439\u0441\u0442\u0432\u043e\u0432\u0430\u0442\u044c \u0441 \u0434\u0435\u043c\u043e\u043d\u043e\u043c. \u0421\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0442 \u0434\u0440\u0443\u0433\u0438\u0435 \u0444\u043e\u0440\u043c\u044b \u043a\u043b\u0438\u0435\u043d\u0442\u0430, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440,\u00a0<a href=\"https:\/\/kitematic.com\/\" target=\"_blank\" rel=\"noreferrer noopener\">Kitematic<\/a>, \u0441 \u0433\u0440\u0430\u0444\u0438\u0447\u0435\u0441\u043a\u0438\u043c \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u043e\u043c.<\/li>\n\n\n\n<li><em>Docker Hub<\/em>\u00a0&#8212;\u00a0<a href=\"https:\/\/hub.docker.com\/explore\/\" target=\"_blank\" rel=\"noreferrer noopener\">\u0420\u0435\u0433\u0438\u0441\u0442\u0440<\/a>\u00a0\u0414\u043e\u043a\u0435\u0440-\u043e\u0431\u0440\u0430\u0437\u043e\u0432. \u0413\u0440\u0443\u0431\u043e \u0433\u043e\u0432\u043e\u0440\u044f, \u0430\u0440\u0445\u0438\u0432 \u0432\u0441\u0435\u0445 \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u044b\u0445 \u043e\u0431\u0440\u0430\u0437\u043e\u0432. \u0415\u0441\u043b\u0438 \u043d\u0443\u0436\u043d\u043e, \u0442\u043e \u043c\u043e\u0436\u043d\u043e \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0442\u044c \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0439 \u0440\u0435\u0433\u0438\u0441\u0442\u0440 \u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0435\u0433\u043e \u0434\u043b\u044f \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u044f \u043e\u0431\u0440\u0430\u0437\u043e\u0432.<a target=\"_blank\" rel=\"noreferrer noopener\"><\/a><\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">2.0 \u0412\u0435\u0431-\u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u0438 \u0414\u043e\u043a\u0435\u0440<\/h2>\n\n\n\n<p>\u0421\u0443\u043f\u0435\u0440! \u0422\u0435\u043f\u0435\u0440\u044c \u043c\u044b \u043d\u0430\u0443\u0447\u0438\u043b\u0438\u0441\u044c \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0441 \u00a0<code>docker run<\/code>, \u043f\u043e\u0438\u0433\u0440\u0430\u043b\u0438 \u0441 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u0438\u043c\u0438 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0430\u043c\u0438 \u0438 \u0440\u0430\u0437\u043e\u0431\u0440\u0430\u043b\u0438\u0441\u044c \u0432 \u0442\u0435\u0440\u043c\u0438\u043d\u043e\u043b\u043e\u0433\u0438\u0438. \u0412\u043e\u043e\u0440\u0443\u0436\u0435\u043d\u043d\u044b\u0435 \u044d\u0442\u0438\u043c\u0438 \u0437\u043d\u0430\u043d\u0438\u044f\u043c\u0438, \u043c\u044b \u0433\u043e\u0442\u043e\u0432\u044b \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u0438\u0442\u044c \u043a \u0440\u0435\u0430\u043b\u044c\u043d\u044b\u043c \u0448\u0442\u0443\u043a\u0430\u043c: \u0434\u0435\u043f\u043b\u043e\u044e \u0432\u0435\u0431-\u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439 \u0441 \u0414\u043e\u043a\u0435\u0440\u043e\u043c!<a target=\"_blank\" rel=\"noreferrer noopener\"><\/a><\/p>\n\n\n\n<h3 class=\"wp-block-heading\">2.1 \u0421\u0442\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u0441\u0430\u0439\u0442\u044b<\/h3>\n\n\n\n<p>\u0414\u0430\u0432\u0430\u0439\u0442\u0435 \u043d\u0430\u0447\u043d\u0435\u043c \u0441 \u043c\u0430\u043b\u043e\u0433\u043e. \u0412\u043d\u0430\u0447\u0430\u043b\u0435 \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u0441\u0430\u043c\u044b\u0439 \u043f\u0440\u043e\u0441\u0442\u043e\u0439 \u0441\u0442\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u0432\u0435\u0431-\u0441\u0430\u0439\u0442. \u0421\u043a\u0430\u0447\u0430\u0435\u043c \u043e\u0431\u0440\u0430\u0437 \u0438\u0437 Docker Hub, \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u043c \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440 \u0438 \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0438\u043c, \u043d\u0430\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043b\u0435\u0433\u043a\u043e \u0431\u0443\u0434\u0435\u0442 \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c \u0432\u0435\u0431-\u0441\u0435\u0440\u0432\u0435\u0440.<\/p>\n\n\n\n<p>\u041f\u043e\u0435\u0445\u0430\u043b\u0438. \u0414\u043b\u044f \u043e\u0434\u043d\u043e\u0441\u0442\u0440\u0430\u043d\u0438\u0447\u043d\u043e\u0433\u043e&nbsp;<a href=\"http:\/\/github.com\/prakhar1989\/docker-curriculum\" target=\"_blank\" rel=\"noreferrer noopener\">\u0441\u0430\u0439\u0442\u0430<\/a>&nbsp;\u043d\u0430\u043c \u043f\u043e\u043d\u0430\u0434\u043e\u0431\u0438\u0442\u0441\u044f \u043e\u0431\u0440\u0430\u0437, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u044f \u0437\u0430\u0440\u0430\u043d\u0435\u0435 \u0441\u043e\u0437\u0434\u0430\u043b \u0434\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u043f\u043e\u0441\u043e\u0431\u0438\u044f \u0438 \u0440\u0430\u0437\u043c\u0435\u0441\u0442\u0438\u043b \u0432&nbsp;<a href=\"https:\/\/hub.docker.com\/r\/prakhar1989\/static-site\/\" target=\"_blank\" rel=\"noreferrer noopener\">\u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0435<\/a>&nbsp;&#8212;&nbsp;<code>prakhar1989\/static-site<\/code>. \u041c\u043e\u0436\u043d\u043e \u0441\u043a\u0430\u0447\u0430\u0442\u044c \u043e\u0431\u0440\u0430\u0437 \u043d\u0430\u043f\u0440\u044f\u043c\u0443\u044e \u043a\u043e\u043c\u0430\u043d\u0434\u043e\u0439&nbsp;<code>docker run<\/code>.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>$ docker run prakhar1989\/static-site<br><\/code><\/pre>\n\n\n\n<p>\u0422\u0430\u043a \u043a\u0430\u043a \u043e\u0431\u0440\u0430\u0437\u0430 \u043d\u0435 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442 \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u043e, \u043a\u043b\u0438\u0435\u043d\u0442 \u0441\u043d\u0430\u0447\u0430\u043b\u0430 \u0441\u043a\u0430\u0447\u0430\u0435\u0442 \u043e\u0431\u0440\u0430\u0437 \u0438\u0437 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430, \u0430 \u043f\u043e\u0442\u043e\u043c \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442 \u0435\u0433\u043e. \u0415\u0441\u043b\u0438 \u0432\u0441\u0435 \u0431\u0435\u0437 \u043f\u0440\u043e\u0431\u043b\u0435\u043c, \u0442\u043e \u0432\u044b \u0443\u0432\u0438\u0434\u0438\u0442\u0435 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0435&nbsp;<code>Nginx is running...<\/code>&nbsp;\u0432 \u0442\u0435\u0440\u043c\u0438\u043d\u0430\u043b\u0435. \u0422\u0435\u043f\u0435\u0440\u044c \u0441\u0435\u0440\u0432\u0435\u0440 \u0437\u0430\u043f\u0443\u0449\u0435\u043d. \u041a\u0430\u043a \u0443\u0432\u0438\u0434\u0435\u0442\u044c \u0441\u0430\u0439\u0442 \u0432 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0438? \u041d\u0430 \u043a\u0430\u043a\u043e\u043c \u043f\u043e\u0440\u0442\u0443 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u0441\u0435\u0440\u0432\u0435\u0440? \u0418, \u0447\u0442\u043e \u0441\u0430\u043c\u043e\u0435 \u0432\u0430\u0436\u043d\u043e\u0435, \u043a\u0430\u043a \u043d\u0430\u043f\u0440\u044f\u043c\u0443\u044e \u0434\u043e\u0441\u0442\u0443\u0447\u0430\u0442\u044c\u0441\u044f \u0434\u043e \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0430 \u0438\u0437 \u0445\u043e\u0441\u0442-\u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0430?<\/p>\n\n\n\n<p>\u0412 \u043d\u0430\u0448\u0435\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u043a\u043b\u0438\u0435\u043d\u0442 \u043d\u0435 \u043e\u0442\u043a\u0440\u044b\u0432\u0430\u0435\u0442 \u043d\u0438\u043a\u0430\u043a\u0438\u0435 \u043f\u043e\u0440\u0442\u044b, \u0442\u0430\u043a \u0447\u0442\u043e \u043d\u0443\u0436\u043d\u043e \u0431\u0443\u0434\u0435\u0442 \u043f\u0435\u0440\u0435\u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c \u043a\u043e\u043c\u0430\u043d\u0434\u0443 &nbsp;<code>docker run<\/code>&nbsp;\u0447\u0442\u043e\u0431\u044b \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u043f\u043e\u0440\u0442\u044b \u043f\u0443\u0431\u043b\u0438\u0447\u043d\u044b\u043c\u0438. \u0417\u0430\u043e\u0434\u043d\u043e \u0434\u0430\u0432\u0430\u0439\u0442\u0435 \u0441\u0434\u0435\u043b\u0430\u0435\u043c \u0442\u0430\u043a, \u0447\u0442\u043e\u0431\u044b \u0442\u0435\u0440\u043c\u0438\u043d\u0430\u043b \u043d\u0435 \u0431\u044b\u043b \u043f\u0440\u0438\u043a\u0440\u0435\u043f\u043b\u0435\u043d \u043a \u0437\u0430\u043f\u0443\u0449\u0435\u043d\u043d\u043e\u043c\u0443 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0443. \u0412 \u0442\u0430\u043a\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u043c\u043e\u0436\u043d\u043e \u0431\u0443\u0434\u0435\u0442 \u0441\u043f\u043e\u043a\u043e\u0439\u043d\u043e \u0437\u0430\u043a\u0440\u044b\u0442\u044c \u0442\u0435\u0440\u043c\u0438\u043d\u0430\u043b, \u0430 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440 \u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0438\u0442 \u0440\u0430\u0431\u043e\u0442\u0443. \u042d\u0442\u043e \u043d\u0430\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f&nbsp;<strong>detached<\/strong>&nbsp;mode.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>$ docker run -d -P --name static-site prakhar1989\/static-site<br>e61d12292d69556eabe2a44c16cbd54486b2527e2ce4f95438e504afb7b02810<br><\/code><\/pre>\n\n\n\n<p>\u0424\u043b\u0430\u0433&nbsp;<code>-d<\/code>&nbsp;\u043e\u0442\u043a\u0440\u0435\u043f\u0438\u0442 (detach) \u0442\u0435\u0440\u043c\u0438\u043d\u0430\u043b, \u0444\u043b\u0430\u0433&nbsp;<code>-P<\/code>&nbsp;\u0441\u0434\u0435\u043b\u0430\u0435\u0442 \u0432\u0441\u0435 \u043e\u0442\u043a\u0440\u044b\u0442\u044b\u0435 \u043f\u043e\u0440\u0442\u044b \u043f\u0443\u0431\u043b\u0438\u0447\u043d\u044b\u043c\u0438 \u0438 \u0441\u043b\u0443\u0447\u0430\u0439\u043d\u044b\u043c\u0438, \u0438, \u043d\u0430\u043a\u043e\u043d\u0435\u0446, \u0444\u043b\u0430\u0433&nbsp;<code>--name<\/code>&nbsp;\u044d\u0442\u043e \u0438\u043c\u044f, \u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u043c\u044b \u0445\u043e\u0442\u0438\u043c \u0434\u0430\u0442\u044c \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0443. \u0422\u0435\u043f\u0435\u0440\u044c \u043c\u043e\u0436\u043d\u043e \u0443\u0432\u0438\u0434\u0435\u0442\u044c \u043f\u043e\u0440\u0442\u044b \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u043a\u043e\u043c\u0430\u043d\u0434\u044b&nbsp;<code>docker port [CONTAINER]<\/code>.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>$ docker port static-site<br>80\/tcp -&gt; 0.0.0.0:32769<br>443\/tcp -&gt; 0.0.0.0:32768<br><\/code><\/pre>\n\n\n\n<p>\u041e\u0442\u043a\u0440\u043e\u0439\u0442\u0435&nbsp;<a href=\"http:\/\/localhost:32769\/\" target=\"_blank\" rel=\"noreferrer noopener\">http:\/\/localhost:32769<\/a>&nbsp;\u0432 \u0441\u0432\u043e\u0435\u043c \u0431\u0440\u0430\u0443\u0437\u0435\u0440\u0435.<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p>\u0417\u0430\u043c\u0435\u0447\u0430\u043d\u0438\u0435: \u0415\u0441\u043b\u0438 \u0432\u044b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0435 docker-toolbox, \u0442\u043e, \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e, \u043d\u0443\u0436\u043d\u043e \u0431\u0443\u0434\u0435\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c&nbsp;<code>docker-machine ip default<\/code>&nbsp;\u0447\u0442\u043e\u0431\u044b \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c IP-\u0430\u0434\u0440\u0435\u0441.<\/p>\n<\/blockquote>\n\n\n\n<p>\u0422\u0430\u043a\u0436\u0435 \u043c\u043e\u0436\u0435\u0442\u0435 \u043e\u0431\u043e\u0437\u043d\u0430\u0447\u0438\u0442\u044c \u0441\u0432\u043e\u0439 \u043f\u043e\u0440\u0442. \u041a\u043b\u0438\u0435\u043d\u0442 \u0431\u0443\u0434\u0435\u0442 \u043f\u0435\u0440\u0435\u043d\u0430\u043f\u0440\u0430\u0432\u043b\u044f\u0442\u044c \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u044f \u043d\u0430 \u043d\u0435\u0433\u043e.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>$ docker run -p 8888:80 prakhar1989\/static-site<br>Nginx is running...<br><\/code><\/pre>\n\n\n\n<figure class=\"wp-block-image\"><img loading=\"lazy\" decoding=\"async\" width=\"1560\" height=\"1050\" src=\"https:\/\/olvas.dev\/wp-content\/uploads\/2025\/03\/eeb1887e65cd4703bcf2612122072eff-1.png\" alt=\"static\" class=\"wp-image-1385\" srcset=\"https:\/\/olvas.dev\/wp-content\/uploads\/2025\/03\/eeb1887e65cd4703bcf2612122072eff-1.png 1560w, https:\/\/olvas.dev\/wp-content\/uploads\/2025\/03\/eeb1887e65cd4703bcf2612122072eff-1-768x517.png?_mod=1742506694 768w, https:\/\/olvas.dev\/wp-content\/uploads\/2025\/03\/eeb1887e65cd4703bcf2612122072eff-1-1536x1034.png?_mod=1742506701 1536w, https:\/\/olvas.dev\/wp-content\/uploads\/2025\/03\/eeb1887e65cd4703bcf2612122072eff-1-640x431.png?_mod=1742506701 640w, https:\/\/olvas.dev\/wp-content\/uploads\/2025\/03\/eeb1887e65cd4703bcf2612122072eff-1-1024x689.png?_mod=1742506703 1024w, https:\/\/olvas.dev\/wp-content\/uploads\/2025\/03\/eeb1887e65cd4703bcf2612122072eff-1-743x500.png?_mod=1742506704 743w\" sizes=\"auto, (max-width: 1560px) 100vw, 1560px\" \/><\/figure>\n\n\n\n<p>\u0427\u0442\u043e\u0431\u044b \u043e\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440 \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u0435&nbsp;<code>docker stop<\/code>&nbsp;\u0438 \u0443\u043a\u0430\u0436\u0438\u0442\u0435 \u0438\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440 (ID) \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0430.<\/p>\n\n\n\n<p>\u0421\u043e\u0433\u043b\u0430\u0441\u0438\u0442\u0435\u0441\u044c, \u0432\u0441\u0435 \u0431\u044b\u043b\u043e \u043e\u0447\u0435\u043d\u044c \u043f\u0440\u043e\u0441\u0442\u043e. \u0427\u0442\u043e\u0431\u044b \u0437\u0430\u0434\u0435\u043f\u043b\u043e\u0438\u0442\u044c \u044d\u0442\u043e \u043d\u0430 \u0440\u0435\u0430\u043b\u044c\u043d\u044b\u0439 \u0441\u0435\u0440\u0432\u0435\u0440, \u043d\u0443\u0436\u043d\u043e \u043f\u0440\u043e\u0441\u0442\u043e \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c \u0414\u043e\u043a\u0435\u0440 \u0438 \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c \u043a\u043e\u043c\u0430\u043d\u0434\u0443 \u0432\u044b\u0448\u0435. \u0422\u0435\u043f\u0435\u0440\u044c, \u043a\u043e\u0433\u0434\u0430 \u0432\u044b \u0443\u0432\u0438\u0434\u0435\u043b\u0438, \u043a\u0430\u043a \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0442\u044c \u0432\u0435\u0431-\u0441\u0435\u0440\u0432\u0435\u0440 \u0432\u043d\u0443\u0442\u0440\u0438 \u043e\u0431\u0440\u0430\u0437\u0430, \u0432\u0430\u043c, \u043d\u0430\u0432\u0435\u0440\u043d\u043e\u0435, \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u043e \u2014 \u0430 \u043a\u0430\u043a \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u0441\u0432\u043e\u0439 \u0414\u043e\u043a\u0435\u0440-\u043e\u0431\u0440\u0430\u0437? \u041c\u044b \u0431\u0443\u0434\u0435\u043c \u0438\u0437\u0443\u0447\u0430\u0442\u044c \u044d\u0442\u0443 \u0442\u0435\u043c\u0443 \u0432 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u043c \u0440\u0430\u0437\u0434\u0435\u043b\u0435.<a target=\"_blank\" rel=\"noreferrer noopener\"><\/a><\/p>\n\n\n\n<h3 class=\"wp-block-heading\">2.2 \u041e\u0431\u0440\u0430\u0437\u044b<\/h3>\n\n\n\n<p>\u041c\u044b \u043a\u0430\u0441\u0430\u043b\u0438\u0441\u044c \u043e\u0431\u0440\u0430\u0437\u043e\u0432 \u0440\u0430\u043d\u0435\u0435, \u043d\u043e \u0432 \u044d\u0442\u043e\u043c \u0440\u0430\u0437\u0434\u0435\u043b\u0435 \u043c\u044b \u0437\u0430\u0433\u043b\u044f\u043d\u0435\u043c \u0433\u043b\u0443\u0431\u0436\u0435: \u0447\u0442\u043e \u0442\u0430\u043a\u043e\u0435 \u0414\u043e\u043a\u0435\u0440-\u043e\u0431\u0440\u0430\u0437\u044b \u0438 \u043a\u0430\u043a \u0441\u043e\u0437\u0434\u0430\u0432\u0430\u0442\u044c \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0435 \u043e\u0431\u0440\u0430\u0437\u044b. \u041d\u0430\u043a\u043e\u043d\u0435\u0446, \u043c\u044b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0439 \u043e\u0431\u0440\u0430\u0437 \u0447\u0442\u043e\u0431\u044b \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u043e, \u0430 \u043f\u043e\u0442\u043e\u043c \u0437\u0430\u0434\u0435\u043f\u043b\u043e\u0438\u043c \u0435\u0433\u043e \u043d\u0430&nbsp;<a href=\"http:\/\/aws.amazon.com\/\" target=\"_blank\" rel=\"noreferrer noopener\">AWS<\/a>, \u0447\u0442\u043e\u0431\u044b \u043f\u043e\u043a\u0430\u0437\u0430\u0442\u044c \u0434\u0440\u0443\u0437\u044c\u044f\u043c. \u041a\u0440\u0443\u0442\u043e? \u041a\u0440\u0443\u0442\u043e! \u0414\u0430\u0432\u0430\u0439\u0442\u0435 \u043d\u0430\u0447\u043d\u0435\u043c.<\/p>\n\n\n\n<p>\u041e\u0431\u0440\u0430\u0437\u044b \u044d\u0442\u043e \u043e\u0441\u043d\u043e\u0432\u044b \u0434\u043b\u044f \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u043e\u0432. \u0412 \u043f\u0440\u043e\u0448\u043b\u043e\u043c \u043f\u0440\u0438\u043c\u0435\u0440\u0435 \u043c\u044b \u0441\u043a\u0430\u0447\u0430\u043b\u0438 (<strong>pull<\/strong>)&nbsp;\u043e\u0431\u0440\u0430\u0437 \u043f\u043e\u0434 \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435\u043c&nbsp;<em>Busybox<\/em>&nbsp;\u0438\u0437 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430, \u0438 \u043f\u043e\u043f\u0440\u043e\u0441\u0438\u043b\u0438 \u043a\u043b\u0438\u0435\u043d\u0442 \u0414\u043e\u043a\u0435\u0440\u0430 \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440,&nbsp;<strong>\u043e\u0441\u043d\u043e\u0432\u0430\u043d\u043d\u044b\u0439<\/strong>&nbsp;\u043d\u0430 \u044d\u0442\u043e\u043c \u043e\u0431\u0440\u0430\u0437\u0435. \u0427\u0442\u043e\u0431\u044b \u0443\u0432\u0438\u0434\u0435\u0442\u044c \u0441\u043f\u0438\u0441\u043e\u043a \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u044b\u0445 \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u043e \u043e\u0431\u0440\u0430\u0437\u043e\u0432, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0439\u0442\u0435 \u043a\u043e\u043c\u0430\u043d\u0434\u0443&nbsp;<code>docker images<\/code>.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>$ docker images<br>REPOSITORY                      TAG                 IMAGE ID            CREATED             VIRTUAL SIZE<br>prakhar1989\/catnip              latest              c7ffb5626a50        2 hours ago         697.9 MB<br>prakhar1989\/static-site         latest              b270625a1631        21 hours ago        133.9 MB<br>python                          3-onbuild           cf4002b2c383        5 days ago          688.8 MB<br>martin\/docker-cleanup-volumes   latest              b42990daaca2        7 weeks ago         22.14 MB<br>ubuntu                          latest              e9ae3c220b23        7 weeks ago         187.9 MB<br>busybox                         latest              c51f86c28340        9 weeks ago         1.109 MB<br>hello-world                     latest              0a6ba66e537a        11 weeks ago        960 B<br><\/code><\/pre>\n\n\n\n<p>\u042d\u0442\u043e \u0441\u043f\u0438\u0441\u043e\u043a \u043e\u0431\u0440\u0430\u0437\u043e\u0432, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u044f \u0441\u043a\u0430\u0447\u0430\u043b \u0438\u0437 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430, \u0430 \u0442\u0430\u043a\u0436\u0435 \u0442\u0435\u0445, \u0447\u0442\u043e \u044f \u0441\u0434\u0435\u043b\u0430\u043b \u0441\u0430\u043c (\u0441\u043a\u043e\u0440\u043e \u0443\u0432\u0438\u0434\u0438\u043c, \u043a\u0430\u043a \u044d\u0442\u043e \u0434\u0435\u043b\u0430\u0442\u044c).&nbsp;<code>TAG<\/code>&nbsp;\u2014 \u044d\u0442\u043e \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u044b\u0439 \u0441\u043d\u0438\u043c\u043e\u043a \u0438\u043b\u0438 \u0441\u043d\u044d\u043f\u0448\u043e\u0442 (snapshot) \u043e\u0431\u0440\u0430\u0437\u0430, \u0430&nbsp;<code>IMAGE ID<\/code>&nbsp;\u2014 \u044d\u0442\u043e \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0439 \u0443\u043d\u0438\u043a\u0430\u043b\u044c\u043d\u044b\u0439 \u0438\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440 \u043e\u0431\u0440\u0430\u0437\u0430.<\/p>\n\n\n\n<p>\u0414\u043b\u044f \u043f\u0440\u043e\u0441\u0442\u043e\u0442\u044b, \u043c\u043e\u0436\u043d\u043e \u043e\u0442\u043d\u043e\u0441\u0438\u0442\u044c\u0441\u044f \u043a \u043e\u0431\u0440\u0430\u0437\u0443 \u043a\u0430\u043a \u043a git-\u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u044e. \u041e\u0431\u0440\u0430\u0437\u044b \u043c\u043e\u0436\u043d\u043e&nbsp;<a href=\"https:\/\/docs.docker.com\/engine\/reference\/commandline\/commit\/\" target=\"_blank\" rel=\"noreferrer noopener\">\u043a\u043e\u043c\u043c\u0438\u0442\u0438\u0442\u044c<\/a>&nbsp;\u0441 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f\u043c\u0438, \u0438 \u043c\u043e\u0436\u043d\u043e \u0438\u043c\u0435\u0442\u044c \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0432\u0435\u0440\u0441\u0438\u0439. \u0415\u0441\u043b\u0438 \u043d\u0435 \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0442\u044c \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u0443\u044e \u0432\u0435\u0440\u0441\u0438\u044e, \u0442\u043e \u043a\u043b\u0438\u0435\u043d\u0442 \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442&nbsp;<code>latest<\/code>. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u043c\u043e\u0436\u043d\u043e \u0441\u043a\u0430\u0447\u0430\u0442\u044c \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u0443\u044e \u0432\u0435\u0440\u0441\u0438\u044e \u043e\u0431\u0440\u0430\u0437\u0430&nbsp;<code>ubuntu<\/code>:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>$ docker pull ubuntu:12.04<br><\/code><\/pre>\n\n\n\n<p>\u0427\u0442\u043e\u0431\u044b \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u043d\u043e\u0432\u044b\u0439 \u0414\u043e\u043a\u0435\u0440-\u043e\u0431\u0440\u0430\u0437, \u043c\u043e\u0436\u043d\u043e \u0441\u043a\u0430\u0447\u0430\u0442\u044c \u0435\u0433\u043e \u0438\u0437 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430 (\u0442\u0430\u043a\u043e\u0433\u043e, \u043a\u0430\u043a Docker Hub) \u0438\u043b\u0438 \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0439. \u041d\u0430&nbsp;<a href=\"https:\/\/hub.docker.com\/explore\/\" target=\"_blank\" rel=\"noreferrer noopener\">Docker Hub<\/a>&nbsp;\u0435\u0441\u0442\u044c \u0434\u0435\u0441\u044f\u0442\u043a\u0438 \u0442\u044b\u0441\u044f\u0447 \u043e\u0431\u0440\u0430\u0437\u043e\u0432. \u041c\u043e\u0436\u043d\u043e \u0438\u0441\u043a\u0430\u0442\u044c \u043d\u0430\u043f\u0440\u044f\u043c\u0443\u044e \u0438\u0437 \u043a\u043e\u043c\u0430\u043d\u0434\u043d\u043e\u0439 \u0441\u0442\u0440\u043e\u043a\u0438 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e&nbsp;<code>docker search<\/code>.<\/p>\n\n\n\n<p>\u0412\u0430\u0436\u043d\u043e \u043f\u043e\u043d\u0438\u043c\u0430\u0442\u044c \u0440\u0430\u0437\u043d\u0438\u0446\u0443 \u043c\u0435\u0436\u0434\u0443 \u0431\u0430\u0437\u043e\u0432\u044b\u043c\u0438 \u0438 \u0434\u043e\u0447\u0435\u0440\u043d\u0438\u043c\u0438 \u043e\u0431\u0440\u0430\u0437\u0430\u043c\u0438:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Base images<\/strong>\u00a0(\u0431\u0430\u0437\u043e\u0432\u044b\u0435 \u043e\u0431\u0440\u0430\u0437\u044b) \u2014 \u044d\u0442\u043e \u043e\u0431\u0440\u0430\u0437\u044b, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043d\u0435 \u0438\u043c\u0435\u044e\u0442 \u0440\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u0441\u043a\u043e\u0433\u043e \u043e\u0431\u0440\u0430\u0437\u0430. \u041e\u0431\u044b\u0447\u043d\u043e \u044d\u0442\u043e \u043e\u0431\u0440\u0430\u0437\u044b \u0441 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u043e\u043d\u043d\u043e\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u043e\u0439, \u0442\u0430\u043a\u0438\u0435 \u043a\u0430\u043a ubuntu, busybox \u0438\u043b\u0438 debian.<\/li>\n\n\n\n<li><strong>Child images<\/strong>\u00a0(\u0434\u043e\u0447\u0435\u0440\u043d\u0438\u0435 \u043e\u0431\u0440\u0430\u0437\u044b) \u2014 \u044d\u0442\u043e \u043e\u0431\u0440\u0430\u0437\u044b, \u043f\u043e\u0441\u0442\u0440\u043e\u0435\u043d\u043d\u044b\u0435 \u043d\u0430 \u0431\u0430\u0437\u043e\u0432\u044b\u0445 \u043e\u0431\u0440\u0430\u0437\u0430\u0445 \u0438 \u043e\u0431\u043b\u0430\u0434\u0430\u044e\u0449\u0438\u0435 \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0439 \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u043e\u0441\u0442\u044c\u044e.<\/li>\n<\/ul>\n\n\n\n<p>\u0421\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0442 \u043e\u0444\u0438\u0446\u0438\u0430\u043b\u044c\u043d\u044b\u0435 \u0438 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u0441\u043a\u0438\u0435 \u043e\u0431\u0440\u0430\u0437\u044b, \u0438 \u043b\u044e\u0431\u044b\u0435 \u0438\u0437 \u043d\u0438\u0445 \u043c\u043e\u0433\u0443\u0442 \u0431\u044b\u0442\u044c \u0431\u0430\u0437\u043e\u0432\u044b\u043c\u0438 \u0438 \u0434\u043e\u0447\u0435\u0440\u043d\u0438\u043c\u0438.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>\u041e\u0444\u0438\u0446\u0438\u0430\u043b\u044c\u043d\u044b\u0435 \u043e\u0431\u0440\u0430\u0437\u044b<\/strong>\u00a0\u2014 \u044d\u0442\u043e \u043e\u0431\u0440\u0430\u0437\u044b, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043e\u0444\u0438\u0446\u0438\u0430\u043b\u044c\u043d\u043e \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u044e\u0442\u0441\u044f \u043a\u043e\u043c\u0430\u043d\u0434\u043e\u0439 Docker. \u041e\u0431\u044b\u0447\u043d\u043e \u0432 \u0438\u0445 \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0438 \u043e\u0434\u043d\u043e \u0441\u043b\u043e\u0432\u043e. \u0412 \u0441\u043f\u0438\u0441\u043a\u0435 \u0432\u044b\u0448\u0435\u00a0<code>python<\/code>,\u00a0<code>ubuntu<\/code>,\u00a0<code>busybox<\/code>\u00a0\u0438\u00a0<code>hello-world<\/code>\u00a0\u2014 \u0431\u0430\u0437\u043e\u0432\u044b\u0435 \u043e\u0431\u0440\u0430\u0437\u044b.<\/li>\n\n\n\n<li><strong>\u041f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u0441\u043a\u0438\u0435 \u043e\u0431\u0440\u0430\u0437\u044b<\/strong>\u00a0\u2014 \u043e\u0431\u0440\u0430\u0437\u044b, \u0441\u043e\u0437\u0434\u0430\u043d\u043d\u044b\u0435 \u043f\u0440\u043e\u0441\u0442\u044b\u043c\u0438 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f\u043c\u0438 \u0432\u0440\u043e\u0434\u0435 \u043c\u0435\u043d\u044f \u0438 \u0432\u0430\u0441. \u041e\u043d\u0438 \u043f\u043e\u0441\u0442\u0440\u043e\u0435\u043d\u044b \u043d\u0430 \u0431\u0430\u0437\u043e\u0432\u044b\u0445 \u043e\u0431\u0440\u0430\u0437\u0430\u0445. \u041e\u0431\u044b\u0447\u043d\u043e, \u043e\u043d\u0438 \u043d\u0430\u0437\u044b\u0432\u0430\u044e\u0442\u0441\u044f \u043f\u043e \u0444\u043e\u0440\u043c\u0430\u0442\u0443\u00a0<code>user\/image-name<\/code>.<a target=\"_blank\" rel=\"noreferrer noopener\"><\/a><\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">2.3 \u041d\u0430\u0448 \u043f\u0435\u0440\u0432\u044b\u0439 \u043e\u0431\u0440\u0430\u0437<\/h3>\n\n\n\n<p>\u0422\u0435\u043f\u0435\u0440\u044c, \u043a\u043e\u0433\u0434\u0430 \u043c\u044b \u043b\u0443\u0447\u0448\u0435 \u043f\u043e\u043d\u0438\u043c\u0430\u0435\u043c, \u0447\u0442\u043e \u0442\u0430\u043a\u043e\u0435 \u043e\u0431\u0440\u0430\u0437\u044b \u0438 \u043a\u0430\u043a\u0438\u0435 \u043e\u043d\u0438 \u0431\u044b\u0432\u0430\u044e\u0442, \u0441\u0430\u043c\u043e\u0435 \u0432\u0440\u0435\u043c\u044f \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0439 \u043e\u0431\u0440\u0430\u0437. \u0426\u0435\u043b\u044c \u044d\u0442\u043e\u0433\u043e \u0440\u0430\u0437\u0434\u0435\u043b\u0430 \u2014 \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u043e\u0431\u0440\u0430\u0437 \u0441 \u043f\u0440\u043e\u0441\u0442\u044b\u043c \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435\u043c \u043d\u0430&nbsp;<a href=\"http:\/\/flask.pocoo.org\/\" target=\"_blank\" rel=\"noreferrer noopener\">Flask<\/a>. \u0414\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u043f\u043e\u0441\u043e\u0431\u0438\u044f \u044f \u0441\u0434\u0435\u043b\u0430\u043b \u043c\u0430\u043b\u0435\u043d\u044c\u043a\u043e\u0435&nbsp;<a href=\"https:\/\/github.com\/prakhar1989\/docker-curriculum\/tree\/master\/flask-app\" target=\"_blank\" rel=\"noreferrer noopener\">\u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435<\/a>, \u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u0432\u044b\u0432\u043e\u0434\u0438\u0442 \u0441\u043b\u0443\u0447\u0430\u0439\u043d\u0443\u044e \u0433\u0438\u0444\u043a\u0443 \u0441 \u043a\u043e\u0448\u043a\u043e\u0439. \u041d\u0443, \u043f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e, \u043a\u0442\u043e \u043d\u0435 \u043b\u044e\u0431\u0438\u0442 \u043a\u043e\u0448\u0435\u043a? \u0421\u043a\u043b\u043e\u043d\u0438\u0440\u0443\u0439\u0442\u0435 \u044d\u0442\u043e\u0442 \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u0439 \u043a \u0441\u0435\u0431\u0435 \u043d\u0430 \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u0443\u044e \u043c\u0430\u0448\u0438\u043d\u0443.<\/p>\n\n\n\n<p>\u0412\u043d\u0430\u0447\u0430\u043b\u0435 \u0434\u0430\u0432\u0430\u0439\u0442\u0435 \u043f\u0440\u043e\u0432\u0435\u0440\u0438\u043c, \u0447\u0442\u043e \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u043e. \u0412\u043e\u0439\u0434\u0438\u0442\u0435 \u0432 \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u044e&nbsp;<code>flask-app<\/code>&nbsp;\u043a\u043e\u043c\u0430\u043d\u0434\u043e\u0439&nbsp;<code>cd<\/code>&nbsp;\u0438 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u0435 \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0438.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>$ cd flask-app\n$ pip install -r requirements.txt\n$ python app.py\n * Running on http:\/\/0.0.0.0:5000\/ (Press CTRL+C to quit)\n<\/code><\/pre>\n\n\n\n<p>\u0415\u0441\u043b\u0438 \u0432\u0441\u0435 \u0445\u043e\u0440\u043e\u0448\u043e, \u0442\u043e \u0432\u044b \u0443\u0432\u0438\u0434\u0438\u0442\u0435 \u0432\u044b\u0432\u043e\u0434 \u043a\u0430\u043a \u0432 \u043f\u0440\u0438\u043c\u0435\u0440\u0435 \u0432\u044b\u0448\u0435. \u0417\u0430\u0439\u0434\u0438\u0442\u0435 \u043d\u0430&nbsp;<a href=\"http:\/\/localhost:5000\/\" target=\"_blank\" rel=\"noreferrer noopener\">http:\/\/localhost:5000<\/a>&nbsp;\u0447\u0442\u043e\u0431\u044b \u0443\u0432\u0438\u0434\u0435\u0442\u044c \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u0432 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0438.<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p>\u0417\u0430\u043c\u0435\u0447\u0430\u043d\u0438\u0435: \u0415\u0441\u043b\u0438 \u043a\u043e\u043c\u0430\u043d\u0434\u0430&nbsp;<code>pip install<\/code>&nbsp;\u043f\u0430\u0434\u0430\u0435\u0442 \u0441 \u043e\u0448\u0438\u0431\u043a\u0430\u043c\u0438 &#171;permission denied&#187;, \u0442\u043e \u043f\u043e\u043f\u0440\u043e\u0431\u0443\u0439\u0442\u0435 \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c \u0435\u0435 \u0441&nbsp;<code>sudo<\/code>. \u0415\u0441\u043b\u0438 \u043d\u0435 \u0445\u043e\u0442\u0438\u0442\u0435 \u0443\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0442\u044c \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u0441\u043a\u0438\u0435 \u043f\u0430\u043a\u0435\u0442\u044b \u043d\u0430 \u0443\u0440\u043e\u0432\u043d\u0435 \u0441\u0438\u0441\u0442\u0435\u043c\u044b, \u0442\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0439\u0442\u0435 \u043a\u043e\u043c\u0430\u043d\u0434\u0443&nbsp;<code>pip install --user -r requirements.txt<\/code>.<\/p>\n<\/blockquote>\n\n\n\n<p>\u0412\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u043e\u0442\u043b\u0438\u0447\u043d\u043e, \u043f\u0440\u0430\u0432\u0434\u0430? \u0422\u0435\u043f\u0435\u0440\u044c \u043d\u0443\u0436\u043d\u043e \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u043e\u0431\u0440\u0430\u0437 \u0441 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435\u043c. \u041a\u0430\u043a \u0433\u043e\u0432\u043e\u0440\u0438\u043b\u043e\u0441\u044c \u0432\u044b\u0448\u0435, \u0432\u0441\u0435 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u0441\u043a\u0438\u0435 \u043e\u0431\u0440\u0430\u0437\u044b \u043e\u0441\u043d\u043e\u0432\u0430\u043d\u044b \u043d\u0430 \u0431\u0430\u0437\u043e\u0432\u043e\u043c \u043e\u0431\u0440\u0430\u0437\u0435. \u0422\u0430\u043a \u043a\u0430\u043a \u043d\u0430\u0448\u0435 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u043e \u043d\u0430 \u041f\u0438\u0442\u043e\u043d\u0435, \u043d\u0430\u043c \u043d\u0443\u0436\u0435\u043d \u0431\u0430\u0437\u043e\u0432\u044b\u0439 \u043e\u0431\u0440\u0430\u0437&nbsp;<a href=\"https:\/\/hub.docker.com\/_\/python\/\" target=\"_blank\" rel=\"noreferrer noopener\">Python 3<\/a>. \u0412 \u0447\u0430\u0441\u0442\u043d\u043e\u0441\u0442\u0438, \u043d\u0430\u043c \u043d\u0443\u0436\u043d\u0430 \u0432\u0435\u0440\u0441\u0438\u044f&nbsp;<code>python:3-onbuild<\/code>&nbsp;\u0431\u0430\u0437\u043e\u0432\u043e\u0433\u043e \u043e\u0431\u0440\u0430\u0437\u0430 \u0441 \u041f\u0438\u0442\u043e\u043d\u043e\u043c.<\/p>\n\n\n\n<p>\u0427\u0442\u043e \u0437\u0430 \u0432\u0435\u0440\u0441\u0438\u044f&nbsp;<code>onbuild<\/code>, \u0441\u043f\u0440\u043e\u0441\u0438\u0442\u0435 \u0432\u044b?<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p>\u042d\u0442\u0438 \u043e\u0431\u0440\u0430\u0437\u044b \u0432\u043a\u043b\u044e\u0447\u0430\u044e\u0442 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0442\u0440\u0438\u0433\u0433\u0435\u0440\u043e\u0432 ONBUILD, \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u043e\u0431\u044b\u0447\u043d\u043e \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u0447\u0442\u043e\u0431\u044b \u0431\u044b\u0441\u0442\u0440\u043e \u0440\u0430\u0437\u0432\u0435\u0440\u043d\u0443\u0442\u044c \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435. \u041f\u0440\u0438 \u0441\u0431\u043e\u0440\u043a\u0435 \u0431\u0443\u0434\u0435\u0442 \u0441\u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u043d \u0444\u0430\u0439\u043b&nbsp;<code>requirements.txt<\/code>, \u0431\u0443\u0434\u0435\u0442 \u0437\u0430\u043f\u0443\u0449\u0435\u043d&nbsp;<code>pip install<\/code>&nbsp;\u0441 \u044d\u0442\u0438\u043c \u0444\u0430\u0439\u043b\u043e\u043c, \u0430 \u043f\u043e\u0442\u043e\u043c \u0442\u0435\u043a\u0443\u0449\u0430\u044f \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u044f \u0431\u0443\u0434\u0435\u0442 \u0441\u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u043d\u0430 \u0432&nbsp;<code>\/usr\/src\/app<\/code>.<\/p>\n<\/blockquote>\n\n\n\n<p>\u0414\u0440\u0443\u0433\u0438\u043c\u0438 \u0441\u043b\u043e\u0432\u0430\u043c\u0438, \u0432\u0435\u0440\u0441\u0438\u044f\u00a0<code>onbuild<\/code>\u00a0\u0432\u043a\u043b\u044e\u0447\u0430\u0435\u0442 \u0445\u0435\u043b\u043f\u0435\u0440\u044b, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0437\u0438\u0440\u0443\u044e\u0442 \u0441\u043a\u0443\u0447\u043d\u044b\u0435 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u044b \u0437\u0430\u043f\u0443\u0441\u043a\u0430 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f. \u0412\u043c\u0435\u0441\u0442\u043e \u0442\u043e\u0433\u043e, \u0447\u0442\u043e\u0431\u044b \u0432\u0440\u0443\u0447\u043d\u0443\u044e \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0442\u044c \u044d\u0442\u0438 \u0437\u0430\u0434\u0430\u0447\u0438 (\u0438\u043b\u0438 \u043f\u0438\u0441\u0430\u0442\u044c \u0441\u043a\u0440\u0438\u043f\u0442\u044b), \u043e\u0431\u0440\u0430\u0437\u044b \u0434\u0435\u043b\u0430\u044e\u0442 \u0432\u0441\u0435 \u0437\u0430 \u0432\u0430\u0441. \u0422\u0435\u043f\u0435\u0440\u044c \u0443 \u043d\u0430\u0441 \u0435\u0441\u0442\u044c \u0432\u0441\u0435 \u0438\u043d\u0433\u0440\u0435\u0434\u0438\u0435\u043d\u0442\u044b \u0434\u043b\u044f \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u0441\u0432\u043e\u0435\u0433\u043e \u043e\u0431\u0440\u0430\u0437\u0430: \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0449\u0435\u0435 \u0432\u0435\u0431-\u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u0438 \u0431\u0430\u0437\u043e\u0432\u044b\u0439 \u043e\u0431\u0440\u0430\u0437. \u041a\u0430\u043a \u044d\u0442\u043e \u0441\u0434\u0435\u043b\u0430\u0442\u044c? \u041e\u0442\u0432\u0435\u0442: \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c\u00a0<strong>Dockerfile<\/strong>.<a target=\"_blank\" rel=\"noreferrer noopener\"><\/a><\/p>\n\n\n\n<h3 class=\"wp-block-heading\">2.4 Dockerfile<\/h3>\n\n\n\n<p><a href=\"https:\/\/docs.docker.com\/engine\/reference\/builder\/\" target=\"_blank\" rel=\"noreferrer noopener\">Dockerfile<\/a>&nbsp;\u2014 \u044d\u0442\u043e \u043f\u0440\u043e\u0441\u0442\u043e\u0439 \u0442\u0435\u043a\u0441\u0442\u043e\u0432\u044b\u0439 \u0444\u0430\u0439\u043b, \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442\u0441\u044f \u0441\u043f\u0438\u0441\u043e\u043a \u043a\u043e\u043c\u0430\u043d\u0434 \u0414\u043e\u043a\u0435\u0440-\u043a\u043b\u0438\u0435\u043d\u0442\u0430. \u042d\u0442\u043e \u043f\u0440\u043e\u0441\u0442\u043e\u0439 \u0441\u043f\u043e\u0441\u043e\u0431 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043f\u0440\u043e\u0446\u0435\u0441\u0441 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u043e\u0431\u0440\u0430\u0437\u0430. \u0421\u0430\u043c\u043e\u0435 \u043a\u043b\u0430\u0441\u0441\u043d\u043e\u0435, \u0447\u0442\u043e&nbsp;<a href=\"https:\/\/docs.docker.com\/engine\/reference\/builder\/#from\" target=\"_blank\" rel=\"noreferrer noopener\">\u043a\u043e\u043c\u0430\u043d\u0434\u044b<\/a>&nbsp;\u0432 Dockerfile&nbsp;<em>\u043f\u043e\u0447\u0442\u0438<\/em>&nbsp;\u0438\u0434\u0435\u043d\u0442\u0438\u0447\u043d\u044b \u0441\u0432\u043e\u0438\u043c \u0430\u043d\u0430\u043b\u043e\u0433\u0430\u043c \u0432 Linux. \u042d\u0442\u043e \u0437\u043d\u0430\u0447\u0438\u0442, \u0447\u0442\u043e \u0432 \u043f\u0440\u0438\u043d\u0446\u0438\u043f\u0435 \u043d\u0435 \u043d\u0443\u0436\u043d\u043e \u0438\u0437\u0443\u0447\u0430\u0442\u044c \u043d\u0438\u043a\u0430\u043a\u043e\u0439 \u043d\u043e\u0432\u044b\u0439 \u0441\u0438\u043d\u0442\u0430\u043a\u0441\u0438\u0441 \u0447\u0442\u043e\u0431\u044b \u043d\u0430\u0447\u0430\u0442\u044c \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0441 \u0434\u043e\u043a\u0435\u0440\u0444\u0430\u0439\u043b\u0430\u043c\u0438.<\/p>\n\n\n\n<p>\u0412 \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u0438 \u0441 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435\u043c \u0435\u0441\u0442\u044c Dockerfile, \u043d\u043e \u0442\u0430\u043a \u043a\u0430\u043a \u043c\u044b \u0434\u0435\u043b\u0430\u0435\u043c \u0432\u0441\u0435 \u0432\u043f\u0435\u0440\u0432\u044b\u0435, \u043d\u0430\u043c \u043d\u0443\u0436\u043d\u043e \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u0435\u0433\u043e \u0441 \u043d\u0443\u043b\u044f. \u0421\u043e\u0437\u0434\u0430\u0439\u0442\u0435 \u043d\u043e\u0432\u044b\u0439 \u043f\u0443\u0441\u0442\u043e\u0439 \u0444\u0430\u0439\u043b \u0432 \u043b\u044e\u0431\u0438\u043c\u043e\u043c \u0442\u0435\u043a\u0441\u0442\u043e\u0432\u043e\u043c \u0440\u0435\u0434\u0430\u043a\u0442\u043e\u0440\u0435, \u0438 \u0441\u043e\u0445\u0440\u0430\u043d\u0438\u0442\u0435 \u0435\u0433\u043e \u0432&nbsp;<strong>\u0442\u043e\u0439 \u0436\u0435<\/strong>&nbsp;\u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u0438, \u0433\u0434\u0435 \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u0441\u044f flask-\u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435. \u041d\u0430\u0437\u043e\u0432\u0438\u0442\u0435 \u0444\u0430\u0439\u043b&nbsp;<code>Dockerfile<\/code>.<\/p>\n\n\n\n<p>\u0414\u043b\u044f \u043d\u0430\u0447\u0430\u043b\u0430 \u0443\u043a\u0430\u0436\u0435\u043c \u0431\u0430\u0437\u043e\u0432\u044b\u0439 \u043e\u0431\u0440\u0430\u0437. \u0414\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u043d\u0443\u0436\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043a\u043b\u044e\u0447\u0435\u0432\u043e\u0435 \u0441\u043b\u043e\u0432\u043e&nbsp;<code>FROM<\/code>.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>FROM python:3-onbuild<br><\/code><\/pre>\n\n\n\n<p>\u0414\u0430\u043b\u044c\u0448\u0435 \u043e\u0431\u044b\u0447\u043d\u043e \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u044e\u0442 \u043a\u043e\u043c\u0430\u043d\u0434\u044b \u0434\u043b\u044f \u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0444\u0430\u0439\u043b\u043e\u0432 \u0438 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438 \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0435\u0439. \u041d\u043e \u043a \u0441\u0447\u0430\u0441\u0442\u044c\u044e,&nbsp;<code>onbuild<\/code>-\u0432\u0435\u0440\u0441\u0438\u044f \u0431\u0430\u0437\u043e\u0432\u043e\u0433\u043e \u043e\u0431\u0440\u0430\u0437\u0430 \u0431\u0435\u0440\u0435\u0442 \u044d\u0442\u0438 \u0437\u0430\u0434\u0430\u0447\u0438 \u043d\u0430 \u0441\u0435\u0431\u044f. \u0414\u0430\u043b\u044c\u0448\u0435 \u043d\u0430\u043c \u043d\u0443\u0436\u043d\u043e \u0443\u043a\u0430\u0437\u0430\u0442\u044c \u043f\u043e\u0440\u0442, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0441\u043b\u0435\u0434\u0443\u0435\u0442 \u043e\u0442\u043a\u0440\u044b\u0442\u044c. \u041d\u0430\u0448\u0435 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u043d\u0430 \u043f\u043e\u0440\u0442\u0443 5000, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0443\u043a\u0430\u0436\u0435\u043c \u0435\u0433\u043e:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>EXPOSE 5000<\/code><\/pre>\n\n\n\n<p>\u041f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0439 \u0448\u0430\u0433 \u2014 \u0443\u043a\u0430\u0437\u0430\u0442\u044c \u043a\u043e\u043c\u0430\u043d\u0434\u0443 \u0434\u043b\u044f \u0437\u0430\u043f\u0443\u0441\u043a\u0430 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f. \u042d\u0442\u043e \u043f\u0440\u043e\u0441\u0442\u043e&nbsp;<code>python .\/app.py<\/code>. \u0414\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c \u043a\u043e\u043c\u0430\u043d\u0434\u0443&nbsp;<a href=\"https:\/\/docs.docker.com\/engine\/reference\/builder\/#cmd\" target=\"_blank\" rel=\"noreferrer noopener\">CMD<\/a>:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>CMD &#91;\"python\", \".\/app.py\"]<br><\/code><\/pre>\n\n\n\n<p>\u0413\u043b\u0430\u0432\u043d\u043e\u0435 \u043f\u0440\u0435\u0434\u043d\u0430\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435&nbsp;<code>CMD<\/code>&nbsp;\u2014 \u044d\u0442\u043e \u0441\u043e\u043e\u0431\u0449\u0438\u0442\u044c \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0443 \u043a\u0430\u043a\u0438\u0435 \u043a\u043e\u043c\u0430\u043d\u0434\u044b \u043d\u0443\u0436\u043d\u043e \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u0442\u044c \u043f\u0440\u0438 \u0441\u0442\u0430\u0440\u0442\u0435. \u0422\u0435\u043f\u0435\u0440\u044c \u043d\u0430\u0448&nbsp;<code>Dockerfile<\/code>&nbsp;\u0433\u043e\u0442\u043e\u0432. \u0412\u043e\u0442 \u043a\u0430\u043a \u043e\u043d \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code># our base image<br>FROM python:3-onbuild<br><br># specify the port number the container should expose<br>EXPOSE 5000<br><br># run the application<br>CMD &#91;\"python\", \".\/app.py\"]<br><\/code><\/pre>\n\n\n\n<p>\u0422\u0435\u043f\u0435\u0440\u044c \u043c\u043e\u0436\u043d\u043e \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u043e\u0431\u0440\u0430\u0437. \u041a\u043e\u043c\u0430\u043d\u0434\u0430&nbsp;<code>docker build<\/code>&nbsp;\u0437\u0430\u043d\u0438\u043c\u0430\u0435\u0442\u0441\u044f \u0441\u043b\u043e\u0436\u043d\u043e\u0439 \u0437\u0430\u0434\u0430\u0447\u0435\u0439 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u043e\u0431\u0440\u0430\u0437\u0430 \u043d\u0430 \u043e\u0441\u043d\u043e\u0432\u0435&nbsp;<code>Dockerfile<\/code>.<\/p>\n\n\n\n<p>\u041b\u0438\u0441\u0442\u0438\u043d\u0433 \u043d\u0438\u0436\u0435 \u0434\u0435\u043c\u043e\u043d\u0441\u0442\u0440\u0438\u0440\u0443\u0435\u0442 \u043f\u0440\u043e\u0446\u0435\u0441\u0441. \u041f\u0435\u0440\u0435\u0434 \u0442\u0435\u043c, \u043a\u0430\u043a \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u0435 \u043a\u043e\u043c\u0430\u043d\u0434\u0443 \u0441\u0430\u043c\u0438 (\u043d\u0435 \u0437\u0430\u0431\u0443\u0434\u044c\u0442\u0435 \u0442\u043e\u0447\u043a\u0443 \u0432 \u043a\u043e\u043d\u0446\u0435), \u043f\u0440\u043e\u0432\u0435\u0440\u044c\u0442\u0435, \u0447\u0442\u043e\u0431\u044b \u0442\u0430\u043c \u0431\u044b\u043b \u0432\u0430\u0448 username \u0432\u043c\u0435\u0441\u0442\u043e \u043c\u043e\u0435\u0433\u043e. Username \u0434\u043e\u043b\u0436\u0435\u043d \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u043e\u0432\u0430\u0442\u044c \u0442\u043e\u043c\u0443, \u0447\u0442\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043b\u0441\u044f \u043f\u0440\u0438 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430\u0446\u0438\u0438 \u043d\u0430&nbsp;<a href=\"https:\/\/hub.docker.com\/\" target=\"_blank\" rel=\"noreferrer noopener\">Docker hub<\/a>. \u0415\u0441\u043b\u0438 \u0432\u044b \u0435\u0449\u0435 \u043d\u0435 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0438\u0440\u043e\u0432\u0430\u043b\u0438\u0441\u044c, \u0442\u043e \u0441\u0434\u0435\u043b\u0430\u0439\u0442\u0435 \u044d\u0442\u043e \u0434\u043e \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u043a\u043e\u043c\u0430\u043d\u0434\u044b. \u041a\u043e\u043c\u0430\u043d\u0434\u0430&nbsp;<code>docker build<\/code>&nbsp;\u0434\u043e\u0432\u043e\u043b\u044c\u043d\u043e \u043f\u0440\u043e\u0441\u0442\u0430: \u043e\u043d\u0430 \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u0435\u0442 \u043e\u043f\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u044b\u0439 \u0442\u0435\u0433 \u0441 \u0444\u043b\u0430\u0433\u043e\u043c&nbsp;<code>-t<\/code>&nbsp;\u0438 \u043f\u0443\u0442\u044c \u0434\u043e \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u0438, \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u043b\u0435\u0436\u0438\u0442&nbsp;<code>Dockerfile<\/code>.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>$ docker build -t prakhar1989\/catnip .<br>Sending build context to Docker daemon 8.704 kB<br>Step 1 : FROM python:3-onbuild<br># Executing 3 build triggers...<br>Step 1 : COPY requirements.txt \/usr\/src\/app\/<br> ---&gt; Using cache<br>Step 1 : RUN pip install --no-cache-dir -r requirements.txt<br> ---&gt; Using cache<br>Step 1 : COPY . \/usr\/src\/app<br> ---&gt; 1d61f639ef9e<br>Removing intermediate container 4de6ddf5528c<br>Step 2 : EXPOSE 5000<br> ---&gt; Running <strong>in<\/strong> 12cfcf6d67ee<br> ---&gt; f423c2f179d1<br>Removing intermediate container 12cfcf6d67ee<br>Step 3 : CMD python .\/app.py<br> ---&gt; Running <strong>in<\/strong> f01401a5ace9<br> ---&gt; 13e87ed1fbc2<br>Removing intermediate container f01401a5ace9<br>Successfully built 13e87ed1fbc2<br><\/code><\/pre>\n\n\n\n<p>\u0415\u0441\u043b\u0438 \u0443 \u0432\u0430\u0441 \u043d\u0435\u0442 \u043e\u0431\u0440\u0430\u0437\u0430&nbsp;<code>python:3-onbuild<\/code>, \u0442\u043e \u043a\u043b\u0438\u0435\u043d\u0442 \u0441\u043d\u0430\u0447\u0430\u043b\u0430 \u0441\u043a\u0430\u0447\u0430\u0435\u0442 \u0435\u0433\u043e, \u0430 \u043f\u043e\u0442\u043e\u043c \u0432\u043e\u0437\u044c\u043c\u0435\u0442\u0441\u044f \u0437\u0430 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u0432\u0430\u0448\u0435\u0433\u043e \u043e\u0431\u0440\u0430\u0437\u0430. \u0422\u0430\u043a \u0447\u0442\u043e, \u0432\u044b\u0432\u043e\u0434 \u043d\u0430 \u044d\u043a\u0440\u0430\u043d \u043c\u043e\u0436\u0435\u0442 \u043e\u0442\u043b\u0438\u0447\u0430\u0442\u044c\u0441\u044f \u043e\u0442 \u043c\u043e\u0435\u0433\u043e. \u041f\u043e\u0441\u043c\u043e\u0442\u0440\u0438\u0442\u0435 \u0432\u043d\u0438\u043c\u0430\u0442\u0435\u043b\u044c\u043d\u043e, \u0438 \u043d\u0430\u0439\u0434\u0435\u0442\u0435 \u0442\u0440\u0438\u0433\u0433\u0435\u0440\u044b onbuild. \u0415\u0441\u043b\u0438 \u0432\u0441\u0435 \u043f\u0440\u043e\u0448\u043b\u043e \u0445\u043e\u0440\u043e\u0448\u043e, \u0442\u043e \u043e\u0431\u0440\u0430\u0437 \u0433\u043e\u0442\u043e\u0432! \u0417\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u0435&nbsp;<code>docker images<\/code>&nbsp;\u0438 \u0443\u0432\u0438\u0434\u0438\u0442\u0435 \u0441\u0432\u043e\u0439 \u043e\u0431\u0440\u0430\u0437 \u0432 \u0441\u043f\u0438\u0441\u043a\u0435.<\/p>\n\n\n\n<p>\u041f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0439 \u0448\u0430\u0433 \u2014 \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c \u043e\u0431\u0440\u0430\u0437 \u0438 \u043f\u0440\u043e\u0432\u0435\u0440\u0438\u0442\u044c \u0435\u0433\u043e \u0440\u0430\u0431\u043e\u0442\u043e\u0441\u043f\u043e\u0441\u043e\u0431\u043d\u043e\u0441\u0442\u044c (\u0437\u0430\u043c\u0435\u043d\u0438\u0442\u0435 username \u043d\u0430 \u0441\u0432\u043e\u0439):<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>$ docker run -p 8888:5000 prakhar1989\/catnip\n * Running on http:\/\/0.0.0.0:5000\/ (Press CTRL+C to quit)<\/code><\/pre>\n\n\n\n<p>\u0417\u0430\u0439\u0434\u0438\u0442\u0435 \u043d\u0430 \u0443\u043a\u0430\u0437\u0430\u043d\u043d\u044b\u0439 URL \u0438 \u0443\u0432\u0438\u0434\u0438\u0442\u0435 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u0432 \u0440\u0430\u0431\u043e\u0442\u0435.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img loading=\"lazy\" decoding=\"async\" width=\"1560\" height=\"1147\" src=\"https:\/\/olvas.dev\/wp-content\/uploads\/2025\/03\/daa076b707304b0ca36f389951a7fffb-1.png\" alt=\"static\" class=\"wp-image-1392\" srcset=\"https:\/\/olvas.dev\/wp-content\/uploads\/2025\/03\/daa076b707304b0ca36f389951a7fffb-1.png 1560w, https:\/\/olvas.dev\/wp-content\/uploads\/2025\/03\/daa076b707304b0ca36f389951a7fffb-1-768x565.png?_mod=1742506696 768w, https:\/\/olvas.dev\/wp-content\/uploads\/2025\/03\/daa076b707304b0ca36f389951a7fffb-1-1536x1129.png?_mod=1742506699 1536w, https:\/\/olvas.dev\/wp-content\/uploads\/2025\/03\/daa076b707304b0ca36f389951a7fffb-1-640x471.png?_mod=1742506699 640w, https:\/\/olvas.dev\/wp-content\/uploads\/2025\/03\/daa076b707304b0ca36f389951a7fffb-1-1024x753.png?_mod=1742506700 1024w, https:\/\/olvas.dev\/wp-content\/uploads\/2025\/03\/daa076b707304b0ca36f389951a7fffb-1-680x500.png?_mod=1742506701 680w\" sizes=\"auto, (max-width: 1560px) 100vw, 1560px\" \/><\/figure>\n\n\n\n<p>\u041f\u043e\u0437\u0434\u0440\u0430\u0432\u043b\u044f\u044e! \u0412\u044b \u0443\u0441\u043f\u0435\u0448\u043d\u043e \u0441\u043e\u0437\u0434\u0430\u043b\u0438 \u0441\u0432\u043e\u0439 \u043f\u0435\u0440\u0432\u044b\u0439 \u043e\u0431\u0440\u0430\u0437 \u0414\u043e\u043a\u0435\u0440\u0430!<a target=\"_blank\" rel=\"noreferrer noopener\"><\/a><\/p>\n\n\n\n<h3 class=\"wp-block-heading\">2.5 Docker \u043d\u0430 AWS<\/h3>\n\n\n\n<p>\u0427\u0442\u043e \u0445\u043e\u0440\u043e\u0448\u0435\u0433\u043e \u0432 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0438, \u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u043d\u0435\u043b\u044c\u0437\u044f \u043f\u043e\u043a\u0430\u0437\u0430\u0442\u044c \u0434\u0440\u0443\u0437\u044c\u044f\u043c, \u043f\u0440\u0430\u0432\u0434\u0430? \u0422\u0430\u043a \u0447\u0442\u043e \u0432 \u044d\u0442\u043e\u043c \u0440\u0430\u0437\u0434\u0435\u043b\u0435 \u043c\u044b \u043d\u0430\u0443\u0447\u0438\u043c\u0441\u044f \u0434\u0435\u043f\u043b\u043e\u0438\u0442\u044c \u043d\u0430\u0448\u0435 \u043e\u0444\u0438\u0433\u0435\u043d\u043d\u043e\u0435 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u0432 \u043e\u0431\u043b\u0430\u043a\u043e. \u0411\u0443\u0434\u0435\u043c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c AWS&nbsp;<a href=\"https:\/\/aws.amazon.com\/elasticbeanstalk\/\" target=\"_blank\" rel=\"noreferrer noopener\">Elastic Beanstalk<\/a>&nbsp;\u0447\u0442\u043e\u0431\u044b \u0440\u0435\u0448\u0438\u0442\u044c \u044d\u0442\u0443 \u0437\u0430\u0434\u0430\u0447\u0443 \u0437\u0430 \u043f\u0430\u0440\u0443 \u043a\u043b\u0438\u043a\u043e\u0432. \u041c\u044b \u0443\u0432\u0438\u0434\u0438\u043c, \u043a\u0430\u043a \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e Beanstalk \u043b\u0435\u0433\u043a\u043e \u0443\u043f\u0440\u0430\u0432\u043b\u044f\u0442\u044c \u0438 \u043c\u0430\u0441\u0448\u0442\u0430\u0431\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043d\u0430\u0448\u0435 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435.<\/p>\n\n\n\n<h5 class=\"wp-block-heading\">Docker push<\/h5>\n\n\n\n<p>\u041f\u0435\u0440\u0432\u043e\u0435, \u0447\u0442\u043e \u043d\u0443\u0436\u043d\u043e \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u043f\u0435\u0440\u0435\u0434 \u0434\u0435\u043f\u043b\u043e\u0435\u043c \u043d\u0430 AWS \u044d\u0442\u043e \u043e\u043f\u0443\u0431\u043b\u0438\u043a\u043e\u0432\u0430\u0442\u044c \u043d\u0430\u0448 \u043e\u0431\u0440\u0430\u0437 \u0432 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0435, \u0447\u0442\u043e\u0431\u044b \u043c\u043e\u0436\u043d\u043e \u0431\u044b\u043b\u043e \u0441\u043a\u0430\u0447\u0438\u0432\u0430\u0442\u044c \u0435\u0433\u043e \u0438\u0437 AWS. \u0415\u0441\u0442\u044c \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e&nbsp;<a href=\"https:\/\/aws.amazon.com\/ecr\/\" target=\"_blank\" rel=\"noreferrer noopener\">Docker-\u0440\u0435\u0433\u0438\u0441\u0442\u0440\u043e\u0432<\/a>&nbsp;(\u0438\u043b\u0438 \u043c\u043e\u0436\u043d\u043e \u0441\u043e\u0437\u0434\u0430\u0442\u044c&nbsp;<a href=\"https:\/\/docs.docker.com\/registry\/deploying\/\" target=\"_blank\" rel=\"noreferrer noopener\">\u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0439<\/a>). \u0414\u043b\u044f \u043d\u0430\u0447\u0430\u043b\u0430, \u0434\u0430\u0432\u0430\u0439\u0442\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c&nbsp;<a href=\"https:\/\/hub.docker.com\/\" target=\"_blank\" rel=\"noreferrer noopener\">Docker Hub<\/a>. \u041f\u0440\u043e\u0441\u0442\u043e \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u0442\u0435:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>$ docker push prakhar1989\/catnip<br><\/code><\/pre>\n\n\n\n<p>\u0415\u0441\u043b\u0438 \u044d\u0442\u043e \u0432\u0430\u0448\u0430 \u043f\u0435\u0440\u0432\u0430\u044f \u043f\u0443\u0431\u043b\u0438\u043a\u0430\u0446\u0438\u044f, \u0442\u043e \u043a\u043b\u0438\u0435\u043d\u0442 \u043f\u043e\u043f\u0440\u043e\u0441\u0438\u0442 \u0432\u0430\u0441 \u0437\u0430\u043b\u043e\u0433\u0438\u043d\u0438\u0442\u044c\u0441\u044f. \u0412\u0432\u0435\u0434\u0438\u0442\u0435 \u0442\u0435 \u0436\u0435 \u0434\u0430\u043d\u043d\u044b\u0435, \u0447\u0442\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0435 \u0434\u043b\u044f \u0432\u0445\u043e\u0434\u0430 \u0432 Docker Hub.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>$ docker login<br>Username: prakhar1989<br>WARNING: login credentials saved <strong>in<\/strong> \/Users\/prakhar\/.docker\/config.json<br>Login Succeeded<br><\/code><\/pre>\n\n\n\n<p>\u041d\u0435 \u0437\u0430\u0431\u0443\u0434\u044c\u0442\u0435 \u0437\u0430\u043c\u0435\u043d\u0438\u0442\u044c \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 \u043e\u0431\u0440\u0430\u0437\u0430 \u043d\u0430 \u0441\u0432\u043e\u0435. \u041e\u0447\u0435\u043d\u044c \u0432\u0430\u0436\u043d\u043e \u0441\u043e\u0445\u0440\u0430\u043d\u0438\u0442\u044c \u0444\u043e\u0440\u043c\u0430\u0442&nbsp;<code>username\/image_name<\/code>, \u0447\u0442\u043e\u0431\u044b \u043a\u043b\u0438\u0435\u043d\u0442 \u043f\u043e\u043d\u0438\u043c\u0430\u043b, \u043a\u0443\u0434\u0430 \u043f\u0443\u0431\u043b\u0438\u043a\u043e\u0432\u0430\u0442\u044c \u043e\u0431\u0440\u0430\u0437.<\/p>\n\n\n\n<p>\u041f\u043e\u0441\u043b\u0435 \u044d\u0442\u043e\u0433\u043e \u043c\u043e\u0436\u0435\u0442\u0435 \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u043d\u0430 \u0441\u0432\u043e\u0439 \u043e\u0431\u0440\u0430\u0437 \u043d\u0430 Docker Hub. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0432\u043e\u0442&nbsp;<a href=\"https:\/\/hub.docker.com\/r\/prakhar1989\/catnip\/\" target=\"_blank\" rel=\"noreferrer noopener\">\u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0430<\/a>&nbsp;\u043c\u043e\u0435\u0433\u043e \u043e\u0431\u0440\u0430\u0437\u0430.<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p>\u0417\u0430\u043c\u0435\u0447\u0430\u043d\u0438\u0435: \u043e\u0434\u0438\u043d \u0432\u0430\u0436\u043d\u044b\u0439 \u043c\u043e\u043c\u0435\u043d\u0442, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0441\u0442\u043e\u0438\u0442 \u043f\u0440\u043e\u044f\u0441\u043d\u0438\u0442\u044c \u043f\u0435\u0440\u0435\u0434 \u0442\u0435\u043c, \u043a\u0430\u043a \u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0438\u0442\u044c \u2014&nbsp;<strong>\u043d\u0435 \u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u043e<\/strong>&nbsp;\u0445\u0440\u0430\u043d\u0438\u0442\u044c \u043e\u0431\u0440\u0430\u0437 \u0432 \u043f\u0443\u0431\u043b\u0438\u0447\u043d\u043e\u043c \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0435 (\u0438\u043b\u0438 \u0432 \u043b\u044e\u0431\u043e\u043c \u0434\u0440\u0443\u0433\u043e\u043c \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0435 \u0432\u043e\u043e\u0431\u0449\u0435) \u0447\u0442\u043e\u0431\u044b \u0434\u0435\u043f\u043b\u043e\u0438\u0442\u044c \u043d\u0430 AWS. \u0415\u0441\u043b\u0438 \u0432\u044b \u043f\u0438\u0448\u0435\u0442\u0435 \u043a\u043e\u0434 \u0434\u043b\u044f \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0433\u043e \u043c\u043d\u043e\u0433\u043e\u043c\u0438\u043b\u043b\u0438\u043e\u043d\u043d\u043e\u0433\u043e \u0441\u0442\u0430\u0440\u0442\u0430\u043f\u0430-\u0435\u0434\u0438\u043d\u043e\u0440\u043e\u0433\u0430, \u0442\u043e \u043c\u043e\u0436\u043d\u043e \u043f\u0440\u043e\u043f\u0443\u0441\u0442\u0438\u0442\u044c \u044d\u0442\u043e\u0442 \u0448\u0430\u0433. \u041c\u044b \u043f\u0443\u0431\u043b\u0438\u043a\u0443\u0435\u043c \u0441\u0432\u043e\u0439 \u043e\u0431\u0440\u0430\u0437 \u0447\u0442\u043e\u0431\u044b \u0443\u043f\u0440\u043e\u0441\u0442\u0438\u0442\u044c \u0434\u0435\u043f\u043b\u043e\u0439, \u043f\u0440\u043e\u043f\u0443\u0441\u0442\u0438\u0432 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u043e\u043d\u043d\u044b\u0445 \u0448\u0430\u0433\u043e\u0432.<\/p>\n<\/blockquote>\n\n\n\n<p>\u0422\u0435\u043f\u0435\u0440\u044c \u043d\u0430\u0448 \u043e\u0431\u0440\u0430\u0437 \u043e\u043d\u043b\u0430\u0439\u043d, \u0438 \u043b\u044e\u0431\u043e\u0439 \u0434\u043e\u043a\u0435\u0440-\u043a\u043b\u0438\u0435\u043d\u0442 \u043c\u043e\u0436\u0435\u0442 \u043f\u043e\u0438\u0433\u0440\u0430\u0442\u044c\u0441\u044f \u0441 \u043d\u0438\u043c \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u043f\u0440\u043e\u0441\u0442\u043e\u0439 \u043a\u043e\u043c\u0430\u043d\u0434\u044b:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>$ docker run -p 8888:5000 prakhar1989\/catnip<br><\/code><\/pre>\n\n\n\n<p>\u0415\u0441\u043b\u0438 \u0432 \u043f\u0440\u043e\u0448\u043b\u043e\u043c \u0432\u044b \u043c\u0443\u0447\u0430\u043b\u0438\u0441\u044c \u0441 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u043e\u0439 \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u0440\u0430\u0431\u043e\u0447\u0435\u0433\u043e \u043e\u043a\u0440\u0443\u0436\u0435\u043d\u0438\u044f \u0438 \u043f\u043e\u043f\u044b\u0442\u043a\u0430\u043c\u0438 \u043f\u043e\u0434\u0435\u043b\u0438\u0442\u044c\u0441\u044f \u0441\u0432\u043e\u0435\u0439 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0435\u0439 \u0441 \u043a\u043e\u043b\u043b\u0435\u0433\u0430\u043c\u0438, \u0442\u043e \u043f\u043e\u043d\u0438\u043c\u0430\u0435\u0442\u0435, \u043a\u0430\u043a \u043a\u0440\u0443\u0442\u043e \u044d\u0442\u043e \u0437\u0432\u0443\u0447\u0438\u0442. \u0412\u043e\u0442 \u043f\u043e\u0447\u0435\u043c\u0443 \u0414\u043e\u043a\u0435\u0440 \u2014 \u044d\u0442\u043e \u0441\u0438\u043b\u0430!<\/p>\n\n\n\n<h5 class=\"wp-block-heading\">Beanstalk<\/h5>\n\n\n\n<p>AWS Elastic Beanstalk (EB) \u044d\u0442\u043e PaaS (Platform as a Service \u2014 \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u0430 \u043a\u0430\u043a \u0441\u0435\u0440\u0432\u0438\u0441) \u043e\u0442 Amazon Web Services. \u0415\u0441\u043b\u0438 \u0432\u044b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043b\u0438 Heroku, Google App Engine \u0438 \u0442.\u0434., \u0442\u043e \u0432\u0441\u0435 \u0431\u0443\u0434\u0435\u0442 \u043f\u0440\u0438\u0432\u044b\u0447\u043d\u043e. \u041a\u0430\u043a \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a, \u0432\u044b \u0441\u043e\u043e\u0431\u0449\u0430\u0435\u0442\u0435 EB \u043a\u0430\u043a \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0442\u044c \u0432\u0430\u0448\u0435 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435, \u0430 EB \u0437\u0430\u043d\u0438\u043c\u0430\u0435\u0442\u0441\u044f \u0432\u0441\u0435\u043c \u043e\u0441\u0442\u0430\u043b\u044c\u043d\u044b\u043c, \u0432 \u0442\u043e\u043c \u0447\u0438\u0441\u043b\u0435 \u043c\u0430\u0441\u0448\u0442\u0430\u0431\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435\u043c, \u043c\u043e\u043d\u0438\u0442\u043e\u0440\u0438\u043d\u0433\u043e\u043c \u0438 \u0434\u0430\u0436\u0435 \u0430\u043f\u0434\u0435\u0439\u0442\u0430\u043c\u0438. \u0412 \u0430\u043f\u0440\u0435\u043b\u0435 2014 \u0432 EB \u0434\u043e\u0431\u0430\u0432\u0438\u043b\u0438 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0442\u044c \u0414\u043e\u043a\u0435\u0440-\u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u044b, \u0438 \u043c\u044b \u0431\u0443\u0434\u0435\u043c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0438\u043c\u0435\u043d\u043d\u043e \u044d\u0442\u0443 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u0434\u043b\u044f \u0434\u0435\u043f\u043b\u043e\u044f. \u0423 EB \u043e\u0447\u0435\u043d\u044c \u043f\u043e\u043d\u044f\u0442\u043d\u044b\u0439&nbsp;<a href=\"http:\/\/docs.aws.amazon.com\/elasticbeanstalk\/latest\/dg\/eb-cli3.html\" target=\"_blank\" rel=\"noreferrer noopener\">\u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441 \u043a\u043e\u043c\u0430\u043d\u0434\u043d\u043e\u0439 \u0441\u0442\u0440\u043e\u043a\u0438<\/a>, \u043d\u043e \u043e\u043d \u0442\u0440\u0435\u0431\u0443\u0435\u0442 \u043d\u0435\u0431\u043e\u043b\u044c\u0448\u043e\u0439 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0434\u043b\u044f \u043f\u0440\u043e\u0441\u0442\u043e\u0442\u044b \u0434\u0430\u0432\u0430\u0439\u0442\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c \u0432\u0435\u0431-\u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441 \u0434\u043b\u044f \u0437\u0430\u043f\u0443\u0441\u043a\u0430 \u043d\u0430\u0448\u0435\u0433\u043e \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f.<\/p>\n\n\n\n<p>\u0427\u0442\u043e\u0431\u044b \u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0430\u0442\u044c, \u0432\u0430\u043c \u043f\u043e\u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0449\u0438\u0439 \u0430\u043a\u043a\u0430\u0443\u043d\u0442 \u043d\u0430&nbsp;<a href=\"http:\/\/aws.amazon.com\/\" target=\"_blank\" rel=\"noreferrer noopener\">AWS<\/a>. \u0415\u0441\u043b\u0438 \u0443 \u0432\u0430\u0441 \u0435\u0433\u043e \u043d\u0435\u0442, \u0442\u043e \u0441\u043e\u0437\u0434\u0430\u0439\u0442\u0435 \u0435\u0433\u043e. \u0414\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u043f\u043e\u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f \u0432\u0432\u0435\u0441\u0442\u0438 \u0434\u0430\u043d\u043d\u044b\u0435 \u043a\u0440\u0435\u0434\u0438\u0442\u043d\u043e\u0439 \u043a\u0430\u0440\u0442\u044b. \u041d\u043e \u043d\u0435 \u0432\u043e\u043b\u043d\u0443\u0439\u0442\u0435\u0441\u044c, \u044d\u0442\u0430 \u0443\u0441\u043b\u0443\u0433\u0430 \u0431\u0435\u0441\u043f\u043b\u0430\u0442\u043d\u0430, \u0438 \u0432\u0441\u0435, \u0447\u0442\u043e \u0431\u0443\u0434\u0435\u0442 \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442\u044c \u0432 \u0440\u0430\u043c\u043a\u0430\u0445 \u044d\u0442\u043e\u0433\u043e \u043f\u043e\u0441\u043e\u0431\u0438\u044f \u0442\u043e\u0436\u0435 \u0431\u0435\u0441\u043f\u043b\u0430\u0442\u043d\u043e.<\/p>\n\n\n\n<p>\u0414\u0430\u0432\u0430\u0439\u0442\u0435 \u043d\u0430\u0447\u043d\u0435\u043c:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u0412\u043e\u0439\u0434\u0438\u0442\u0435 \u0432 \u0441\u0432\u043e\u044e\u00a0<a href=\"http:\/\/console.aws.amazon.com\/\" target=\"_blank\" rel=\"noreferrer noopener\">\u043a\u043e\u043d\u0441\u043e\u043b\u044c AWS<\/a>.<\/li>\n\n\n\n<li>\u041d\u0430\u0436\u043c\u0438\u0442\u0435 \u043d\u0430 Elastic Beanstalk. \u0421\u0441\u044b\u043b\u043a\u0430 \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u0432 \u0441\u0435\u043a\u0446\u0438\u0438 compute, \u0432 \u043b\u0435\u0432\u043e\u043c \u0432\u0435\u0440\u0445\u043d\u0435\u043c \u0443\u0433\u043b\u0443. \u0418\u043b\u0438 \u043f\u0440\u043e\u0441\u0442\u043e\u00a0<a href=\"https:\/\/console.aws.amazon.com\/elasticbeanstalk\" target=\"_blank\" rel=\"noreferrer noopener\">\u043f\u0435\u0440\u0435\u0439\u0434\u0438\u0442\u0435 \u0441\u044e\u0434\u0430<\/a>.<\/li>\n<\/ul>\n\n\n\n<figure class=\"wp-block-image\"><img loading=\"lazy\" decoding=\"async\" width=\"1214\" height=\"795\" src=\"https:\/\/olvas.dev\/wp-content\/uploads\/2025\/03\/142fc91638bd4a918e9a7c13deaa948f-1.png\" alt=\"static\" class=\"wp-image-1391\" srcset=\"https:\/\/olvas.dev\/wp-content\/uploads\/2025\/03\/142fc91638bd4a918e9a7c13deaa948f-1.png 1214w, https:\/\/olvas.dev\/wp-content\/uploads\/2025\/03\/142fc91638bd4a918e9a7c13deaa948f-1-768x503.png?_mod=1742506692 768w, https:\/\/olvas.dev\/wp-content\/uploads\/2025\/03\/142fc91638bd4a918e9a7c13deaa948f-1-640x419.png?_mod=1742506693 640w, https:\/\/olvas.dev\/wp-content\/uploads\/2025\/03\/142fc91638bd4a918e9a7c13deaa948f-1-1024x671.png?_mod=1742506695 1024w, https:\/\/olvas.dev\/wp-content\/uploads\/2025\/03\/142fc91638bd4a918e9a7c13deaa948f-1-764x500.png?_mod=1742506695 764w\" sizes=\"auto, (max-width: 1214px) 100vw, 1214px\" \/><\/figure>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u041d\u0430\u0436\u043c\u0438\u0442\u0435 \u043d\u0430 &#171;Create New Application&#187; \u0432 \u0432\u0435\u0440\u0445\u043d\u0435\u043c \u043f\u0440\u0430\u0432\u043e\u043c \u0443\u0433\u043b\u0443.<\/li>\n\n\n\n<li>\u0414\u0430\u0439\u0442\u0435 \u0441\u0432\u043e\u0435\u043c\u0443 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044e \u0437\u0430\u043f\u043e\u043c\u0438\u043d\u0430\u044e\u0449\u0435\u0435\u0441\u044f (\u043d\u043e \u0443\u043d\u0438\u043a\u0430\u043b\u044c\u043d\u043e\u0435) \u0438\u043c\u044f \u0438, \u0435\u0441\u043b\u0438 \u0445\u043e\u0442\u0438\u0442\u0435, \u0434\u043e\u0431\u0430\u0432\u044c\u0442\u0435 \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u0435.<\/li>\n\n\n\n<li>\u043d\u0430 \u044d\u043a\u0440\u0430\u043d\u0435\u00a0<strong>New Environment<\/strong>\u00a0\u0432\u044b\u0431\u0435\u0440\u0438\u0442\u0435\u00a0<strong>Web Server Environment<\/strong>.<\/li>\n\n\n\n<li>\u0421\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439 \u044d\u043a\u0440\u0430\u043d \u043f\u043e\u043a\u0430\u0437\u0430\u043d \u043d\u0438\u0436\u0435. \u0412\u044b\u0431\u0435\u0440\u0438\u0442\u0435\u00a0<em>Docker<\/em>\u00a0\u0438\u0437 \u0433\u043e\u0442\u043e\u0432\u044b\u0445 \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u043e\u0432 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438. \u041c\u043e\u0436\u043d\u043e \u043e\u0441\u0442\u0430\u0432\u0438\u0442\u044c\u00a0<em>Environment type<\/em>\u00a0\u043a\u0430\u043a \u0435\u0441\u0442\u044c. \u041d\u0430\u0436\u043c\u0438\u0442\u0435 Next.<\/li>\n<\/ul>\n\n\n\n<figure class=\"wp-block-image\"><img loading=\"lazy\" decoding=\"async\" width=\"1234\" height=\"911\" src=\"https:\/\/olvas.dev\/wp-content\/uploads\/2025\/03\/72795cac408f4a21ae462025bd01293b-1.png\" alt=\"static\" class=\"wp-image-1390\" srcset=\"https:\/\/olvas.dev\/wp-content\/uploads\/2025\/03\/72795cac408f4a21ae462025bd01293b-1.png 1234w, https:\/\/olvas.dev\/wp-content\/uploads\/2025\/03\/72795cac408f4a21ae462025bd01293b-1-768x567.png?_mod=1742506689 768w, https:\/\/olvas.dev\/wp-content\/uploads\/2025\/03\/72795cac408f4a21ae462025bd01293b-1-640x472.png?_mod=1742506690 640w, https:\/\/olvas.dev\/wp-content\/uploads\/2025\/03\/72795cac408f4a21ae462025bd01293b-1-1024x756.png?_mod=1742506691 1024w, https:\/\/olvas.dev\/wp-content\/uploads\/2025\/03\/72795cac408f4a21ae462025bd01293b-1-677x500.png?_mod=1742506692 677w\" sizes=\"auto, (max-width: 1234px) 100vw, 1234px\" \/><\/figure>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u0422\u0443\u0442 \u043c\u044b \u0431\u0443\u0434\u0435\u043c \u0441\u043e\u043e\u0431\u0449\u0430\u0442\u044c \u0441\u0438\u0441\u0442\u0435\u043c\u0435 EB \u043e \u043d\u0430\u0448\u0435\u043c \u043e\u0431\u0440\u0430\u0437\u0435. \u041e\u0442\u043a\u0440\u043e\u0439\u0442\u0435\u00a0<a href=\"https:\/\/github.com\/prakhar1989\/docker-curriculum\/blob\/master\/flask-app\/Dockerrun.aws.json\" target=\"_blank\" rel=\"noreferrer noopener\">\u0444\u0430\u0439\u043b Dockerrun.aws.json<\/a>\u00a0\u0432 \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u0438\u00a0<code>flask-app<\/code>\u00a0\u0438 \u0438\u0437\u043c\u0435\u043d\u0438\u0442\u0435\u00a0<code>Name<\/code>\u00a0\u043e\u0431\u0440\u0430\u0437\u0430, \u0447\u0442\u043e\u0431\u044b \u043e\u043d\u043e \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u043e\u0432\u0430\u043b\u043e \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u044e \u0432\u0430\u0448\u0435\u0433\u043e \u043e\u0431\u0440\u0430\u0437\u0430. \u041d\u0435 \u0432\u043e\u043b\u043d\u0443\u0439\u0442\u0435\u0441\u044c, \u044f \u043e\u043f\u0438\u0448\u0443 \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u043d\u0438\u0435 \u0444\u0430\u0439\u043b\u0430 \u043f\u043e\u043f\u043e\u0437\u0436\u0435. \u041f\u043e\u0442\u043e\u043c \u0432\u044b\u0431\u0435\u0440\u0438\u0442\u0435 \u0432\u0430\u0440\u0438\u0430\u043d\u0442 &#171;upload your own&#187; \u0438 \u0432\u044b\u0431\u0435\u0440\u0438\u0442\u0435 \u0444\u0430\u0439\u043b.<\/li>\n\n\n\n<li>\u0414\u0430\u043b\u0435\u0435, \u0432\u044b\u0431\u0435\u0440\u0438\u0442\u0435 \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 \u043e\u043a\u0440\u0443\u0436\u0435\u043d\u0438\u044f \u0438 URL. \u042d\u0442\u043e\u0442 URL \u043a\u0430\u043a \u0440\u0430\u0437 \u043c\u043e\u0436\u043d\u043e \u0431\u0443\u0434\u0435\u0442 \u0434\u0430\u0432\u0430\u0442\u044c \u0434\u0440\u0443\u0437\u044c\u044f\u043c, \u0442\u0430\u043a \u0447\u0442\u043e \u043f\u043e\u0441\u0442\u0430\u0440\u0430\u0439\u0442\u0435\u0441\u044c \u043f\u0440\u0438\u0434\u0443\u043c\u0430\u0442\u044c \u0447\u0442\u043e-\u043d\u0438\u0431\u0443\u0434\u044c \u043f\u043e\u043f\u0440\u043e\u0449\u0435.<\/li>\n\n\n\n<li>\u041f\u043e\u043a\u0430 \u043d\u0435 \u0431\u0443\u0434\u0435\u043c \u0432\u043d\u043e\u0441\u0438\u0442\u044c \u043d\u0438\u043a\u0430\u043a\u0438\u0445 \u043f\u0440\u0430\u0432\u043e\u043a \u0432 \u0441\u0435\u043a\u0446\u0438\u044e\u00a0<em>Additional Resources<\/em>. \u041d\u0430\u0436\u043c\u0438\u0442\u0435 Next \u0438 \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u0438\u0442\u0435 \u043a\u00a0<em>Configuration Details<\/em>.<\/li>\n\n\n\n<li>\u0412 \u044d\u0442\u043e\u0439 \u0441\u0435\u043a\u0446\u0438\u0438 \u0432\u0430\u043c \u043d\u0443\u0436\u043d\u043e \u0432\u044b\u0431\u0440\u0430\u0442\u044c \u0442\u0438\u043f \u0438\u043d\u0441\u0442\u0430\u043d\u0441\u0430\u00a0<code>t1.micro<\/code>. \u042d\u0442\u043e \u043e\u0447\u0435\u043d\u044c \u0432\u0430\u0436\u043d\u043e, \u043f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e \u044d\u0442\u043e\u00a0<strong>\u0431\u0435\u0441\u043f\u043b\u0430\u0442\u043d\u044b\u0439<\/strong>\u00a0\u0442\u0438\u043f \u043e\u0442 AWS. \u0415\u0441\u043b\u0438 \u0445\u043e\u0442\u0438\u0442\u0435, \u043c\u043e\u0436\u043d\u043e \u0432\u044b\u0431\u0440\u0430\u0442\u044c \u043f\u0430\u0440\u0443 \u043a\u043b\u044e\u0447\u0435\u0439 \u0434\u043b\u044f \u0432\u0445\u043e\u0434\u0430. \u0415\u0441\u043b\u0438 \u0432\u044b \u043d\u0435 \u0437\u043d\u0430\u0435\u0442\u0435, \u0447\u0442\u043e \u044d\u0442\u043e \u0437\u043d\u0430\u0447\u0438\u0442, \u0442\u043e \u043d\u0435 \u0432\u043e\u043b\u043d\u0443\u0439\u0442\u0435\u0441\u044c \u0438 \u043f\u0440\u043e\u0441\u0442\u043e \u043f\u0440\u043e\u043f\u0443\u0441\u0442\u0438\u0442\u0435 \u044d\u0442\u0443 \u0447\u0430\u0441\u0442\u044c. \u0412\u0441\u0435 \u043e\u0441\u0442\u0430\u043b\u044c\u043d\u043e\u0435 \u043c\u043e\u0436\u043d\u043e \u043e\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u0438 \u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0430\u0442\u044c.<\/li>\n\n\n\n<li>\u0422\u0430\u043a\u0436\u0435 \u043d\u0435 \u043d\u0443\u0436\u043d\u043e \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0442\u044c \u043d\u0438\u043a\u0430\u043a\u0438\u0435\u00a0<em>Environment Tags<\/em>\u00a0and\u00a0<em>Permissions<\/em>, \u0442\u0430\u043a \u0447\u0442\u043e \u043f\u0440\u043e\u0441\u0442\u043e \u0436\u043c\u0438\u0442\u0435 Next \u0434\u0432\u0430 \u0440\u0430\u0437\u0430 \u043f\u043e\u0434\u0440\u044f\u0434. \u0412 \u043a\u043e\u043d\u0446\u0435 \u0431\u0443\u0434\u0435\u0442 \u044d\u043a\u0440\u0430\u043d\u00a0<em>Review<\/em>. \u0415\u0441\u043b\u0438 \u0432\u0441\u0435 \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u043d\u043e\u0440\u043c\u0430\u043b\u044c\u043d\u043e, \u0442\u043e \u043d\u0430\u0436\u0438\u043c\u0430\u0439\u0442\u0435 \u043a\u043d\u043e\u043f\u043a\u0443\u00a0<strong>Launch<\/strong>.<\/li>\n\n\n\n<li>\u041d\u0430 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0435\u043c \u044d\u043a\u0440\u0430\u043d\u0435 \u0431\u0443\u0434\u0435\u0442 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0441\u043f\u0438\u043d\u043d\u0435\u0440\u043e\u0432. \u042d\u0442\u043e \u043f\u043e\u0434\u043d\u0438\u043c\u0430\u0435\u0442\u0441\u044f \u0438 \u043d\u0430\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u0432\u0430\u0448\u0435 \u043e\u043a\u0440\u0443\u0436\u0435\u043d\u0438\u0435. \u041e\u0431\u044b\u0447\u043d\u043e, \u043d\u0443\u0436\u043d\u043e \u043e\u043a\u043e\u043b\u043e \u043f\u044f\u0442\u0438 \u043c\u0438\u043d\u0443\u0442 \u0434\u043b\u044f \u043f\u0435\u0440\u0432\u043e\u0439 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438.<\/li>\n<\/ul>\n\n\n\n<p>\u041f\u043e\u043a\u0430 \u0436\u0434\u0435\u043c, \u0434\u0430\u0432\u0430\u0439\u0442\u0435 \u0431\u044b\u0441\u0442\u0440\u0435\u043d\u044c\u043a\u043e \u0432\u0437\u0433\u043b\u044f\u043d\u0435\u043c \u043d\u0430 \u0444\u0430\u0439\u043b&nbsp;<code>Dockerrun.aws.json<\/code>. \u042d\u0442\u043e \u0444\u0430\u0439\u043b \u0434\u043b\u044f AWS, \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f \u043e \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0438 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438 \u0414\u043e\u043a\u0435\u0440\u0430. EB \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u0442 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e \u0438\u0437 \u044d\u0442\u043e\u0433\u043e \u0444\u0430\u0439\u043b\u0430.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>{<br>  \"AWSEBDockerrunVersion\": \"1\",<br>  \"Image\": {<br>    \"Name\": \"prakhar1989\/catnip\",<br>    \"Update\": \"true\"<br>  },<br>  \"Ports\": &#91;<br>    {<br>      \"ContainerPort\": \"5000\"<br>    }<br>  ],<br>  \"Logging\": \"\/var\/log\/nginx\"<br>}<br><\/code><\/pre>\n\n\n\n<p>\u0424\u0430\u0439\u043b \u0434\u043e\u0432\u043e\u043b\u044c\u043d\u043e \u043f\u043e\u043d\u044f\u0442\u043d\u044b\u0439, \u043d\u043e \u0432\u0441\u0435\u0433\u0434\u0430 \u043c\u043e\u0436\u043d\u043e \u043e\u0431\u0440\u0430\u0442\u0438\u0442\u044c\u0441\u044f \u043a&nbsp;<a href=\"http:\/\/docs.aws.amazon.com\/elasticbeanstalk\/latest\/dg\/create_deploy_docker_image.html#create_deploy_docker_image_dockerrun\" target=\"_blank\" rel=\"noreferrer noopener\">\u043e\u0444\u0438\u0446\u0438\u0430\u043b\u044c\u043d\u043e\u0439 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0438<\/a>. \u041c\u044b \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u043c \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 \u043e\u0431\u0440\u0430\u0437\u0430, \u0438 EB \u0431\u0443\u0434\u0435\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0435\u0433\u043e \u0437\u0430\u043e\u0434\u043d\u043e \u0441 \u043f\u043e\u0440\u0442\u043e\u043c.<\/p>\n\n\n\n<p>\u041a \u044d\u0442\u043e\u043c\u0443 \u043c\u043e\u043c\u0435\u043d\u0442\u0443 \u0438\u043d\u0441\u0442\u0430\u043d\u0441 \u0443\u0436\u0435 \u0434\u043e\u043b\u0436\u0435\u043d \u0431\u044b\u0442\u044c \u0433\u043e\u0442\u043e\u0432. \u0417\u0430\u0439\u0434\u0438\u0442\u0435 \u043d\u0430 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0443 EB \u0438 \u0443\u0432\u0438\u0434\u0438\u0442\u0435 \u0437\u0435\u043b\u0435\u043d\u044b\u0439 \u0438\u043d\u0434\u0438\u043a\u0430\u0442\u043e\u0440 \u0443\u0441\u043f\u0435\u0448\u043d\u043e\u0433\u043e \u0437\u0430\u043f\u0443\u0441\u043a\u0430 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img loading=\"lazy\" decoding=\"async\" width=\"1158\" height=\"748\" src=\"https:\/\/olvas.dev\/wp-content\/uploads\/2025\/03\/b56a4ade3c6642c1b12b3ba267d5aa6e-1.png\" alt=\"static\" class=\"wp-image-1389\" srcset=\"https:\/\/olvas.dev\/wp-content\/uploads\/2025\/03\/b56a4ade3c6642c1b12b3ba267d5aa6e-1.png 1158w, https:\/\/olvas.dev\/wp-content\/uploads\/2025\/03\/b56a4ade3c6642c1b12b3ba267d5aa6e-1-768x496.png?_mod=1742506688 768w, https:\/\/olvas.dev\/wp-content\/uploads\/2025\/03\/b56a4ade3c6642c1b12b3ba267d5aa6e-1-640x413.png?_mod=1742506688 640w, https:\/\/olvas.dev\/wp-content\/uploads\/2025\/03\/b56a4ade3c6642c1b12b3ba267d5aa6e-1-1024x661.png?_mod=1742506690 1024w, https:\/\/olvas.dev\/wp-content\/uploads\/2025\/03\/b56a4ade3c6642c1b12b3ba267d5aa6e-1-774x500.png?_mod=1742506691 774w\" sizes=\"auto, (max-width: 1158px) 100vw, 1158px\" \/><\/figure>\n\n\n\n<p>\u0417\u0430\u0439\u0434\u0438\u0442\u0435 \u043d\u0430 \u0443\u043a\u0430\u0437\u0430\u043d\u043d\u044b\u0439 URL \u0432 \u0431\u0440\u0430\u0443\u0437\u0435\u0440\u0435 \u0438 \u0443\u0432\u0438\u0434\u0438\u0442\u0435 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u0432\u043e \u0432\u0441\u0435 \u043a\u0440\u0430\u0441\u0435. \u041f\u043e\u0448\u043b\u0438\u0442\u0435 \u0430\u0434\u0440\u0435\u0441 \u0441\u0432\u043e\u0438\u043c \u0434\u0440\u0443\u0437\u044c\u044f\u043c, \u0447\u0442\u043e\u0431\u044b \u0432\u0441\u0435 \u043c\u043e\u0433\u043b\u0438 \u043d\u0430\u0441\u043b\u0430\u0434\u0438\u0442\u044c\u0441\u044f \u0433\u0438\u0444\u043a\u0430\u043c\u0438 \u0441 \u043a\u043e\u0448\u043a\u0430\u043c\u0438.<\/p>\n\n\n\n<p>\u041f\u043e\u0437\u0434\u0440\u0430\u0432\u043b\u044f\u044e! \u0412\u044b \u0437\u0430\u0434\u0435\u043f\u043b\u043e\u0438\u043b\u0438 \u0441\u0432\u043e\u0435 \u043f\u0435\u0440\u0432\u043e\u0435 \u0414\u043e\u043a\u0435\u0440-\u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435! \u041c\u043e\u0436\u0435\u0442 \u043f\u043e\u043a\u0430\u0437\u0430\u0442\u044c\u0441\u044f, \u0447\u0442\u043e \u0431\u044b\u043b\u043e \u043e\u0447\u0435\u043d\u044c \u043c\u043d\u043e\u0433\u043e \u0448\u0430\u0433\u043e\u0432, \u043d\u043e \u0441 \u043a\u043e\u043c\u0430\u043d\u0434\u043d\u043e\u0439 \u0443\u0442\u0438\u043b\u0438\u0442\u043e\u0439 EB \u043c\u043e\u0436\u043d\u043e \u0438\u043c\u0438\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u043e\u0441\u0442\u044c \u0425\u0435\u0440\u043e\u043a\u0443 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u0438\u043c\u0438 \u043d\u0430\u0436\u0430\u0442\u0438\u044f\u043c\u0438 \u043a\u043b\u0430\u0432\u0438\u0448. \u041d\u0430\u0434\u0435\u044e\u0441\u044c, \u0432\u044b \u0441\u043e\u0433\u043b\u0430\u0441\u0438\u0442\u0435\u0441\u044c, \u0447\u0442\u043e \u0414\u043e\u043a\u0435\u0440 \u0441\u0438\u043b\u044c\u043d\u043e \u0443\u043f\u0440\u043e\u0449\u0430\u0435\u0442 \u043f\u0440\u043e\u0446\u0435\u0441\u0441 \u0438 \u043c\u0438\u043d\u0438\u043c\u0438\u0437\u0438\u0440\u0443\u0435\u0442 \u0431\u043e\u043b\u0435\u0437\u043d\u0435\u043d\u043d\u044b\u0435 \u043c\u043e\u043c\u0435\u043d\u0442\u044b \u0434\u0435\u043f\u043b\u043e\u044f \u0432 \u043e\u0431\u043b\u0430\u043a\u043e. \u042f \u0441\u043e\u0432\u0435\u0442\u0443\u044e \u0432\u0430\u043c \u043f\u043e\u0447\u0438\u0442\u0430\u0442\u044c&nbsp;<a href=\"http:\/\/docs.aws.amazon.com\/elasticbeanstalk\/latest\/dg\/docker-singlecontainer-deploy.html\" target=\"_blank\" rel=\"noreferrer noopener\">\u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044e AWS<\/a>&nbsp;\u043f\u0440\u043e single-container Docker environment \u0447\u0442\u043e\u0431\u044b \u043f\u043e\u043d\u0438\u043c\u0430\u0442\u044c, \u043a\u0430\u043a\u0438\u0435 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0442 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0438 \u0432 EB.<\/p>\n\n\n\n<p>\u0412 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0439, \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0435\u0439 \u0447\u0430\u0441\u0442\u0438 \u043f\u043e\u0441\u043e\u0431\u0438\u044f, \u043c\u044b \u043f\u043e\u0439\u0434\u0435\u043c \u043d\u0435\u043c\u043d\u043e\u0433\u043e \u0434\u0430\u043b\u044c\u0448\u0435 \u0438 \u0437\u0430\u0434\u0435\u043f\u043b\u043e\u0438\u043c \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435, \u043f\u0440\u0438\u0431\u043b\u0438\u0436\u0435\u043d\u043d\u043e\u0435 \u043a \u0440\u0435\u0430\u043b\u044c\u043d\u043e\u043c\u0443 \u043c\u0438\u0440\u0443. \u0412 \u043d\u0435\u043c \u0431\u0443\u0434\u0435\u0442 \u043f\u043e\u0441\u0442\u043e\u044f\u043d\u043d\u043e\u0435 \u0431\u044d\u043a\u044d\u043d\u0434-\u0445\u0440\u0430\u043d\u0438\u043b\u0438\u0449\u0435. \u041f\u043e\u0435\u0445\u0430\u043b\u0438!<a target=\"_blank\" rel=\"noreferrer noopener\"><\/a><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">3.0 \u041c\u043d\u043e\u0433\u043e\u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u043d\u044b\u0435 \u043e\u043a\u0440\u0443\u0436\u0435\u043d\u0438\u044f<\/h2>\n\n\n\n<p>\u0412 \u043f\u0440\u043e\u0448\u043b\u043e\u043c \u0440\u0430\u0437\u0434\u0435\u043b\u0435 \u043c\u044b \u0443\u0432\u0438\u0434\u0435\u043b\u0438, \u043a\u0430\u043a \u043b\u0435\u0433\u043a\u043e \u0438 \u043f\u0440\u043e\u0441\u0442\u043e \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0442\u044c \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0414\u043e\u043a\u0435\u0440\u0430. \u041c\u044b \u043d\u0430\u0447\u0430\u043b\u0438 \u0441 \u043f\u0440\u043e\u0441\u0442\u043e\u0433\u043e \u0441\u0442\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0433\u043e \u0441\u0430\u0439\u0442\u0430, \u0430 \u043f\u043e\u0442\u043e\u043c \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u043b\u0438 Flask-\u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435. \u041e\u0431\u0430 \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u0430 \u043c\u043e\u0436\u043d\u043e \u0431\u044b\u043b\u043e \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0442\u044c \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u043e \u0438\u043b\u0438 \u0432 \u043e\u0431\u043b\u0430\u043a\u0435, \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u0438\u043c\u0438 \u043a\u043e\u043c\u0430\u043d\u0434\u0430\u043c\u0438. \u041e\u0431\u0449\u0430\u044f \u0447\u0435\u0440\u0442\u0430 \u044d\u0442\u0438\u0445 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439: \u043a\u0430\u0436\u0434\u043e\u0435 \u0438\u0437 \u043d\u0438\u0445 \u0440\u0430\u0431\u043e\u0442\u0430\u043b\u043e&nbsp;<strong>\u0432 \u043e\u0434\u043d\u043e\u043c \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0435<\/strong>.<\/p>\n\n\n\n<p>\u0415\u0441\u043b\u0438 \u0443 \u0432\u0430\u0441 \u0435\u0441\u0442\u044c \u043e\u043f\u044b\u0442 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0441\u0435\u0440\u0432\u0438\u0441\u0430\u043c\u0438 \u0432 \u043f\u0440\u043e\u0434\u0430\u043a\u0448\u0435\u043d\u0435, \u0442\u043e \u0432\u044b \u0437\u043d\u0430\u0435\u0442\u0435, \u0447\u0442\u043e \u0441\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0435 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u043e\u0431\u044b\u0447\u043d\u043e \u043d\u0435 \u0442\u0430\u043a\u0438\u0435 \u043f\u0440\u043e\u0441\u0442\u044b\u0435. \u041f\u043e\u0447\u0442\u0438 \u0432\u0441\u0435\u0433\u0434\u0430 \u0435\u0441\u0442\u044c \u0431\u0430\u0437\u0430 \u0434\u0430\u043d\u043d\u044b\u0445 (\u0438\u043b\u0438 \u0434\u0440\u0443\u0433\u043e\u0439 \u0442\u0438\u043f \u043f\u043e\u0441\u0442\u043e\u044f\u043d\u043d\u043e\u0433\u043e \u0445\u0440\u0430\u043d\u0438\u043b\u0438\u0449\u0430). \u0421\u0438\u0441\u0442\u0435\u043c\u044b \u0432\u0440\u043e\u0434\u0435&nbsp;<a href=\"http:\/\/redis.io\/\" target=\"_blank\" rel=\"noreferrer noopener\">Redis<\/a>&nbsp;\u0438&nbsp;<a href=\"http:\/\/memcached.org\/\" target=\"_blank\" rel=\"noreferrer noopener\">Memcached<\/a>&nbsp;\u0441\u0442\u0430\u043b\u0438&nbsp;\u043f\u0440\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0439 \u0447\u0430\u0441\u0442\u044c\u044e \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u044b \u0432\u0435\u0431-\u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439. \u041f\u043e\u044d\u0442\u043e\u043c\u0443, \u0432 \u044d\u0442\u043e\u043c \u0440\u0430\u0437\u0434\u0435\u043b\u0435 \u043c\u044b \u043d\u0430\u0443\u0447\u0438\u043c\u0441\u044f &#171;\u0434\u043e\u043a\u0435\u0440\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u0442\u044c&#187; \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f, \u043a\u043e\u0442\u043e\u0440\u044b\u043c \u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0437\u0430\u043f\u0443\u0449\u0435\u043d\u043d\u044b\u0445 \u0441\u0435\u0440\u0432\u0438\u0441\u043e\u0432.<\/p>\n\n\n\n<p>\u0412 \u0447\u0430\u0441\u0442\u043d\u043e\u0441\u0442\u0438, \u043c\u044b \u0443\u0432\u0438\u0434\u0438\u043c, \u043a\u0430\u043a \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0442\u044c \u0438 \u0443\u043f\u0440\u0430\u0432\u043b\u044f\u0442\u044c&nbsp;<strong>\u043c\u043d\u043e\u0433\u043e\u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u043d\u044b\u043c\u0438<\/strong>&nbsp;\u0414\u043e\u043a\u0435\u0440-\u043e\u043a\u0440\u0443\u0436\u0435\u043d\u0438\u044f\u043c\u0438. \u041f\u043e\u0447\u0435\u043c\u0443 \u043d\u0443\u0436\u043d\u043e \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u043e\u0432, \u0441\u043f\u0440\u043e\u0441\u0438\u0442\u0435 \u0432\u044b? \u041d\u0443, \u043e\u0434\u043d\u0430 \u0438\u0437 \u0433\u043b\u0430\u0432\u043d\u044b\u0445 \u0438\u0434\u0435\u0439 \u0414\u043e\u043a\u0435\u0440\u0430 \u0432 \u0442\u043e\u043c, \u0447\u0442\u043e \u043e\u043d \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u0438\u0437\u043e\u043b\u044f\u0446\u0438\u044e. \u0418\u0434\u0435\u044f \u0441\u043e\u0432\u043c\u0435\u0449\u0435\u043d\u0438\u044f \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0430 \u0438 \u0435\u0433\u043e \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0435\u0439 \u0432 \u043e\u0434\u043d\u043e\u0439 \u043f\u0435\u0441\u043e\u0447\u043d\u0438\u0446\u0435 (\u043d\u0430\u0437\u044b\u0432\u0430\u0435\u043c\u043e\u0439 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u043e\u043c) \u0438 \u0434\u0435\u043b\u0430\u0435\u0442 \u0414\u043e\u043a\u0435\u0440 \u043c\u043e\u0449\u043d\u044b\u043c \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u043e\u043c.<\/p>\n\n\n\n<p>\u0410\u043d\u0430\u043b\u043e\u0433\u0438\u0447\u043d\u043e \u0442\u043e\u043c\u0443, \u043a\u0430\u043a \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u0440\u0430\u0437\u0431\u0438\u0432\u0430\u044e\u0442 \u043d\u0430 \u0447\u0430\u0441\u0442\u0438, \u0441\u0442\u043e\u0438\u0442 \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0442\u044c \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u0435\u00a0<strong>\u0441\u0435\u0440\u0432\u0438\u0441\u044b<\/strong>\u00a0\u0432 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u0445 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0430\u0445. \u0420\u0430\u0437\u043d\u044b\u043c \u0447\u0430\u0441\u0442\u044f\u043c \u0441\u043a\u043e\u0440\u0435\u0435 \u0432\u0441\u0435\u0433\u043e \u0442\u0440\u0435\u0431\u0443\u044e\u0442\u0441\u044f \u0440\u0430\u0437\u043d\u044b\u0435 \u0440\u0435\u0441\u0443\u0440\u0441\u044b, \u0438 \u0442\u0440\u0435\u0431\u043e\u0432\u0430\u043d\u0438\u044f \u043c\u043e\u0433\u0443\u0442 \u0440\u0430\u0441\u0442\u0438 \u0441 \u0440\u0430\u0437\u043d\u043e\u0439 \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u044c\u044e. \u0415\u0441\u043b\u0438 \u043c\u044b \u0440\u0430\u0437\u0434\u0435\u043b\u0438\u043c \u044d\u0442\u0438 \u0447\u0430\u0441\u0442\u0438 \u0438 \u043f\u043e\u043c\u0435\u0441\u0442\u0438\u043c \u0432 \u0440\u0430\u0437\u043d\u044b\u0435 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u044b, \u0442\u043e \u043a\u0430\u0436\u0434\u0443\u044e \u0447\u0430\u0441\u0442\u044c \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u043c\u043e\u0436\u043d\u043e \u0441\u0442\u0440\u043e\u0438\u0442\u044c, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044f \u043d\u0430\u0438\u0431\u043e\u043b\u0435\u0435 \u043f\u043e\u0434\u0445\u043e\u0434\u044f\u0449\u0438\u0439 \u0442\u0438\u043f \u0440\u0435\u0441\u0443\u0440\u0441\u043e\u0432. \u042d\u0442\u043e \u0442\u0430\u043a\u0436\u0435 \u0445\u043e\u0440\u043e\u0448\u043e \u0441\u043e\u0432\u043c\u0435\u0449\u0430\u0435\u0442\u0441\u044f \u0441 \u0438\u0434\u0435\u0435\u0439\u00a0<a href=\"http:\/\/martinfowler.com\/articles\/microservices.html\" target=\"_blank\" rel=\"noreferrer noopener\">\u043c\u0438\u043a\u0440\u043e \u0441\u0435\u0440\u0432\u0438\u0441\u043e\u0432<\/a>. \u042d\u0442\u043e \u043e\u0434\u043d\u0430 \u0438\u0437 \u043f\u0440\u0438\u0447\u0438\u043d, \u043f\u043e \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u0414\u043e\u043a\u0435\u0440 (\u0438 \u043b\u044e\u0431\u0430\u044f \u0434\u0440\u0443\u0433\u0430\u044f \u0442\u0435\u0445\u043d\u043e\u043b\u043e\u0433\u0438\u044f \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0438\u0437\u0430\u0446\u0438\u0438) \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u043d\u0430\u00a0<a href=\"https:\/\/medium.com\/aws-activate-startup-blog\/using-containers-to-build-a-microservices-architecture-6e1b8bacb7d1#.xl3wryr5z\" target=\"_blank\" rel=\"noreferrer noopener\">\u043f\u0435\u0440\u0435\u0434\u043e\u0432\u043e\u0439<\/a>\u00a0\u0441\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445 \u043c\u0438\u043a\u0440\u043e \u0441\u0435\u0440\u0432\u0438\u0441\u043d\u044b\u0445 \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440.<a target=\"_blank\" rel=\"noreferrer noopener\"><\/a><\/p>\n\n\n\n<h3 class=\"wp-block-heading\">3.1 SF Food Trucks<\/h3>\n\n\n\n<p>\u041f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435, \u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u043c\u044b \u043f\u0435\u0440\u0435\u0432\u0435\u0434\u0435\u043c \u0432 \u0414\u043e\u043a\u0435\u0440, \u043d\u0430\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f SF Food Trucks (<em>\u043a \u0441\u043e\u0436\u0430\u043b\u0435\u043d\u0438\u044e, \u0441\u0435\u0439\u0447\u0430\u0441 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u0443\u0436\u0435 \u043d\u0435 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u043f\u0443\u0431\u043b\u0438\u0447\u043d\u043e \u2014 \u043f\u0440\u0438\u043c. \u043f\u0435\u0440.<\/em>). \u041c\u043e\u044f \u0446\u0435\u043b\u044c \u0431\u044b\u043b\u0430 \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u0447\u0442\u043e-\u0442\u043e \u043f\u043e\u043b\u0435\u0437\u043d\u043e\u0435 (\u0438 \u043f\u043e\u0445\u043e\u0436\u0435\u0435 \u043d\u0430 \u043d\u0430\u0441\u0442\u043e\u044f\u0449\u0435\u0435 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u0438\u0437 \u0440\u0435\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u043c\u0438\u0440\u0430), \u0447\u0442\u043e-\u0442\u043e, \u0447\u0442\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442 \u043a\u0430\u043a \u043c\u0438\u043d\u0438\u043c\u0443\u043c \u043e\u0434\u0438\u043d \u0441\u0435\u0440\u0432\u0438\u0441, \u043d\u043e \u043d\u0435 \u0441\u043b\u0438\u0448\u043a\u043e\u043c \u0441\u043b\u043e\u0436\u043d\u043e\u0435 \u0434\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u043f\u043e\u0441\u043e\u0431\u0438\u044f. \u0412\u043e\u0442 \u0447\u0442\u043e \u044f \u043f\u0440\u0438\u0434\u0443\u043c\u0430\u043b.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img loading=\"lazy\" decoding=\"async\" width=\"1262\" height=\"850\" src=\"https:\/\/olvas.dev\/wp-content\/uploads\/2025\/03\/4754351dcf6a434f8bac6adaee0b1e10-1.png\" alt=\"sf food trucks\" class=\"wp-image-1393\" srcset=\"https:\/\/olvas.dev\/wp-content\/uploads\/2025\/03\/4754351dcf6a434f8bac6adaee0b1e10-1.png 1262w, https:\/\/olvas.dev\/wp-content\/uploads\/2025\/03\/4754351dcf6a434f8bac6adaee0b1e10-1-768x517.png?_mod=1742506694 768w, https:\/\/olvas.dev\/wp-content\/uploads\/2025\/03\/4754351dcf6a434f8bac6adaee0b1e10-1-640x431.png?_mod=1742506695 640w, https:\/\/olvas.dev\/wp-content\/uploads\/2025\/03\/4754351dcf6a434f8bac6adaee0b1e10-1-1024x690.png?_mod=1742506696 1024w, https:\/\/olvas.dev\/wp-content\/uploads\/2025\/03\/4754351dcf6a434f8bac6adaee0b1e10-1-742x500.png?_mod=1742506697 742w\" sizes=\"auto, (max-width: 1262px) 100vw, 1262px\" \/><\/figure>\n\n\n\n<p>\u0411\u044d\u043a\u044d\u043d\u0434 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u043e \u043d\u0430 \u041f\u0438\u0442\u043e\u043d\u0435 (Flask), \u0430 \u0434\u043b\u044f \u043f\u043e\u0438\u0441\u043a\u0430 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f&nbsp;<a href=\"https:\/\/www.elastic.co\/products\/elasticsearch\" target=\"_blank\" rel=\"noreferrer noopener\">Elasticsearch<\/a>. \u041a\u0430\u043a \u0438 \u0432\u0441\u0435 \u043e\u0441\u0442\u0430\u043b\u044c\u043d\u043e\u0435 \u0432 \u044d\u0442\u043e\u043c \u043f\u043e\u0441\u043e\u0431\u0438\u0438, \u043a\u043e\u0434 \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u043d\u0430&nbsp;<a href=\"http:\/\/github.com\/prakhar1989\/FoodTrucks\" target=\"_blank\" rel=\"noreferrer noopener\">Github<\/a>. \u041c\u044b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c \u044d\u0442\u043e \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435, \u0447\u0442\u043e\u0431\u044b \u043d\u0430\u0443\u0447\u0438\u0442\u044c\u0441\u044f \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0442\u044c \u0438 \u0434\u0435\u043f\u043b\u043e\u0438\u0442\u044c \u043c\u043d\u043e\u0433\u043e-\u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u043d\u043e\u0435 \u043e\u043a\u0440\u0443\u0436\u0435\u043d\u0438\u0435.<\/p>\n\n\n\n<p>\u0422\u0435\u043f\u0435\u0440\u044c, \u043a\u043e\u0433\u0434\u0430 \u0432\u044b \u0437\u0430\u0432\u0435\u043b\u0438\u0441\u044c (\u043d\u0430\u0434\u0435\u044e\u0441\u044c), \u0434\u0430\u0432\u0430\u0439\u0442\u0435 \u043f\u043e\u0434\u0443\u043c\u0430\u0435\u043c, \u043a\u0430\u043a \u0431\u0443\u0434\u0435\u0442 \u0432\u044b\u0433\u043b\u044f\u0434\u0435\u0442\u044c \u044d\u0442\u043e\u0442 \u043f\u0440\u043e\u0446\u0435\u0441\u0441. \u0412 \u043d\u0430\u0448\u0435\u043c \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0438 \u0435\u0441\u0442\u044c \u0431\u044d\u043a\u044d\u043d\u0434 \u043d\u0430 Flask \u0438 \u0441\u0435\u0440\u0432\u0438\u0441 Elasticsearch. \u041e\u0447\u0435\u0432\u0438\u0434\u043d\u043e, \u0447\u0442\u043e \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u0434\u0435\u043b\u0438\u0442\u044c \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u043d\u0430 \u0434\u0432\u0430 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0430: \u043e\u0434\u0438\u043d \u0434\u043b\u044f Flask, \u0434\u0440\u0443\u0433\u043e\u0439 \u0434\u043b\u044f Elasticsearch (ES). \u0415\u0441\u043b\u0438 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u0441\u0442\u0430\u043d\u0435\u0442 \u043f\u043e\u043f\u0443\u043b\u044f\u0440\u043d\u044b\u043c, \u0442\u043e \u043c\u043e\u0436\u043d\u043e \u0431\u0443\u0434\u0435\u0442 \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0442\u044c \u043d\u043e\u0432\u044b\u0435 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u044b \u0432 \u043d\u0443\u0436\u043d\u043e\u043c \u043c\u0435\u0441\u0442\u0435, \u0441\u043c\u043e\u0442\u0440\u044f \u0433\u0434\u0435 \u0431\u0443\u0434\u0435\u0442 \u0443\u0437\u043a\u043e\u0435 \u043c\u0435\u0441\u0442\u043e.<\/p>\n\n\n\n<p>\u041e\u0442\u043b\u0438\u0447\u043d\u043e, \u0437\u043d\u0430\u0447\u0438\u0442 \u043d\u0443\u0436\u043d\u043e \u0434\u0432\u0430 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0430. \u042d\u0442\u043e \u043d\u0435 \u0441\u043b\u043e\u0436\u043d\u043e, \u043f\u0440\u0430\u0432\u0434\u0430? \u041c\u044b \u0443\u0436\u0435 \u0441\u043e\u0437\u0434\u0430\u0432\u0430\u043b\u0438 Flask-\u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440 \u0432 \u043f\u0440\u043e\u0448\u043b\u043e\u043c \u0440\u0430\u0437\u0434\u0435\u043b\u0435. \u0410 \u0434\u043b\u044f Elasticsearch\u2026 \u0434\u0430\u0432\u0430\u0439\u0442\u0435 \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0438\u043c, \u0435\u0441\u0442\u044c \u043b\u0438 \u0447\u0442\u043e-\u043d\u0438\u0431\u0443\u0434\u044c \u0432 \u0445\u0430\u0431\u0435:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>$ docker search elasticsearch<br>NAME                              DESCRIPTION                                     STARS     OFFICIAL   AUTOMATED<br>elasticsearch                     Elasticsearch is a powerful open source se...   697       &#91;OK]<br>itzg\/elasticsearch                Provides an easily configurable Elasticsea...   17                   &#91;OK]<br>tutum\/elasticsearch               Elasticsearch image - listens <strong>in<\/strong> port 9200.     15                   &#91;OK]<br>barnybug\/elasticsearch            Latest Elasticsearch 1.7.2 and previous re...   15                   &#91;OK]<br>digitalwonderland\/elasticsearch   Latest Elasticsearch with Marvel &amp; Kibana       12                   &#91;OK]<br>monsantoco\/elasticsearch          ElasticSearch Docker image                      9                    &#91;OK]<br><\/code><\/pre>\n\n\n\n<p>\u041d\u0435 \u0443\u0434\u0438\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e, \u043d\u043e \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0442 \u043e\u0444\u0438\u0446\u0438\u0430\u043b\u044c\u043d\u044b\u0439&nbsp;<a href=\"https:\/\/hub.docker.com\/_\/elasticsearch\/\" target=\"_blank\" rel=\"noreferrer noopener\">\u043e\u0431\u0440\u0430\u0437<\/a>&nbsp;\u0434\u043b\u044f Elasticsearch. \u0427\u0442\u043e\u0431\u044b \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c ES, \u043d\u0443\u0436\u043d\u043e \u0432\u0441\u0435\u0433\u043e \u043b\u0438\u0448\u044c \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u0442\u044c&nbsp;<code>docker run<\/code>, \u0438 \u0432\u0441\u043a\u043e\u0440\u0435 \u0443 \u043d\u0430\u0441 \u0431\u0443\u0434\u0435\u0442 \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u044b\u0439, \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0449\u0438\u0439 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440 \u0441 \u043e\u0434\u043d\u0438\u043c \u0443\u0437\u043b\u043e\u043c ES.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>$ docker run -dp 9200:9200 elasticsearch<br>d582e031a005f41eea704cdc6b21e62e7a8a42021297ce7ce123b945ae3d3763<br><br>$ curl 0.0.0.0:9200<br>{<br>  \"name\" : \"Ultra-Marine\",<br>  \"cluster_name\" : \"elasticsearch\",<br>  \"version\" : {<br>    \"number\" : \"2.1.1\",<br>    \"build_hash\" : \"40e2c53a6b6c2972b3d13846e450e66f4375bd71\",<br>    \"build_timestamp\" : \"2015-12-15T13:05:55Z\",<br>    \"build_snapshot\" : false,<br>    \"lucene_version\" : \"5.3.1\"<br>  },<br>  \"tagline\" : \"You Know, for Search\"<br>}<br><\/code><\/pre>\n\n\n\n<p>\u0417\u0430\u043e\u0434\u043d\u043e \u0434\u0430\u0432\u0430\u0439\u0442\u0435 \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u043c \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440 \u0441 Flask. \u041d\u043e \u0432\u043d\u0430\u0447\u0430\u043b\u0435 \u043d\u0443\u0436\u0435\u043d&nbsp;<code>Dockerfile<\/code>. \u0412 \u043f\u0440\u043e\u0448\u043b\u043e\u0439 \u0441\u0435\u043a\u0446\u0438\u0438 \u043c\u044b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043b\u0438 \u043e\u0431\u0440\u0430\u0437&nbsp;<code>python:3-onbuild<\/code>&nbsp;\u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u0431\u0430\u0437\u043e\u0432\u043e\u0433\u043e. \u041e\u0434\u043d\u0430\u043a\u043e, \u0432 \u044d\u0442\u043e\u043c \u0440\u0430\u0437, \u043a\u0440\u043e\u043c\u0435 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438 \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0435\u0439 \u0447\u0435\u0440\u0435\u0437&nbsp;<code>pip<\/code>, \u043d\u0430\u043c \u043d\u0443\u0436\u043d\u043e, \u0447\u0442\u043e\u0431\u044b \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u0433\u0435\u043d\u0435\u0440\u0438\u0440\u043e\u0432\u0430\u043b\u043e \u043c\u0438\u043d\u0438\u043c\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0439 Javascript-\u0444\u0430\u0439\u043b \u0434\u043b\u044f \u043f\u0440\u043e\u0434\u0430\u043a\u0448\u0435\u043d\u0430. \u0414\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u043f\u043e\u043d\u0430\u0434\u043e\u0431\u0438\u0442\u0441\u044f Nodejs. \u0422\u0430\u043a \u0447\u0442\u043e \u043d\u0443\u0436\u0435\u043d \u0441\u0432\u043e\u0439 \u0431\u0438\u043b\u0434 \u0441 \u043d\u0443\u043b\u044f, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u043d\u0430\u0447\u043d\u0435\u043c \u0441 \u0431\u0430\u0437\u043e\u0432\u043e\u0433\u043e \u043e\u0431\u0440\u0430\u0437\u0430&nbsp;<code>ubuntu<\/code>.<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p>\u0417\u0430\u043c\u0435\u0447\u0430\u043d\u0438\u0435: \u0435\u0441\u043b\u0438 \u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f, \u0447\u0442\u043e \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0439 \u043e\u0431\u0440\u0430\u0437 \u043d\u0435 \u043f\u043e\u0434\u0445\u043e\u0434\u0438\u0442 \u0434\u043b\u044f \u0432\u0430\u0448\u0435\u0439 \u0437\u0430\u0434\u0430\u0447\u0438, \u0442\u043e \u0441\u043f\u043e\u043a\u043e\u0439\u043d\u043e \u0441\u043e\u0437\u0434\u0430\u0432\u0430\u0439\u0442\u0435 \u0441\u0432\u043e\u0439 \u043e\u0431\u0440\u0430\u0437 \u043d\u0430 \u043e\u0441\u043d\u043e\u0432\u0435 \u0434\u0440\u0443\u0433\u043e\u0433\u043e \u0431\u0430\u0437\u043e\u0432\u043e\u0433\u043e \u043e\u0431\u0440\u0430\u0437\u0430. \u0412 \u0431\u043e\u043b\u044c\u0448\u0438\u043d\u0441\u0442\u0432\u0435 \u0441\u043b\u0443\u0447\u0430\u0435\u043c, \u0434\u043b\u044f \u043e\u0431\u0440\u0430\u0437\u043e\u0432 \u043d\u0430 Docker Hub \u043c\u043e\u0436\u043d\u043e \u043d\u0430\u0439\u0442\u0438 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0439&nbsp;<code>Dockerfile<\/code>&nbsp;\u043d\u0430 Github. \u041f\u043e\u0447\u0438\u0442\u0430\u0439\u0442\u0435 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0439 \u0414\u043e\u043a\u0435\u0440\u0444\u0430\u0439\u043b\u044b \u2014 \u044d\u0442\u043e \u043e\u0434\u0438\u043d \u0438\u0437 \u043b\u0443\u0447\u0448\u0438\u0445 \u0441\u043f\u043e\u0441\u043e\u0431\u043e\u0432 \u043d\u0430\u0443\u0447\u0438\u0442\u044c\u0441\u044f \u0434\u0435\u043b\u0430\u0442\u044c \u0441\u0432\u043e\u0438 \u043e\u0431\u0440\u0430\u0437\u044b.<\/p>\n<\/blockquote>\n\n\n\n<p>\u041d\u0430\u0448&nbsp;<a href=\"https:\/\/github.com\/prakhar1989\/FoodTrucks\/blob\/master\/Dockerfile\" target=\"_blank\" rel=\"noreferrer noopener\">Dockerfile<\/a>&nbsp;\u0434\u043b\u044f Flask-\u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code># start from base<br>FROM ubuntu:14.04<br>MAINTAINER Prakhar Srivastav &lt;prakhar@prakhar.me&gt;<br><br># install system-wide deps for python and node<br>RUN apt-get -yqq update<br>RUN apt-get -yqq install python-pip python-dev<br>RUN apt-get -yqq install nodejs npm<br>RUN ln -s \/usr\/bin\/nodejs \/usr\/bin\/node<br><br># copy our application code<br>ADD flask-app \/opt\/flask-app<br>WORKDIR \/opt\/flask-app<br><br># fetch app specific deps<br>RUN npm install<br>RUN npm run build<br>RUN pip install -r requirements.txt<br><br># expose port<br>EXPOSE 5000<br><br># start app<br>CMD &#91; \"python\", \".\/app.py\" ]<br><\/code><\/pre>\n\n\n\n<p>\u0422\u0443\u0442 \u043c\u043d\u043e\u0433\u043e \u0432\u0441\u0435\u0433\u043e \u043d\u043e\u0432\u043e\u0433\u043e. \u0412\u043d\u0430\u0447\u0430\u043b\u0435 \u0443\u043a\u0430\u0437\u0430\u043d \u0431\u0430\u0437\u043e\u0432\u044b\u0439 \u043e\u0431\u0440\u0430\u0437&nbsp;<a href=\"https:\/\/wiki.ubuntu.com\/LTS\" target=\"_blank\" rel=\"noreferrer noopener\">Ubuntu LTS<\/a>, \u043f\u043e\u0442\u043e\u043c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u043f\u0430\u043a\u0435\u0442\u043d\u044b\u0439 \u043c\u0435\u043d\u0435\u0434\u0436\u0435\u0440&nbsp;<code>apt-get<\/code>&nbsp;\u0434\u043b\u044f \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438 \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0435\u0439, \u0432 \u0447\u0430\u0441\u0442\u043d\u043e\u0441\u0442\u0438 \u2014 Python \u0438 Node. \u0424\u043b\u0430\u0433&nbsp;<code>yqq<\/code>&nbsp;\u043d\u0443\u0436\u0435\u043d \u0434\u043b\u044f \u0438\u0433\u043d\u043e\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0432\u044b\u0432\u043e\u0434\u0430 \u0438 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0433\u043e \u0432\u044b\u0431\u043e\u0440\u0430 &#171;Yes&#187; \u0432\u043e \u0432\u0441\u0435\u0445 \u043c\u0435\u0441\u0442\u0430\u0445. \u0422\u0430\u043a\u0436\u0435 \u0441\u043e\u0437\u0434\u0430\u0435\u0442\u0441\u044f \u0441\u0438\u043c\u0432\u043e\u043b\u0438\u0447\u0435\u0441\u043a\u0430\u044f \u0441\u0441\u044b\u043b\u043a\u0430 \u0434\u043b\u044f \u0431\u0438\u043d\u0430\u0440\u043d\u043e\u0433\u043e \u0444\u0430\u0439\u043b\u0430 node. \u042d\u0442\u043e \u043d\u0443\u0436\u043d\u043e \u0434\u043b\u044f \u0440\u0435\u0448\u0435\u043d\u0438\u044f \u043f\u0440\u043e\u0431\u043b\u0435\u043c \u043e\u0431\u0440\u0430\u0442\u043d\u043e\u0439 \u0441\u043e\u0432\u043c\u0435\u0441\u0442\u0438\u043c\u043e\u0441\u0442\u0438.<\/p>\n\n\n\n<p>\u041f\u043e\u0442\u043e\u043c \u043c\u044b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c \u043a\u043e\u043c\u0430\u043d\u0434\u0443&nbsp;<code>ADD<\/code>&nbsp;\u0434\u043b\u044f \u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u0432 \u043d\u0443\u0436\u043d\u0443\u044e \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u044e \u0432 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0435 \u2014&nbsp;<code>\/opt\/flask-app<\/code>. \u0417\u0434\u0435\u0441\u044c \u0431\u0443\u0434\u0435\u0442 \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u044c\u0441\u044f \u0432\u0435\u0441\u044c \u043d\u0430\u0448 \u043a\u043e\u0434. \u041c\u044b \u0442\u0430\u043a\u0436\u0435 \u0443\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u043c \u044d\u0442\u0443 \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u044e \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u0440\u0430\u0431\u043e\u0447\u0435\u0439, \u0442\u0430\u043a \u0447\u0442\u043e \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0435 \u043a\u043e\u043c\u0430\u043d\u0434\u044b \u0431\u0443\u0434\u0443\u0442 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0442\u044c\u0441\u044f \u0432 \u043a\u043e\u043d\u0442\u0435\u043a\u0441\u0442\u0435 \u044d\u0442\u043e\u0439 \u043b\u043e\u043a\u0430\u0446\u0438\u0438. \u0422\u0435\u043f\u0435\u0440\u044c, \u043a\u043e\u0433\u0434\u0430 \u043d\u0430\u0448\u0438 \u0441\u0438\u0441\u0442\u0435\u043c\u043d\u044b\u0435 \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0438 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u044b, \u043f\u043e\u0440\u0430 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0438 \u0443\u0440\u043e\u0432\u043d\u044f \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f. \u041d\u0430\u0447\u043d\u0435\u043c \u0441 Node, \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438 \u043f\u0430\u043a\u0435\u0442\u043e\u0432 \u0438\u0437 npm \u0438 \u0437\u0430\u043f\u0443\u0441\u043a\u0430 \u043a\u043e\u043c\u0430\u043d\u0434\u044b \u0441\u0431\u043e\u0440\u043a\u0438, \u043a\u0430\u043a \u0443\u043a\u0430\u0437\u0430\u043d\u043e \u0432 \u043d\u0430\u0448\u0435\u043c&nbsp;<a href=\"https:\/\/github.com\/prakhar1989\/FoodTrucks\/blob\/master\/flask-app\/package.json#L7-L9\" target=\"_blank\" rel=\"noreferrer noopener\">\u0444\u0430\u0439\u043b\u0435&nbsp;package.json<\/a>. \u0412 \u043a\u043e\u043d\u0446\u0435 \u0443\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u043c \u043f\u0430\u043a\u0435\u0442\u044b Python, \u043e\u0442\u043a\u0440\u044b\u0432\u0430\u0435\u043c \u043f\u043e\u0440\u0442 \u0438 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u043c \u0437\u0430\u043f\u0443\u0441\u043a \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u0441 \u043f\u043e\u043c\u043e\u0449\u044c&nbsp;<code>CMD<\/code>, \u043a\u0430\u043a \u0432 \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0435\u043c \u0440\u0430\u0437\u0434\u0435\u043b\u0435.<\/p>\n\n\n\n<p>\u041d\u0430\u043a\u043e\u043d\u0435\u0446, \u043c\u043e\u0436\u043d\u043e \u0441\u043e\u0431\u0440\u0430\u0442\u044c \u043e\u0431\u0440\u0430\u0437 \u0438 \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440 (\u0437\u0430\u043c\u0435\u043d\u0438\u0442\u0435&nbsp;<code>prakhar1989<\/code>&nbsp;\u043d\u0430 \u0441\u0432\u043e\u0439 username \u043d\u0438\u0436\u0435).<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>$ docker build -t prakhar1989\/foodtrucks-web .<br><\/code><\/pre>\n\n\n\n<p>\u041f\u0440\u0438 \u043f\u0435\u0440\u0432\u043e\u043c \u0437\u0430\u043f\u0443\u0441\u043a\u0435 \u043d\u0443\u0436\u043d\u043e \u0431\u0443\u0434\u0435\u0442 \u0431\u043e\u043b\u044c\u0448\u0435 \u0432\u0440\u0435\u043c\u0435\u043d\u0438, \u0442\u0430\u043a \u043a\u0430\u043a \u043a\u043b\u0438\u0435\u043d\u0442 \u0414\u043e\u043a\u0435\u0440\u0430 \u0431\u0443\u0434\u0435\u0442 \u0441\u043a\u0430\u0447\u0438\u0432\u0430\u0442\u044c \u043e\u0431\u0440\u0430\u0437 ubuntu, \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0442\u044c \u0432\u0441\u0435 \u043a\u043e\u043c\u0430\u043d\u0434\u044b \u0438 \u0433\u043e\u0442\u043e\u0432\u0438\u0442\u044c \u043e\u0431\u0440\u0430\u0437. \u041f\u043e\u0432\u0442\u043e\u0440\u043d\u044b\u0439 \u0437\u0430\u043f\u0443\u0441\u043a&nbsp;<code>docker build<\/code>&nbsp;\u043f\u043e\u0441\u043b\u0435 \u043f\u043e\u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0445 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0439 \u0431\u0443\u0434\u0435\u0442 \u043f\u0440\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u043c\u043e\u043c\u0435\u043d\u0442\u0430\u043b\u044c\u043d\u044b\u043c. \u0414\u0430\u0432\u0430\u0439\u0442\u0435 \u043f\u043e\u043f\u0440\u043e\u0431\u0443\u0435\u043c \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>$ docker run -P prakhar1989\/foodtrucks-web<br>Unable to connect to ES. Retying <strong>in<\/strong> 5 secs...<br>Unable to connect to ES. Retying <strong>in<\/strong> 5 secs...<br>Unable to connect to ES. Retying <strong>in<\/strong> 5 secs...<br>Out of retries. Bailing out...<br><\/code><\/pre>\n\n\n\n<p>\u0423\u043f\u0441! \u041d\u0430\u0448\u0435 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u043d\u0435 \u0441\u043c\u043e\u0433\u043b\u043e \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c\u0441\u044f, \u043f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e \u043e\u043d\u043e \u043d\u0435 \u043c\u043e\u0436\u0435\u0442 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0438\u0442\u044c\u0441\u044f \u043a Elasticsearch. \u041a\u0430\u043a \u0441\u043e\u043e\u0431\u0449\u0438\u0442\u044c \u043e\u0434\u043d\u043e\u043c\u0443 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0443 \u043e \u0434\u0440\u0443\u0433\u043e\u043c \u0438 \u043a\u0430\u043a \u0437\u0430\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u0438\u0445 \u0432\u0437\u0430\u0438\u043c\u043e\u0434\u0435\u0439\u0441\u0442\u0432\u043e\u0432\u0430\u0442\u044c \u0434\u0440\u0443\u0433 \u0441 \u0434\u0440\u0443\u0433\u043e\u043c? \u041e\u0442\u0432\u0435\u0442 \u2014 \u0432 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0439 \u0441\u0435\u043a\u0446\u0438\u0438.<\/p>\n\n\n\n<p><a target=\"_blank\" rel=\"noreferrer noopener\"><\/a><\/p>\n\n\n\n<h3 class=\"wp-block-heading\">3.2 \u0421\u0435\u0442\u0438 Docker<\/h3>\n\n\n\n<p>\u041f\u0435\u0440\u0435\u0434 \u0442\u0435\u043c, \u043a\u0430\u043a \u043e\u0431\u0441\u0443\u0434\u0438\u0442\u044c \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0438 \u0414\u043e\u043a\u0435\u0440\u0430 \u0434\u043b\u044f \u0440\u0435\u0448\u0435\u043d\u0438\u044f \u043e\u043f\u0438\u0441\u0430\u043d\u043d\u043e\u0439 \u0437\u0430\u0434\u0430\u0447\u0438, \u0434\u0430\u0432\u0430\u0439\u0442\u0435 \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u043d\u0430 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u044b\u0435 \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u044b \u043e\u0431\u0445\u043e\u0434\u0430 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u044b. \u0414\u0443\u043c\u0430\u044e, \u044d\u0442\u043e \u043f\u043e\u043c\u043e\u0436\u0435\u0442 \u043d\u0430\u043c \u043e\u0446\u0435\u043d\u0438\u0442\u044c \u0443\u0434\u043e\u0431\u0441\u0442\u0432\u043e \u0442\u043e\u0439 \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u043e\u0441\u0442\u0438, \u043a\u043e\u0442\u043e\u0440\u0443\u044e \u043c\u044b \u0432\u0441\u043a\u043e\u0440\u0435 \u0438\u0437\u0443\u0447\u0438\u043c.<\/p>\n\n\n\n<p>\u041b\u0430\u0434\u043d\u043e, \u0434\u0430\u0432\u0430\u0439\u0442\u0435 \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u043c&nbsp;<code>docker ps<\/code>, \u0447\u0442\u043e \u0442\u0443\u0442 \u0443 \u043d\u0430\u0441:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>$ docker ps<br>CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                              NAMES<br>e931ab24dedc        elasticsearch       \"\/docker-entrypoint.s\"   2 seconds ago       Up 2 seconds        0.0.0.0:9200-&gt;9200\/tcp, 9300\/tcp   cocky_spence<br><\/code><\/pre>\n\n\n\n<p>\u0418\u0442\u0430\u043a, \u0443 \u043d\u0430\u0441 \u0435\u0441\u0442\u044c \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440 ES \u043f\u043e \u0430\u0434\u0440\u0435\u0441\u0443 \u0438 \u043f\u043e\u0440\u0442\u0443&nbsp;<code>0.0.0.0:9200<\/code>, \u0438 \u043c\u044b \u043c\u043e\u0436\u0435\u043c \u043d\u0430\u043f\u0440\u044f\u043c\u0443\u044e \u043e\u0431\u0440\u0430\u0449\u0430\u0442\u044c\u0441\u044f \u043a \u043d\u0435\u043c\u0443. \u0415\u0441\u043b\u0438 \u043c\u043e\u0436\u043d\u043e \u0431\u044b\u043b\u043e \u0431\u044b \u0441\u043e\u043e\u0431\u0449\u0438\u0442\u044c \u043d\u0430\u0448\u0435\u043c\u0443 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044e \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0430\u0442\u044c\u0441\u044f \u043a \u044d\u0442\u043e\u043c\u0443 \u0430\u0434\u0440\u0435\u0441\u0443, \u0442\u043e \u043e\u043d\u043e \u0441\u043c\u043e\u0436\u0435\u0442 \u043e\u0431\u0449\u0430\u0442\u044c\u0441\u044f \u0441 ES, \u0432\u0435\u0440\u043d\u043e? \u0414\u0430\u0432\u0430\u0439\u0442\u0435 \u0432\u0437\u0433\u043b\u044f\u043d\u0435\u043c \u043d\u0430&nbsp;<a href=\"https:\/\/github.com\/prakhar1989\/FoodTrucks\/blob\/master\/flask-app\/app.py#L7\" target=\"_blank\" rel=\"noreferrer noopener\">\u043a\u043e\u0434 \u043d\u0430 \u041f\u0438\u0442\u043e\u043d\u0435<\/a>, \u0442\u0443\u0434\u0430, \u0433\u0434\u0435 \u043e\u043f\u0438\u0441\u0430\u043d\u043e \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>es = Elasticsearch(host='es')<br><\/code><\/pre>\n\n\n\n<p>\u041d\u0443\u0436\u043d\u043e \u0441\u043e\u043e\u0431\u0449\u0438\u0442\u044c Flask-\u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0443, \u0447\u0442\u043e \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440 ES \u0437\u0430\u043f\u0443\u0449\u0435\u043d \u043d\u0430 \u0445\u043e\u0441\u0442\u0435&nbsp;<code>0.0.0.0<\/code>&nbsp;(\u043f\u043e\u0440\u0442 \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e&nbsp;<code>9200<\/code>), \u0438 \u0432\u0441\u0435 \u0437\u0430\u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442, \u0434\u0430? \u041a \u0441\u043e\u0436\u0430\u043b\u0435\u043d\u0438\u044e, \u043d\u0435\u0442, \u043f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e IP&nbsp;<code>0.0.0.0<\/code>&nbsp;\u044d\u0442\u043e \u0430\u0434\u0440\u0435\u0441 \u0434\u043b\u044f \u0434\u043e\u0441\u0442\u0443\u043f\u0430 \u043a \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0443 \u0441 &nbsp;<strong>\u0445\u043e\u0441\u0442-\u043c\u0430\u0448\u0438\u043d\u044b<\/strong>, \u0442\u043e \u0435\u0441\u0442\u044c \u0441 \u043c\u043e\u0435\u0433\u043e \u041c\u0430\u043a\u0430. \u0414\u0440\u0443\u0433\u043e\u0439 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440 \u043d\u0435 \u0441\u043c\u043e\u0436\u0435\u0442 \u043e\u0431\u0440\u0430\u0442\u0438\u0442\u044c\u0441\u044f \u043f\u043e \u044d\u0442\u043e\u043c\u0443 \u0430\u0434\u0440\u0435\u0441\u0443. \u041b\u0430\u0434\u043d\u043e, \u0435\u0441\u043b\u0438 \u043d\u0435 \u044d\u0442\u043e\u0442 \u0430\u0434\u0440\u0435\u0441, \u0442\u043e \u043a\u0430\u043a\u043e\u0439 \u0434\u0440\u0443\u0433\u043e\u0439 \u0430\u0434\u0440\u0435\u0441 \u043d\u0443\u0436\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0434\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u0441 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u043e\u043c ES? \u0420\u0430\u0434, \u0447\u0442\u043e \u0432\u044b \u0441\u043f\u0440\u043e\u0441\u0438\u043b\u0438.<\/p>\n\n\n\n<p>\u042d\u0442\u043e \u0445\u043e\u0440\u043e\u0448\u0438\u0439 \u043c\u043e\u043c\u0435\u043d\u0442, \u0447\u0442\u043e\u0431\u044b \u0438\u0437\u0443\u0447\u0438\u0442\u044c \u0440\u0430\u0431\u043e\u0442\u0443 \u0441\u0435\u0442\u0438 \u0432 \u0414\u043e\u043a\u0435\u0440\u0435. \u041f\u043e\u0441\u043b\u0435 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438, \u0414\u043e\u043a\u0435\u0440 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u0441\u043e\u0437\u0434\u0430\u0435\u0442 \u0442\u0440\u0438 \u0441\u0435\u0442\u0438:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>$ docker network ls<br>NETWORK ID          NAME                DRIVER<br>075b9f628ccc        none                null<br>be0f7178486c        host                host<br>8022115322ec        bridge              bridge<br><\/code><\/pre>\n\n\n\n<p>\u0421\u0435\u0442\u044c&nbsp;<strong>bridge<\/strong>&nbsp;\u2014 \u044d\u0442\u043e \u0441\u0435\u0442\u044c, \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u044b \u0437\u0430\u043f\u0443\u0449\u0435\u043d\u044b \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e. \u042d\u0442\u043e \u0437\u043d\u0430\u0447\u0438\u0442, \u0447\u0442\u043e \u043a\u043e\u0433\u0434\u0430 \u044f \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u044e \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440 ES, \u043e\u043d \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u0432 \u044d\u0442\u043e\u0439 \u0441\u0435\u0442\u0438 bridge. \u0427\u0442\u043e\u0431\u044b \u0443\u0434\u043e\u0441\u0442\u043e\u0432\u0435\u0440\u0438\u0442\u044c\u0441\u044f, \u0434\u0430\u0432\u0430\u0439\u0442\u0435 \u043f\u0440\u043e\u0432\u0435\u0440\u0438\u043c:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>$ docker network inspect bridge<br>&#91;<br>    {<br>        \"Name\": \"bridge\",<br>        \"Id\": \"8022115322ec80613421b0282e7ee158ec41e16f565a3e86fa53496105deb2d7\",<br>        \"Scope\": \"local\",<br>        \"Driver\": \"bridge\",<br>        \"IPAM\": {<br>            \"Driver\": \"default\",<br>            \"Config\": &#91;<br>                {<br>                    \"Subnet\": \"172.17.0.0\/16\"<br>                }<br>            ]<br>        },<br>        \"Containers\": {<br>            \"e931ab24dedc1640cddf6286d08f115a83897c88223058305460d7bd793c1947\": {<br>                \"EndpointID\": \"66965e83bf7171daeb8652b39590b1f8c23d066ded16522daeb0128c9c25c189\",<br>                \"MacAddress\": \"02:42:ac:11:00:02\",<br>                \"IPv4Address\": \"172.17.0.2\/16\",<br>                \"IPv6Address\": \"\"<br>            }<br>        },<br>        \"Options\": {<br>            \"com.docker.network.bridge.default_bridge\": \"true\",<br>            \"com.docker.network.bridge.enable_icc\": \"true\",<br>            \"com.docker.network.bridge.enable_ip_masquerade\": \"true\",<br>            \"com.docker.network.bridge.host_binding_ipv4\": \"0.0.0.0\",<br>            \"com.docker.network.bridge.name\": \"docker0\",<br>            \"com.docker.network.driver.mtu\": \"1500\"<br>        }<br>    }<br>]<br><\/code><\/pre>\n\n\n\n<p>\u0412\u0438\u0434\u043d\u043e, \u0447\u0442\u043e \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440&nbsp;<code>e931ab24dedc<\/code>&nbsp;\u043d\u0430\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u0432 \u0441\u0435\u043a\u0446\u0438\u0438&nbsp;<code>Containers<\/code>. \u0422\u0430\u043a\u0436\u0435 \u0432\u0438\u0434\u0435\u043d IP-\u0430\u0434\u0440\u0435\u0441, \u0432\u044b\u0434\u0430\u043d\u043d\u044b\u0439 \u044d\u0442\u043e\u043c\u0443 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0443 \u2014&nbsp;<code>172.17.0.2<\/code>. \u0418\u043c\u0435\u043d\u043d\u043e \u044d\u0442\u043e\u0442 \u0430\u0434\u0440\u0435\u0441 \u043c\u044b \u0438 \u0438\u0441\u043a\u0430\u043b\u0438? \u0414\u0430\u0432\u0430\u0439\u0442\u0435 \u043f\u0440\u043e\u0432\u0435\u0440\u0438\u043c: \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u043c Flask-\u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u0438 \u043f\u043e\u043f\u0440\u043e\u0431\u0443\u0435\u043c \u043e\u0431\u0440\u0430\u0442\u0438\u0442\u044c\u0441\u044f \u043a \u043d\u0435\u043c\u0443 \u043f\u043e IP:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>$ docker run -it --rm prakhar1989\/foodtrucks-web bash<br>root@35180ccc206a:\/opt\/flask-app# curl 172.17.0.2:9200<br>bash: curl: command not found<br>root@35180ccc206a:\/opt\/flask-app# apt-get -yqq install curl<br>root@35180ccc206a:\/opt\/flask-app# curl 172.17.0.2:9200<br>{<br>  \"name\" : \"Jane Foster\",<br>  \"cluster_name\" : \"elasticsearch\",<br>  \"version\" : {<br>    \"number\" : \"2.1.1\",<br>    \"build_hash\" : \"40e2c53a6b6c2972b3d13846e450e66f4375bd71\",<br>    \"build_timestamp\" : \"2015-12-15T13:05:55Z\",<br>    \"build_snapshot\" : false,<br>    \"lucene_version\" : \"5.3.1\"<br>  },<br>  \"tagline\" : \"You Know, for Search\"<br>}<br>root@35180ccc206a:\/opt\/flask-app# exit<br><\/code><\/pre>\n\n\n\n<p>\u0421\u0435\u0439\u0447\u0430\u0441 \u0432\u0441\u0435 \u0434\u043e\u043b\u0436\u043d\u043e \u0431\u044b\u0442\u044c \u043f\u043e\u043d\u044f\u0442\u043d\u043e. \u041c\u044b \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u043b\u0438 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440 \u0432 \u0438\u043d\u0442\u0435\u0440\u0430\u043a\u0442\u0438\u0432\u043d\u043e\u043c \u0440\u0435\u0436\u0438\u043c\u0435 \u0441 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u043c&nbsp;<code>bash<\/code>. \u0424\u043b\u0430\u0433&nbsp;<code>--rm<\/code>&nbsp;\u043d\u0443\u0436\u0435\u043d \u0434\u043b\u044f \u0443\u0434\u043e\u0431\u0441\u0442\u0432\u0430, \u0431\u043b\u0430\u0433\u043e\u0434\u0430\u0440\u044f \u043d\u0435\u043c\u0443 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u0443\u0434\u0430\u043b\u044f\u0435\u0442\u0441\u044f \u043f\u043e\u0441\u043b\u0435 \u0432\u044b\u0445\u043e\u0434\u0430. \u041c\u044b \u043f\u043e\u043f\u0440\u043e\u0431\u0443\u0435\u043c&nbsp;<code>curl<\/code>, \u043d\u043e \u043d\u0443\u0436\u043d\u043e \u0441\u043d\u0430\u0447\u0430\u043b\u0430 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c \u0435\u0433\u043e. \u041f\u043e\u0441\u043b\u0435 \u044d\u0442\u043e\u0433\u043e \u043c\u043e\u0436\u043d\u043e \u0443\u0434\u043e\u0441\u0442\u043e\u0432\u0435\u0440\u0438\u0442\u044c\u0441\u044f, \u0447\u0442\u043e \u043f\u043e \u0430\u0434\u0440\u0435\u0441\u0443&nbsp;<code>172.17.0.2:9200<\/code>&nbsp;\u043d\u0430 \u0441\u0430\u043c\u043e\u043c \u0434\u0435\u043b\u0435 \u043c\u043e\u0436\u043d\u043e \u043e\u0431\u0440\u0430\u0449\u0430\u0442\u044c\u0441\u044f \u043a ES! \u0421\u0443\u043f\u0435\u0440!<\/p>\n\n\n\n<p>\u041d\u0435 \u0441\u043c\u043e\u0442\u0440\u044f \u043d\u0430 \u0442\u043e, \u0447\u0442\u043e \u043c\u044b \u043d\u0430\u0448\u043b\u0438 \u0441\u043f\u043e\u0441\u043e\u0431 \u043d\u0430\u043b\u0430\u0434\u0438\u0442\u044c \u0441\u0432\u044f\u0437\u044c \u043c\u0435\u0436\u0434\u0443 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0430\u043c\u0438, \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043f\u0440\u043e\u0431\u043b\u0435\u043c \u0441 \u044d\u0442\u0438\u043c \u043f\u043e\u0434\u0445\u043e\u0434\u043e\u043c:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>\u041f\u0440\u0438\u0434\u0435\u0442\u0441\u044f \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0442\u044c \u0437\u0430\u043f\u0438\u0441\u0438 \u0432 \u0444\u0430\u0439\u043b\u00a0<code>\/etc\/hosts<\/code>\u00a0\u0432\u043d\u0443\u0442\u0440\u0438 Flask-\u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0430, \u0447\u0442\u043e\u0431\u044b \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u043f\u043e\u043d\u0438\u043c\u0430\u043b\u043e, \u0447\u0442\u043e \u0438\u043c\u044f \u0445\u043e\u0441\u0442\u0430\u00a0<code>es<\/code>\u00a0\u043e\u0437\u043d\u0430\u0447\u0430\u0435\u0442\u00a0<code>172.17.0.2<\/code>. \u0415\u0441\u043b\u0438 IP-\u0430\u0434\u0440\u0435\u0441 \u043c\u0435\u043d\u044f\u0435\u0442\u0441\u044f, \u0442\u043e \u043f\u0440\u0438\u0434\u0435\u0442\u0441\u044f \u0432\u0440\u0443\u0447\u043d\u0443\u044e \u043c\u0435\u043d\u044f\u0442\u044c \u0437\u0430\u043f\u0438\u0441\u044c.<\/li>\n\n\n\n<li>\u0422\u0430\u043a \u043a\u0430\u043a \u0441\u0435\u0442\u044c\u00a0<em>bridge<\/em>\u00a0\u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0432\u0441\u0435\u043c\u0438 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0430\u043c\u0438 \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e, \u044d\u0442\u043e\u0442 \u043c\u0435\u0442\u043e\u0434\u00a0<strong>\u043d\u0435 \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u0435\u043d<\/strong>.<\/li>\n<\/ol>\n\n\n\n<p>\u041d\u043e \u0435\u0441\u0442\u044c \u0445\u043e\u0440\u043e\u0448\u0438\u0435 \u043d\u043e\u0432\u043e\u0441\u0442\u0438: \u0432 \u0414\u043e\u043a\u0435\u0440\u0435 \u0435\u0441\u0442\u044c \u043e\u0442\u043b\u0438\u0447\u043d\u043e\u0435 \u0440\u0435\u0448\u0435\u043d\u0438\u0435 \u044d\u0442\u043e\u0439 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u044b. \u0414\u043e\u043a\u0435\u0440 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0441\u043e\u0437\u0434\u0430\u0432\u0430\u0442\u044c \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0435 \u0438\u0437\u043e\u043b\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0435 \u0441\u0435\u0442\u0438. \u042d\u0442\u043e \u0440\u0435\u0448\u0435\u043d\u0438\u0435 \u0442\u0430\u043a\u0436\u0435 \u043f\u043e\u043c\u043e\u0433\u0430\u0435\u0442 \u0441\u043f\u0440\u0430\u0432\u0438\u0442\u044c\u0441\u044f \u0441 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u043e\u0439&nbsp;<code>\/etc\/hosts<\/code>, \u0441\u0435\u0439\u0447\u0430\u0441 \u0443\u0432\u0438\u0434\u0438\u043c \u043a\u0430\u043a.<\/p>\n\n\n\n<p>\u0412\u043e-\u043f\u0435\u0440\u0432\u044b\u0445, \u0434\u0430\u0432\u0430\u0439\u0442\u0435 \u0441\u043e\u0437\u0434\u0430\u0434\u0438\u043c \u0441\u0432\u043e\u044e \u0441\u0435\u0442\u044c:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>$ docker network create foodtrucks<br>1a3386375797001999732cb4c4e97b88172d983b08cd0addfcb161eed0c18d89<br><br>$ docker network ls<br>NETWORK ID          NAME                DRIVER<br>1a3386375797        foodtrucks          bridge<br>8022115322ec        bridge              bridge<br>075b9f628ccc        none                null<br>be0f7178486c        host                host<br><\/code><\/pre>\n\n\n\n<p>\u041a\u043e\u043c\u0430\u043d\u0434\u0430&nbsp;<code>network create<\/code>&nbsp;\u0441\u043e\u0437\u0434\u0430\u0435\u0442 \u043d\u043e\u0432\u0443\u044e \u0441\u0435\u0442\u044c&nbsp;<em>bridge<\/em>. \u041d\u0430\u043c \u0441\u0435\u0439\u0447\u0430\u0441 \u043d\u0443\u0436\u0435\u043d \u0438\u043c\u0435\u043d\u043d\u043e \u0442\u0430\u043a\u043e\u0439 \u0442\u0438\u043f. \u0421\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0442 \u0434\u0440\u0443\u0433\u0438\u0435 \u0442\u0438\u043f\u044b \u0441\u0435\u0442\u0435\u0439, \u0438 \u0432\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u043f\u043e\u0447\u0438\u0442\u0430\u0442\u044c \u043e \u043d\u0438\u0445 \u0432&nbsp;<a href=\"https:\/\/docs.docker.com\/engine\/userguide\/networking\/dockernetworks\/\" target=\"_blank\" rel=\"noreferrer noopener\">\u043e\u0444\u0438\u0446\u0438\u0430\u043b\u044c\u043d\u043e\u0439 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0438<\/a>.<\/p>\n\n\n\n<p>\u0422\u0435\u043f\u0435\u0440\u044c \u0443 \u043d\u0430\u0441 \u0435\u0441\u0442\u044c \u0441\u0435\u0442\u044c. \u041c\u043e\u0436\u043d\u043e \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c \u043d\u0430\u0448\u0438 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u044b \u0432\u043d\u0443\u0442\u0440\u0438 \u0441\u0435\u0442\u0438 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0444\u043b\u0430\u0433\u0430&nbsp;<code>--net<\/code>. \u0414\u0430\u0432\u0430\u0439\u0442\u0435 \u0442\u0430\u043a \u0438 \u0441\u0434\u0435\u043b\u0430\u0435\u043c, \u043d\u043e \u0441\u043d\u0430\u0447\u0430\u043b\u0430 \u043e\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u043c \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440 \u0441 ElasticSearch, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0431\u044b\u043b \u0437\u0430\u043f\u0443\u0449\u0435\u043d \u0432 \u0441\u0435\u0442\u0438 bridge \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>$ docker ps<br>CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                              NAMES<br>e931ab24dedc        elasticsearch       \"\/docker-entrypoint.s\"   4 hours ago         Up 4 hours          0.0.0.0:9200-&gt;9200\/tcp, 9300\/tcp   cocky_spence<br><br>$ docker stop e931ab24dedc<br>e931ab24dedc<br><br>$ docker run -dp 9200:9200 --net foodtrucks --name es elasticsearch<br>2c0b96f9b8030f038e40abea44c2d17b0a8edda1354a08166c33e6d351d0c651<br><br>$ docker network inspect foodtrucks<br>&#91;<br>    {<br>        \"Name\": \"foodtrucks\",<br>        \"Id\": \"1a3386375797001999732cb4c4e97b88172d983b08cd0addfcb161eed0c18d89\",<br>        \"Scope\": \"local\",<br>        \"Driver\": \"bridge\",<br>        \"IPAM\": {<br>            \"Driver\": \"default\",<br>            \"Config\": &#91;<br>                {}<br>            ]<br>        },<br>        \"Containers\": {<br>            \"2c0b96f9b8030f038e40abea44c2d17b0a8edda1354a08166c33e6d351d0c651\": {<br>                \"EndpointID\": \"15eabc7989ef78952fb577d0013243dae5199e8f5c55f1661606077d5b78e72a\",<br>                \"MacAddress\": \"02:42:ac:12:00:02\",<br>                \"IPv4Address\": \"172.18.0.2\/16\",<br>                \"IPv6Address\": \"\"<br>            }<br>        },<br>        \"Options\": {}<br>    }<br>]<br><\/code><\/pre>\n\n\n\n<p>\u041c\u044b \u0441\u0434\u0435\u043b\u0430\u043b\u0438 \u0442\u043e \u0436\u0435, \u0447\u0442\u043e \u0438 \u0440\u0430\u043d\u044c\u0448\u0435, \u043d\u043e \u043d\u0430 \u044d\u0442\u043e\u0442 \u0440\u0430\u0437 \u0434\u0430\u043b\u0438 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0443 \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435&nbsp;<code>es<\/code>. \u041f\u0435\u0440\u0435\u0434 \u0442\u0435\u043c, \u043a\u0430\u043a \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0442\u044c \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440 \u0441 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435\u043c, \u0434\u0430\u0432\u0430\u0439\u0442\u0435 \u043f\u0440\u043e\u0432\u0435\u0440\u0438\u043c \u0447\u0442\u043e \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442, \u043a\u043e\u0433\u0434\u0430 \u0437\u0430\u043f\u0443\u0441\u043a \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u0432 \u0441\u0435\u0442\u0438.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>$ docker run -it --rm --net foodtrucks prakhar1989\/foodtrucks-web bash<br>root@53af252b771a:\/opt\/flask-app# cat \/etc\/hosts<br>172.18.0.3  53af252b771a<br>127.0.0.1   localhost<br>::1 localhost ip6-localhost ip6-loopback<br>fe00::0 ip6-localnet<br>ff00::0 ip6-mcastprefix<br>ff02::1 ip6-allnodes<br>ff02::2 ip6-allrouters<br>172.18.0.2  es<br>172.18.0.2  es.foodtrucks<br><br>root@53af252b771a:\/opt\/flask-app# curl es:9200<br>bash: curl: command not found<br>root@53af252b771a:\/opt\/flask-app# apt-get -yqq install curl<br>root@53af252b771a:\/opt\/flask-app# curl es:9200<br>{<br>  \"name\" : \"Doctor Leery\",<br>  \"cluster_name\" : \"elasticsearch\",<br>  \"version\" : {<br>    \"number\" : \"2.1.1\",<br>    \"build_hash\" : \"40e2c53a6b6c2972b3d13846e450e66f4375bd71\",<br>    \"build_timestamp\" : \"2015-12-15T13:05:55Z\",<br>    \"build_snapshot\" : false,<br>    \"lucene_version\" : \"5.3.1\"<br>  },<br>  \"tagline\" : \"You Know, for Search\"<br>}<br>root@53af252b771a:\/opt\/flask-app# ls<br>app.py  node_modules  package.json  requirements.txt  static  templates  webpack.config.js<br>root@53af252b771a:\/opt\/flask-app# python app.py<br>Index not found...<br>Loading data <strong>in<\/strong> elasticsearch ...<br>Total trucks loaded:  733<br> * Running on http:\/\/0.0.0.0:5000\/ (Press CTRL+C to quit)<br>root@53af252b771a:\/opt\/flask-app# exit<br><\/code><\/pre>\n\n\n\n<p>\u0423\u0440\u0430! \u0420\u0430\u0431\u043e\u0442\u0430\u0435\u0442! \u041c\u0430\u0433\u0438\u0447\u0435\u0441\u043a\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c \u0414\u043e\u043a\u0435\u0440 \u0432\u043d\u0435\u0441 \u043d\u0443\u0436\u043d\u044b\u0435 \u043f\u0440\u0430\u0432\u043a\u0438 \u0432 \u0444\u0430\u0439\u043b&nbsp;<code>\/etc\/hosts<\/code>, \u0438 \u043f\u043e\u044d\u0442\u043e\u043c\u0443&nbsp;<code>es:9200<\/code>&nbsp;\u043c\u043e\u0436\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0432 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0438 \u2014 \u044d\u0442\u043e\u0442 \u0430\u0434\u0440\u0435\u0441 \u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u043e \u043d\u0430\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u0442 \u0437\u0430\u043f\u0440\u043e\u0441\u044b \u0432 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440 ES. \u041e\u0442\u043b\u0438\u0447\u043d\u043e! \u0414\u0430\u0432\u0430\u0439\u0442\u0435 \u0442\u0435\u043f\u0435\u0440\u044c \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u043c Flask-\u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440 \u043f\u043e-\u043d\u0430\u0441\u0442\u043e\u044f\u0449\u0435\u043c\u0443:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>$ docker run -d --net foodtrucks -p 5000:5000 --name foodtrucks-web prakhar1989\/foodtrucks-web<br>2a1b77e066e646686f669bab4759ec1611db359362a031667cacbe45c3ddb413<br><br>$ docker ps<br>CONTAINER ID        IMAGE                        COMMAND                  CREATED             STATUS              PORTS                              NAMES<br>2a1b77e066e6        prakhar1989\/foodtrucks-web   \"python .\/app.py\"        2 seconds ago       Up 1 seconds        0.0.0.0:5000-&gt;5000\/tcp             foodtrucks-web<br>2c0b96f9b803        elasticsearch                \"\/docker-entrypoint.s\"   21 minutes ago      Up 21 minutes       0.0.0.0:9200-&gt;9200\/tcp, 9300\/tcp   es<br><br>$ curl -I 0.0.0.0:5000<br>HTTP\/1.0 200 OK<br>Content-Type: text\/html; charset=utf-8<br>Content-Length: 3697<br>Server: Werkzeug\/0.11.2 Python\/2.7.6<br>Date: Sun, 10 Jan 2016 23:58:53 GMT<br><\/code><\/pre>\n\n\n\n<p>\u0417\u0430\u0439\u0434\u0438\u0442\u0435 \u043d\u0430&nbsp;<a href=\"http:\/\/0.0.0.0:5000\/\" target=\"_blank\" rel=\"noreferrer noopener\">http:\/\/0.0.0.0:5000<\/a>, \u0438 \u0443\u0432\u0438\u0434\u0438\u0442\u0435 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u0432 \u0440\u0430\u0431\u043e\u0442\u0435. \u041e\u043f\u044f\u0442\u044c \u0436\u0435, \u043c\u043e\u0436\u0435\u0442 \u043f\u043e\u043a\u0430\u0437\u0430\u0442\u044c\u0441\u044f, \u0447\u0442\u043e \u0431\u044b\u043b\u043e \u043c\u043d\u043e\u0433\u043e \u0440\u0430\u0431\u043e\u0442\u044b, \u043d\u043e \u043d\u0430 \u0441\u0430\u043c\u043e\u043c \u0434\u0435\u043b\u0435 \u043c\u044b \u0432\u0432\u0435\u043b\u0438 \u0432\u0441\u0435\u0433\u043e 4 \u043a\u043e\u043c\u0430\u043d\u0434\u044b \u0447\u0442\u043e\u0431\u044b \u0441 \u043d\u0443\u043b\u044f \u0434\u043e\u0439\u0442\u0438 \u0434\u043e \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0449\u0435\u0433\u043e \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f. \u042f \u0441\u043e\u0431\u0440\u0430\u043b \u044d\u0442\u0438 \u043a\u043e\u043c\u0430\u043d\u0434\u044b \u0432&nbsp;<a href=\"https:\/\/github.com\/prakhar1989\/FoodTrucks\/blob\/master\/setup-docker.sh\" target=\"_blank\" rel=\"noreferrer noopener\">bash-\u0441\u043a\u0440\u0438\u043f\u0442<\/a>.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>#!\/bin\/bash<br><br># build the flask container<br>docker build -t prakhar1989\/foodtrucks-web .<br><br># create the network<br>docker network create foodtrucks<br><br># start the ES container<br>docker run -d --net foodtrucks -p 9200:9200 -p 9300:9300 --name es elasticsearch<br><br># start the flask app container<br>docker run -d --net foodtrucks -p 5000:5000 --name foodtrucks-web prakhar1989\/foodtrucks-web<br><\/code><\/pre>\n\n\n\n<p>\u0422\u0435\u043f\u0435\u0440\u044c \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u044c\u0442\u0435, \u0447\u0442\u043e \u0445\u043e\u0442\u0438\u0442\u0435 \u043f\u043e\u0434\u0435\u043b\u0438\u0442\u044c\u0441\u044f \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435\u043c \u0441 \u0434\u0440\u0443\u0433\u043e\u043c. \u0418\u043b\u0438 \u0445\u043e\u0442\u0438\u0442\u0435 \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c \u043d\u0430 \u0441\u0435\u0440\u0432\u0435\u0440\u0435, \u0433\u0434\u0435 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d \u0414\u043e\u043a\u0435\u0440. \u041c\u043e\u0436\u043d\u043e \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c \u0432\u0441\u044e \u0441\u0438\u0441\u0442\u0435\u043c\u0443 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u043e\u0434\u043d\u043e\u0439 \u043a\u043e\u043c\u0430\u043d\u0434\u044b!<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>$ git clone https:\/\/github.com\/prakhar1989\/FoodTrucks<br>$ cd FoodTrucks<br>$ .\/setup-docker.sh<br><\/code><\/pre>\n\n\n\n<p>\u0412\u043e\u0442 \u0438 \u0432\u0441\u0435! \u041f\u043e-\u043c\u043e\u0435\u043c\u0443, \u044d\u0442\u043e \u043d\u0435\u0432\u0435\u0440\u043e\u044f\u0442\u043d\u043e \u043a\u0440\u0443\u0442\u043e\u0439 \u0438 \u043c\u043e\u0449\u043d\u044b\u0439 \u0441\u043f\u043e\u0441\u043e\u0431 \u0440\u0430\u0441\u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u044f\u0442\u044c \u0438 \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0442\u044c \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f!<\/p>\n\n\n\n<h5 class=\"wp-block-heading\">Docker Links<\/h5>\n\n\n\n<p>\u041f\u0435\u0440\u0435\u0434 \u0442\u0435\u043c, \u043a\u0430\u043a \u0437\u0430\u0432\u0435\u0440\u0448\u0438\u0442\u044c \u044d\u0442\u043e\u0442 \u0440\u0430\u0437\u0434\u0435\u043b, \u0441\u0442\u043e\u0438\u0442 \u043e\u0442\u043c\u0435\u0442\u0438\u0442\u044c, \u0447\u0442\u043e&nbsp;<code>docker network<\/code>&nbsp;\u044d\u0442\u043e \u043e\u0442\u043d\u043e\u0441\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u043d\u043e\u0432\u0430\u044f \u0444\u0438\u0447\u0430, \u043e\u043d\u0430 \u0432\u0445\u043e\u0434\u0438\u0442 \u0432&nbsp;<a href=\"https:\/\/blog.docker.com\/2015\/11\/docker-1-9-production-ready-swarm-multi-host-networking\/\" target=\"_blank\" rel=\"noreferrer noopener\">\u0440\u0435\u043b\u0438\u0437<\/a>&nbsp;Docker 1.9&nbsp;.<\/p>\n\n\n\n<p>\u0414\u043e \u0442\u043e\u0433\u043e, \u043a\u0430\u043a \u043f\u043e\u044f\u0432\u0438\u043b\u0441\u044f\u00a0<code>network<\/code>, \u0441\u0441\u044b\u043b\u043a\u0438 \u0431\u044b\u043b\u0438 \u0434\u043e\u043f\u0443\u0441\u0442\u0438\u043c\u044b\u043c \u0441\u043f\u043e\u0441\u043e\u0431\u043e\u043c \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u0432\u0437\u0430\u0438\u043c\u043e\u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044f \u043c\u0435\u0436\u0434\u0443 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0430\u043c\u0438. \u0412 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0438\u0438 \u0441 \u043e\u0444\u0438\u0446\u0438\u0430\u043b\u044c\u043d\u043e\u0439\u00a0<a href=\"https:\/\/docs.docker.com\/engine\/userguide\/networking\/default_network\/dockerlinks\/\" target=\"_blank\" rel=\"noreferrer noopener\">\u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0435\u0439<\/a>, linking \u0432\u0441\u043a\u043e\u0440\u0435 \u0431\u0443\u0434\u0435\u0442 \u043f\u0435\u0440\u0435\u0432\u0435\u0434\u0435\u043d\u044b \u0432 \u0441\u0442\u0430\u0442\u0443\u0441 deprecated. \u0415\u0441\u043b\u0438 \u0432\u0430\u043c \u043f\u043e\u043f\u0430\u0434\u0435\u0442\u0441\u044f \u0442\u0443\u0442\u043e\u0440\u0438\u0430\u043b \u0438\u043b\u0438 \u0441\u0442\u0430\u0442\u044c\u044f, \u0433\u0434\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f\u00a0<code>link<\/code>\u00a0\u0434\u043b\u044f \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u044f \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u043e\u0432, \u0442\u043e \u043f\u0440\u043e\u0441\u0442\u043e \u043d\u0435 \u0437\u0430\u0431\u044b\u0432\u0430\u0439\u0442\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0432\u043c\u0435\u0441\u0442\u043e \u044d\u0442\u043e\u0433\u043e\u00a0<code>network<\/code>\u00a0(\u043d\u0430 \u043c\u043e\u043c\u0435\u043d\u0442 \u043f\u0443\u0431\u043b\u0438\u043a\u0430\u0446\u0438\u0438 \u043f\u0435\u0440\u0435\u0432\u043e\u0434\u0430 links \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f legacy, \u2014 \u043f\u0440\u0438\u043c. \u043f\u0435\u0440.)<a target=\"_blank\" rel=\"noreferrer noopener\"><\/a><\/p>\n\n\n\n<h3 class=\"wp-block-heading\">3.3 Docker Compose<\/h3>\n\n\n\n<p>\u0414\u043e \u044d\u0442\u043e\u0433\u043e \u043c\u043e\u043c\u0435\u043d\u0442\u0430 \u043c\u044b \u0438\u0437\u0443\u0447\u0430\u043b\u0438 \u043a\u043b\u0438\u0435\u043d\u0442 \u0414\u043e\u043a\u0435\u0440\u0430. \u041d\u043e \u0432 \u044d\u043a\u043e\u0441\u0438\u0441\u0442\u0435\u043c\u0435 \u0414\u043e\u043a\u0435\u0440\u0430 \u0435\u0441\u0442\u044c \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0434\u0440\u0443\u0433\u0438\u0445 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u043e\u0432 \u0441 \u043e\u0442\u043a\u0440\u044b\u0442\u044b\u043c \u0438\u0441\u0445\u043e\u0434\u043d\u044b\u043c \u043a\u043e\u0434\u043e\u043c, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0445\u043e\u0440\u043e\u0448\u043e \u0432\u0437\u0430\u0438\u043c\u043e\u0434\u0435\u0439\u0441\u0442\u0432\u0443\u044e\u0442 \u0441 \u0414\u043e\u043a\u0435\u0440\u043e\u043c. \u041d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0438\u0437 \u043d\u0438\u0445 \u044d\u0442\u043e:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li><a href=\"https:\/\/docs.docker.com\/machine\/\" target=\"_blank\" rel=\"noreferrer noopener\">Docker Machine<\/a>\u00a0\u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0441\u043e\u0437\u0434\u0430\u0432\u0430\u0442\u044c \u0414\u043e\u043a\u0435\u0440-\u0445\u043e\u0441\u0442\u044b \u043d\u0430 \u0441\u0432\u043e\u0435\u043c \u043a\u043e\u043c\u043f\u044c\u044e\u0442\u0435\u0440\u0435, \u043e\u0431\u043b\u0430\u0447\u043d\u043e\u043c \u043f\u0440\u043e\u0432\u0430\u0439\u0434\u0435\u0440\u0435 \u0438\u043b\u0438 \u0432\u043d\u0443\u0442\u0440\u0438 \u0434\u0430\u0442\u0430-\u0446\u0435\u043d\u0442\u0440\u0430.<\/li>\n\n\n\n<li><a href=\"https:\/\/docs.docker.com\/compose\/\" target=\"_blank\" rel=\"noreferrer noopener\">Docker Compose<\/a>\u00a0\u2014 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442 \u0434\u043b\u044f \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u044f \u0438 \u0437\u0430\u043f\u0443\u0441\u043a\u0430 \u043c\u043d\u043e\u0433\u043e-\u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u043d\u044b\u0445 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439.<\/li>\n\n\n\n<li><a href=\"https:\/\/docs.docker.com\/swarm\/\" target=\"_blank\" rel=\"noreferrer noopener\">Docker Swarm<\/a>\u00a0\u2014 \u043d\u0430\u0442\u0438\u0432\u043d\u043e\u0435 \u0440\u0435\u0448\u0435\u043d\u0438\u0435 \u0434\u043b\u044f \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0438\u0437\u0430\u0446\u0438\u0438.<\/li>\n<\/ol>\n\n\n\n<p>\u0412 \u044d\u0442\u043e\u043c \u0440\u0430\u0437\u0434\u0435\u043b\u0435 \u043c\u044b \u043f\u043e\u0433\u043e\u0432\u043e\u0440\u0438\u043c \u043e\u0431 \u043e\u0434\u043d\u043e\u043c \u0438\u0437 \u044d\u0442\u0438\u0445 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u043e\u0432 \u2014 Docker Compose, \u0438 \u0443\u0437\u043d\u0430\u0435\u043c, \u043a\u0430\u043a \u043e\u043d \u043c\u043e\u0436\u0435\u0442 \u0443\u043f\u0440\u043e\u0441\u0442\u0438\u0442\u044c \u0440\u0430\u0431\u043e\u0442\u0443 \u0441 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u0438\u043c\u0438 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0430\u043c\u0438.<\/p>\n\n\n\n<p>\u0423 Docker Compose \u0434\u043e\u0432\u043e\u043b\u044c\u043d\u043e \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u0430\u044f \u043f\u0440\u0435\u0434\u044b\u0441\u0442\u043e\u0440\u0438\u044f. \u041f\u0440\u0438\u043c\u0435\u0440\u043d\u043e \u0434\u0432\u0430 \u0433\u043e\u0434\u0430 \u043d\u0430\u0437\u0430\u0434 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u044f OrchardUp \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u043b\u0430 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442 \u043f\u043e\u0434 \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435\u043c Fig. \u0418\u0434\u0435\u044f \u0431\u044b\u043b\u0430 \u0432 \u0442\u043e\u043c, \u0447\u0442\u043e\u0431\u044b \u0441\u043e\u0437\u0434\u0430\u0432\u0430\u0442\u044c \u0438\u0437\u043e\u043b\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0435 \u0440\u0430\u0431\u043e\u0447\u0438\u0435 \u043e\u043a\u0440\u0443\u0436\u0435\u043d\u0438\u044f \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0414\u043e\u043a\u0435\u0440\u0430. \u041f\u0440\u043e\u0435\u043a\u0442 \u043e\u0447\u0435\u043d\u044c \u0445\u043e\u0440\u043e\u0448\u043e \u0432\u043e\u0441\u043f\u0440\u0438\u043d\u044f\u043b\u0438 \u043d\u0430&nbsp;<a href=\"https:\/\/news.ycombinator.com\/item?id=7132044\" target=\"_blank\" rel=\"noreferrer noopener\">Hacker News<\/a>&nbsp;&#8212; \u044f \u0441\u043c\u0443\u0442\u043d\u043e \u043f\u043e\u043c\u043d\u044e, \u0447\u0442\u043e \u0447\u0438\u0442\u0430\u043b \u043e \u043d\u0435\u043c, \u043d\u043e \u043d\u0435 \u043e\u0441\u043e\u0431\u043e \u043f\u043e\u043d\u044f\u043b \u0435\u0433\u043e \u0441\u043c\u044b\u0441\u043b\u0430.<\/p>\n\n\n\n<p><a href=\"https:\/\/news.ycombinator.com\/item?id=7133449\" target=\"_blank\" rel=\"noreferrer noopener\">\u041f\u0435\u0440\u0432\u044b\u0439 \u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u0439<\/a>&nbsp;\u043d\u0430 \u0441\u0430\u043c\u043e\u043c \u0434\u0435\u043b\u0435 \u043d\u0435\u043f\u043b\u043e\u0445\u043e \u043e\u0431\u044a\u044f\u0441\u043d\u044f\u0435\u0442, \u0437\u0430\u0447\u0435\u043c \u043d\u0443\u0436\u0435\u043d Fig \u0438 \u0447\u0442\u043e \u043e\u043d \u0434\u0435\u043b\u0430\u0435\u0442:<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p>\u041d\u0430 \u0441\u0430\u043c\u043e\u043c \u0434\u0435\u043b\u0435, \u0441\u043c\u044b\u0441\u043b \u0414\u043e\u043a\u0435\u0440\u0430 \u0432 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u043c: \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0442\u044c \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u044b. \u0421\u0435\u0433\u043e\u0434\u043d\u044f \u0443 \u0414\u043e\u043a\u0435\u0440\u0430 \u0435\u0441\u0442\u044c \u043d\u0435\u043f\u043b\u043e\u0445\u043e\u0435 API \u0434\u043b\u044f \u0437\u0430\u043f\u0443\u0441\u043a\u0430 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0432: \u0440\u0430\u0441\u0448\u0430\u0440\u0435\u043d\u043d\u044b\u0435 \u043c\u0435\u0436\u0434\u0443 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0430\u043c\u0438 (\u0438\u043d\u044b\u043c\u0438 \u0441\u043b\u043e\u0432\u0430\u043c\u0438, \u0437\u0430\u043f\u0443\u0449\u0435\u043d\u043d\u044b\u043c\u0438 \u043e\u0431\u0440\u0430\u0437\u0430\u043c\u0438) \u0440\u0430\u0437\u0434\u0435\u043b\u044b \u0438\u043b\u0438 \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u0438 (shared volumes), \u043f\u0435\u0440\u0435\u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u043f\u043e\u0440\u0442\u043e\u0432 \u0441 \u0445\u043e\u0441\u0442-\u043c\u0430\u0448\u0438\u043d\u044b \u0432 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440, \u0432\u044b\u0432\u043e\u0434 \u043b\u043e\u0433\u043e\u0432, \u0438 \u0442\u0430\u043a \u0434\u0430\u043b\u0435\u0435. \u041d\u043e \u0431\u043e\u043b\u044c\u0448\u0435 \u043d\u0438\u0447\u0435\u0433\u043e: \u0414\u043e\u043a\u0435\u0440 \u0441\u0435\u0439\u0447\u0430\u0441 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u0442\u043e\u043b\u044c\u043a\u043e \u043d\u0430 \u0443\u0440\u043e\u0432\u043d\u0435 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0432.<br>\u041d\u0435 \u0441\u043c\u043e\u0442\u0440\u044f \u043d\u0430 \u0442\u043e, \u0447\u0442\u043e \u0432 \u043d\u0435\u043c \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0442\u0441\u044f \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0438 \u043e\u0440\u043a\u0435\u0441\u0442\u0440\u0430\u0446\u0438\u0438 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u0438\u0445 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u043e\u0432 \u0434\u043b\u044f \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u0435\u0434\u0438\u043d\u043e\u0433\u043e &#171;\u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f&#187;, \u0432 \u0414\u043e\u043a\u0435\u0440\u0435 \u043d\u0435\u0442 \u043d\u0438\u0447\u0435\u0433\u043e, \u0447\u0442\u043e \u043f\u043e\u043c\u043e\u0433\u0430\u043b\u043e \u0431\u044b \u0441 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435\u043c \u0442\u0430\u043a\u0438\u043c\u0438 \u0433\u0440\u0443\u043f\u043f\u0430\u043c\u0438 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u043e\u0432 \u043a\u0430\u043a \u043e\u0434\u043d\u043e\u0439 \u0441\u0443\u0449\u043d\u043e\u0441\u0442\u044c\u044e. \u0418 \u0432\u043e\u0442 \u0437\u0430\u0447\u0435\u043c \u043d\u0443\u0436\u0435\u043d \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442 \u0432\u0440\u043e\u0434\u0435 Fig: \u0447\u0442\u043e\u0431\u044b \u043e\u0431\u0440\u0430\u0449\u0430\u0442\u044c\u0441\u044f \u0441 \u0433\u0440\u0443\u043f\u043f\u043e\u0439 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u043e\u0432 \u043a\u0430\u043a \u0441 \u0435\u0434\u0438\u043d\u043e\u0439 \u0441\u0443\u0449\u043d\u043e\u0441\u0442\u044c\u044e. \u0427\u0442\u043e\u0431\u044b \u0434\u0443\u043c\u0430\u0442\u044c \u043e &#171;\u0437\u0430\u043f\u0443\u0441\u043a\u0435 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439&#187; (\u0438\u043d\u044b\u043c\u0438 \u0441\u043b\u043e\u0432\u0430\u043c\u0438, &#171;\u0437\u0430\u043f\u0443\u0441\u043a\u0435 \u043e\u0440\u043a\u0435\u0441\u0442\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u0433\u043e \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0430 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u043e\u0432&#187;) \u0432\u043c\u0435\u0441\u0442\u043e &#171;\u0437\u0430\u043f\u0443\u0441\u043a\u0430 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u043e\u0432&#187;.<\/p>\n<\/blockquote>\n\n\n\n<p>\u041e\u043a\u0430\u0437\u0430\u043b\u043e\u0441\u044c, \u0447\u0442\u043e \u043c\u043d\u043e\u0433\u0438\u0435 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0438 \u0414\u043e\u043a\u0435\u0440\u0430 \u0441\u043e\u0433\u043b\u0430\u0441\u043d\u044b \u0441 \u0442\u0430\u043a\u0438\u043c\u0438 \u043c\u044b\u0441\u043b\u044f\u043c\u0438. \u041f\u043e\u0441\u0442\u0435\u043f\u0435\u043d\u043d\u043e, Fig \u043d\u0430\u0431\u0440\u0430\u043b \u043f\u043e\u043f\u0443\u043b\u044f\u0440\u043d\u043e\u0441\u0442\u044c, Docker Inc. \u0437\u0430\u043c\u0435\u0442\u0438\u043b\u0438, \u043a\u0443\u043f\u0438\u043b\u0438 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u044e \u0438 \u043d\u0430\u0437\u0432\u0430\u043b\u0438 \u043f\u0440\u043e\u0435\u043a\u0442 Docker Compose.<\/p>\n\n\n\n<p>\u0418\u0442\u0430\u043a, \u0437\u0430\u0447\u0435\u043c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f&nbsp;<em>Compose<\/em>? \u042d\u0442\u043e \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442 \u0434\u043b\u044f \u043f\u0440\u043e\u0441\u0442\u043e\u0433\u043e \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u044f \u0438 \u0437\u0430\u043f\u0443\u0441\u043a\u0430 \u043c\u043d\u043e\u0433\u043e\u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u043d\u044b\u0445 \u0414\u043e\u043a\u0435\u0440-\u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439. \u0412 \u043d\u0435\u043c \u0435\u0441\u0442\u044c \u0444\u0430\u0439\u043b&nbsp;<code>docker-compose.yml<\/code>, \u0438 \u0441 \u0435\u0433\u043e \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u043c\u043e\u0436\u043d\u043e \u043e\u0434\u043d\u043e\u0439 \u043a\u043e\u043c\u0430\u043d\u0434\u043e\u0439 \u043f\u043e\u0434\u043d\u044f\u0442\u044c \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u0441 \u043d\u0430\u0431\u043e\u0440\u043e\u043c \u0441\u0435\u0440\u0432\u0438\u0441\u043e\u0432.<\/p>\n\n\n\n<p>\u0414\u0430\u0432\u0430\u0439\u0442\u0435 \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0438\u043c, \u0441\u043c\u043e\u0436\u0435\u043c \u043b\u0438 \u043c\u044b \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u0444\u0430\u0439\u043b&nbsp;<code>docker-compose.yml<\/code>&nbsp;\u0434\u043b\u044f \u043d\u0430\u0448\u0435\u0433\u043e \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f SF-Foodtrucks \u0438 \u043f\u0440\u043e\u0432\u0435\u0440\u0438\u043c, \u0441\u043f\u043e\u0441\u043e\u0431\u0435\u043d \u043b\u0438 \u043e\u043d \u043d\u0430 \u0442\u043e, \u0447\u0442\u043e \u043e\u0431\u0435\u0449\u0430\u0435\u0442.<\/p>\n\n\n\n<p>\u041d\u043e \u0432\u043d\u0430\u0447\u0430\u043b\u0435 \u043d\u0443\u0436\u043d\u043e \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c Docker Compose. \u0415\u0441\u0442\u044c \u0443 \u0432\u0430\u0441 Windows \u0438\u043b\u0438 Mac, \u0442\u043e Docker Compose \u0443\u0436\u0435 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d \u2014 \u043e\u043d \u0438\u0434\u0435\u0442 \u0432 \u043a\u043e\u043c\u043f\u043b\u0435\u043a\u0442\u0435 \u0441 Docker Toolbox. \u041d\u0430 Linux \u043c\u043e\u0436\u043d\u043e \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c Docker Compose \u0441\u043b\u0435\u0434\u0443\u044f&nbsp;<a href=\"https:\/\/docs.docker.com\/compose\/install\/\" target=\"_blank\" rel=\"noreferrer noopener\">\u043f\u0440\u043e\u0441\u0442\u044b\u043c \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u044f\u043c<\/a>&nbsp;\u043d\u0430 \u0441\u0430\u0439\u0442\u0435 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0438. Compose \u043d\u0430\u043f\u0438\u0441\u0430\u043d \u043d\u0430 Python, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u043c\u043e\u0436\u043d\u043e \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u043f\u0440\u043e\u0441\u0442\u043e&nbsp;<code>pip install docker-compose<\/code>. \u041f\u0440\u043e\u0432\u0435\u0440\u0438\u0442\u044c \u0440\u0430\u0431\u043e\u0442\u043e\u0441\u043f\u043e\u0441\u043e\u0431\u043d\u043e\u0441\u0442\u044c \u0442\u0430\u043a:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>$ docker-compose version<br>docker-compose version 1.7.1, build 0a9ab35<br>docker-py version: 1.8.1<br>CPython version: 2.7.9<br>OpenSSL version: OpenSSL 1.0.1j 15 Oct 2014<br><\/code><\/pre>\n\n\n\n<p>\u0422\u0435\u043f\u0435\u0440\u044c \u043c\u043e\u0436\u043d\u043e \u043f\u0435\u0440\u0435\u0439\u0442\u0438 \u043a \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u043c\u0443 \u0448\u0430\u0433\u0443, \u0442\u043e \u0435\u0441\u0442\u044c \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044e \u0444\u0430\u0439\u043b\u0430&nbsp;<code>docker-compose.yml<\/code>. \u0421\u0438\u043d\u0442\u0430\u043a\u0441\u0438\u0441&nbsp;<code>yml<\/code>-\u0444\u0430\u0439\u043b\u043e\u0432 \u043e\u0447\u0435\u043d\u044c \u043f\u0440\u043e\u0441\u0442\u043e\u0439, \u0438 \u0432 \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u0438 \u0443\u0436\u0435 \u0435\u0441\u0442\u044c&nbsp;<a href=\"https:\/\/github.com\/prakhar1989\/FoodTrucks\/blob\/master\/docker-compose.yml\" target=\"_blank\" rel=\"noreferrer noopener\">\u043f\u0440\u0438\u043c\u0435\u0440<\/a>, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043c\u044b \u0431\u0443\u0434\u0435\u043c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>version: \"2\"\nservices:\n  es:\n    image: elasticsearch\n  web:\n    image: prakhar1989\/foodtrucks-web\n    command: python app.py\n    ports:\n      - \"5000:5000\"\n    volumes:\n      - .:\/code    <\/code><\/pre>\n\n\n\n<p>\u0414\u0430\u0432\u0430\u0439\u0442\u0435 \u044f \u0440\u0430\u0437\u0431\u0435\u0440\u0443 \u044d\u0442\u043e \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u0435\u0435. \u041d\u0430 \u0440\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u0441\u043a\u043e\u043c \u0443\u0440\u043e\u0432\u043d\u0435 \u043c\u044b \u0437\u0430\u0434\u0430\u043b\u0438 \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 \u043d\u0435\u0439\u043c\u0441\u043f\u0435\u0439\u0441\u0430 \u0434\u043b\u044f \u043d\u0430\u0448\u0438\u0445 \u0441\u0435\u0440\u0432\u0438\u0441\u043e\u0432:&nbsp;<code>es<\/code>&nbsp;\u0438&nbsp;<code>web<\/code>. \u041a \u043a\u0430\u0436\u0434\u043e\u043c\u0443 \u0441\u0435\u0440\u0432\u0438\u0441\u0443 \u043c\u043e\u0436\u043d\u043e \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b, \u0441\u0440\u0435\u0434\u0438 \u043a\u043e\u0442\u043e\u0440\u044b\u0445&nbsp;<code>image<\/code>&nbsp;\u2014 \u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u0439. \u0414\u043b\u044f&nbsp;<code>es<\/code>&nbsp;\u043c\u044b \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u043c \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u044b\u0439 \u043d\u0430 Docker Hub \u043e\u0431\u0440\u0430\u0437&nbsp;<code>elasticsearch<\/code>. \u0414\u043b\u044f Flask-\u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u2014 \u0442\u043e\u0442 \u043e\u0431\u0440\u0430\u0437, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043c\u044b \u0441\u043e\u0437\u0434\u0430\u043b\u0438 \u0441\u0430\u043c\u043e\u0441\u0442\u043e\u044f\u0442\u0435\u043b\u044c\u043d\u043e \u0432 \u043d\u0430\u0447\u0430\u043b\u0435 \u044d\u0442\u043e\u0433\u043e \u0440\u0430\u0437\u0434\u0435\u043b\u0430.<\/p>\n\n\n\n<p>\u0421 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0434\u0440\u0443\u0433\u0438\u0445 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043e\u0432 \u0432\u0440\u043e\u0434\u0435&nbsp;<code>command<\/code>&nbsp;\u0438&nbsp;<code>ports<\/code>&nbsp;\u043c\u043e\u0436\u043d\u043e \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e \u043e \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0435.&nbsp;<code>volumes<\/code>&nbsp;\u043e\u0442\u0432\u0435\u0447\u0430\u0435\u0442 \u0437\u0430 \u043b\u043e\u043a\u0430\u0446\u0438\u044e \u043c\u043e\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f, \u0433\u0434\u0435 \u0431\u0443\u0434\u0435\u0442 \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u044c\u0441\u044f \u043a\u043e\u0434 \u0432 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0435&nbsp;<code>web<\/code>. \u042d\u0442\u043e \u043e\u043f\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u044b\u0439 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440, \u043e\u043d \u043f\u043e\u043b\u0435\u0437\u0435\u043d, \u0435\u0441\u043b\u0438 \u043d\u0443\u0436\u043d\u043e \u043e\u0431\u0440\u0430\u0449\u0430\u0442\u044c\u0441\u044f \u043a \u043b\u043e\u0433\u0430\u043c \u0438 \u0442\u0430\u043a \u0434\u0430\u043b\u0435\u0435. \u041f\u043e\u0434\u0440\u043e\u0431\u043d\u0435\u0435 \u043e \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430\u0445 \u0438 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u044b\u0445 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f\u0445 \u043c\u043e\u0436\u043d\u043e&nbsp;<a href=\"https:\/\/docs.docker.com\/compose\/compose-file\" target=\"_blank\" rel=\"noreferrer noopener\">\u043f\u0440\u043e\u0447\u0438\u0442\u0430\u0442\u044c \u0432 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0438<\/a>.<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p>\u0417\u0430\u043c\u0435\u0447\u0430\u043d\u0438\u0435: \u041d\u0443\u0436\u043d\u043e \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u044c\u0441\u044f \u0432 \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u0438 \u0441&nbsp;\u0444\u0430\u0439\u043b\u043e\u043c&nbsp;<code>docker-compose.yml<\/code>&nbsp;\u0447\u0442\u043e\u0431\u044b \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0442\u044c \u0431\u043e\u043b\u044c\u0448\u0443\u044e \u0447\u0430\u0441\u0442\u044c \u043a\u043e\u043c\u0430\u043d\u0434 Compose.<\/p>\n<\/blockquote>\n\n\n\n<p>\u041e\u0442\u043b\u0438\u0447\u043d\u043e! \u0424\u0430\u0439\u043b \u0433\u043e\u0442\u043e\u0432, \u0434\u0430\u0432\u0430\u0439\u0442\u0435 \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u043d\u0430&nbsp;<code>docker-compose<\/code>&nbsp;\u0432 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0438. \u041d\u043e \u0432\u043d\u0430\u0447\u0430\u043b\u0435 \u043d\u0443\u0436\u043d\u043e \u0443\u0434\u043e\u0441\u0442\u043e\u0432\u0435\u0440\u0438\u0442\u044c\u0441\u044f, \u0447\u0442\u043e \u043f\u043e\u0440\u0442\u044b \u0441\u0432\u043e\u0431\u043e\u0434\u043d\u044b. \u0422\u0430\u043a \u0447\u0442\u043e \u0435\u0441\u043b\u0438 \u0443 \u0432\u0430\u0441 \u0437\u0430\u043f\u0443\u0449\u0435\u043d\u044b \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u044b Flask \u0438 ES, \u0442\u043e \u043f\u043e\u0440\u0430 \u0438\u0445 \u043e\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>$ docker stop $(docker ps -q)<br>39a2f5df14ef<br>2a1b77e066e6<br><\/code><\/pre>\n\n\n\n<p>\u0422\u0435\u043f\u0435\u0440\u044c \u043c\u043e\u0436\u043d\u043e \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0442\u044c&nbsp;<code>docker-compose<\/code>. \u041f\u0435\u0440\u0435\u0439\u0434\u0438\u0442\u0435 \u0432 \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u044e \u0441 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435\u043c Foodtrucks \u0438 \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u0442\u0435 \u043a\u043e\u043c\u0430\u043d\u0434\u0443&nbsp;<code>docker-compose up<\/code>.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>$ docker-compose up<br>Creating network \"foodtrucks_default\" with the default driver<br>Creating foodtrucks_es_1<br>Creating foodtrucks_web_1<br>Attaching to foodtrucks_es_1, foodtrucks_web_1<br>es_1  | &#91;2016-01-11 03:43:50,300]&#91;INFO ]&#91;node                     ] &#91;Comet] version&#91;2.1.1], pid&#91;1], build&#91;40e2c53\/2015-12-15T13:05:55Z]<br>es_1  | &#91;2016-01-11 03:43:50,307]&#91;INFO ]&#91;node                     ] &#91;Comet] initializing ...<br>es_1  | &#91;2016-01-11 03:43:50,366]&#91;INFO ]&#91;plugins                  ] &#91;Comet] loaded &#91;], sites &#91;]<br>es_1  | &#91;2016-01-11 03:43:50,421]&#91;INFO ]&#91;env                      ] &#91;Comet] using &#91;1] data paths, mounts &#91;&#91;\/usr\/share\/elasticsearch\/data (\/dev\/sda1)]], net usable_space &#91;16gb], net total_space &#91;18.1gb], spins? &#91;possibly], types &#91;ext4]<br>es_1  | &#91;2016-01-11 03:43:52,626]&#91;INFO ]&#91;node                     ] &#91;Comet] initialized<br>es_1  | &#91;2016-01-11 03:43:52,632]&#91;INFO ]&#91;node                     ] &#91;Comet] starting ...<br>es_1  | &#91;2016-01-11 03:43:52,703]&#91;WARN ]&#91;common.network           ] &#91;Comet] publish address: {0.0.0.0} is a wildcard address, falling back to first non-loopback: {172.17.0.2}<br>es_1  | &#91;2016-01-11 03:43:52,704]&#91;INFO ]&#91;transport                ] &#91;Comet] publish_address {172.17.0.2:9300}, bound_addresses {&#91;::]:9300}<br>es_1  | &#91;2016-01-11 03:43:52,721]&#91;INFO ]&#91;discovery                ] &#91;Comet] elasticsearch\/cEk4s7pdQ-evRc9MqS2wqw<br>es_1  | &#91;2016-01-11 03:43:55,785]&#91;INFO ]&#91;cluster.service          ] &#91;Comet] new_master {Comet}{cEk4s7pdQ-evRc9MqS2wqw}{172.17.0.2}{172.17.0.2:9300}, reason: zen-disco-join(elected_as_master, &#91;0] joins received)<br>es_1  | &#91;2016-01-11 03:43:55,818]&#91;WARN ]&#91;common.network           ] &#91;Comet] publish address: {0.0.0.0} is a wildcard address, falling back to first non-loopback: {172.17.0.2}<br>es_1  | &#91;2016-01-11 03:43:55,819]&#91;INFO ]&#91;http                     ] &#91;Comet] publish_address {172.17.0.2:9200}, bound_addresses {&#91;::]:9200}<br>es_1  | &#91;2016-01-11 03:43:55,819]&#91;INFO ]&#91;node                     ] &#91;Comet] started<br>es_1  | &#91;2016-01-11 03:43:55,826]&#91;INFO ]&#91;gateway                  ] &#91;Comet] recovered &#91;0] indices into cluster_state<br>es_1  | &#91;2016-01-11 03:44:01,825]&#91;INFO ]&#91;cluster.metadata         ] &#91;Comet] &#91;sfdata] creating index, cause &#91;auto(index api)], templates &#91;], shards &#91;5]\/&#91;1], mappings &#91;truck]<br>es_1  | &#91;2016-01-11 03:44:02,373]&#91;INFO ]&#91;cluster.metadata         ] &#91;Comet] &#91;sfdata] update_mapping &#91;truck]<br>es_1  | &#91;2016-01-11 03:44:02,510]&#91;INFO ]&#91;cluster.metadata         ] &#91;Comet] &#91;sfdata] update_mapping &#91;truck]<br>es_1  | &#91;2016-01-11 03:44:02,593]&#91;INFO ]&#91;cluster.metadata         ] &#91;Comet] &#91;sfdata] update_mapping &#91;truck]<br>es_1  | &#91;2016-01-11 03:44:02,708]&#91;INFO ]&#91;cluster.metadata         ] &#91;Comet] &#91;sfdata] update_mapping &#91;truck]<br>es_1  | &#91;2016-01-11 03:44:03,047]&#91;INFO ]&#91;cluster.metadata         ] &#91;Comet] &#91;sfdata] update_mapping &#91;truck]<br>web_1 |  * Running on http:\/\/0.0.0.0:5000\/ (Press CTRL+C to quit)<br><\/code><\/pre>\n\n\n\n<p>\u041f\u0435\u0440\u0435\u0439\u0434\u0438\u0442\u0435 \u043f\u043e IP \u0447\u0442\u043e\u0431\u044b \u0443\u0432\u0438\u0434\u0435\u0442\u044c \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435. \u041a\u0440\u0443\u0442\u043e, \u0434\u0430? \u0412\u0441\u0435\u0433\u043e \u043b\u0438\u0448\u044c \u043f\u0430\u0440\u0430 \u0441\u0442\u0440\u043e\u043a \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438 \u0438 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0414\u043e\u043a\u0435\u0440-\u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u043e\u0432 \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0442 \u0432 \u0443\u043d\u0438\u0441\u043e\u043d. \u0414\u0430\u0432\u0430\u0439\u0442\u0435 \u043e\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u043c \u0441\u0435\u0440\u0432\u0438\u0441\u044b \u0438 \u043f\u0435\u0440\u0435\u0437\u0430\u043f\u0443\u0441\u0442\u0438\u043c \u0432 detached mode:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>web_1 |  * Running on http:\/\/0.0.0.0:5000\/ (Press CTRL+C to quit)<br>Killing foodtrucks_web_1 ... <strong>done<\/strong><br>Killing foodtrucks_es_1 ... <strong>done<\/strong><br><br>$ docker-compose up -d<br>Starting foodtrucks_es_1<br>Starting foodtrucks_web_1<br><br>$ docker-compose ps<br>      Name                    Command               State           Ports<br>----------------------------------------------------------------------------------<br>foodtrucks_es_1    \/docker-entrypoint.sh elas ...   Up      9200\/tcp, 9300\/tcp<br>foodtrucks_web_1   python app.py                    Up      0.0.0.0:5000-&gt;5000\/tcp<br><\/code><\/pre>\n\n\n\n<p>\u041d\u0435 \u0443\u0434\u0438\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e, \u043d\u043e \u043e\u0431\u0430 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0430 \u0443\u0441\u043f\u0435\u0448\u043d\u043e \u0437\u0430\u043f\u0443\u0449\u0435\u043d\u044b. \u041e\u0442\u043a\u0443\u0434\u0430 \u0431\u0435\u0440\u0443\u0442\u0441\u044f \u0438\u043c\u0435\u043d\u0430? \u0418\u0445 Compose \u043f\u0440\u0438\u0434\u0443\u043c\u0430\u043b \u0441\u0430\u043c. \u041d\u043e \u0447\u0442\u043e \u043d\u0430\u0441\u0447\u0435\u0442 \u0441\u0435\u0442\u0438? \u0415\u0433\u043e Compose \u0442\u043e\u0436\u0435 \u0434\u0435\u043b\u0430\u0435\u043c \u0441\u0430\u043c? \u0425\u043e\u0440\u043e\u0448\u0438\u0439 \u0432\u043e\u043f\u0440\u043e\u0441, \u0434\u0430\u0432\u0430\u0439\u0442\u0435 \u0432\u044b\u044f\u0441\u043d\u0438\u043c.<\/p>\n\n\n\n<p>\u0414\u043b\u044f \u043d\u0430\u0447\u0430\u043b\u0430, \u043e\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u043c \u0437\u0430\u043f\u0443\u0449\u0435\u043d\u043d\u044b\u0435 \u0441\u0435\u0440\u0432\u0438\u0441\u044b. \u0418\u0445 \u0432\u0441\u0435\u0433\u0434\u0430 \u043c\u043e\u0436\u043d\u043e \u0432\u0435\u0440\u043d\u0443\u0442\u044c \u043e\u0434\u043d\u043e\u0439 \u043a\u043e\u043c\u0430\u043d\u0434\u043e\u0439:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>$ docker-compose stop<br>Stopping foodtrucks_web_1 ... <strong>done<\/strong><br>Stopping foodtrucks_es_1 ... <strong>done<\/strong><br><\/code><\/pre>\n\n\n\n<p>\u0417\u0430\u043e\u0434\u043d\u043e, \u0434\u0430\u0432\u0430\u0439\u0442\u0435 \u0443\u0434\u0430\u043b\u0438\u043c \u0441\u0435\u0442\u044c&nbsp;<code>foodtrucks<\/code>, \u043a\u043e\u0442\u043e\u0440\u0443\u044e \u0441\u043e\u0437\u0434\u0430\u043b\u0438 \u0432 \u043f\u0440\u043e\u0448\u043b\u044b\u0439 \u0440\u0430\u0437. \u042d\u0442\u0430 \u0441\u0435\u0442\u044c \u043d\u0430\u043c \u043d\u0435 \u043f\u043e\u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f, \u043f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e&nbsp;<em>Compose<\/em>&nbsp;\u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u0441\u0434\u0435\u043b\u0430\u0435\u0442 \u0432\u0441\u0435 \u0437\u0430 \u043d\u0430\u0441.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>$ docker network rm foodtrucks<br>$ docker network ls<br>NETWORK ID          NAME                DRIVER<br>4eec273c054e        bridge              bridge<br>9347ae8783bd        none                null<br>54df57d7f493        host                host<br><\/code><\/pre>\n\n\n\n<p>\u041a\u043b\u0430\u0441\u0441! \u0422\u0435\u043f\u0435\u0440\u044c \u0432 \u044d\u0442\u043e\u043c \u0447\u0438\u0441\u0442\u043e\u043c \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0438 \u043c\u043e\u0436\u043d\u043e \u043f\u0440\u043e\u0432\u0435\u0440\u0438\u0442\u044c, \u0441\u043f\u043e\u0441\u043e\u0431\u0435\u043d \u043b\u0438&nbsp;<em>Compose<\/em>&nbsp;\u043d\u0430 \u0432\u043e\u043b\u0448\u0435\u0431\u0441\u0442\u0432\u043e.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>$ docker-compose up -d<br>Recreating foodtrucks_es_1<br>Recreating foodtrucks_web_1<br>$ docker ps<br>CONTAINER ID        IMAGE                        COMMAND                  CREATED             STATUS              PORTS                    NAMES<br>f50bb33a3242        prakhar1989\/foodtrucks-web   \"python app.py\"          14 seconds ago      Up 13 seconds       0.0.0.0:5000-&gt;5000\/tcp   foodtrucks_web_1<br>e299ceeb4caa        elasticsearch                \"\/docker-entrypoint.s\"   14 seconds ago      Up 14 seconds       9200\/tcp, 9300\/tcp       foodtrucks_es_1<br><\/code><\/pre>\n\n\n\n<p>\u041f\u043e\u043a\u0430 \u0432\u0441\u0435 \u0445\u043e\u0440\u043e\u0448\u043e. \u041f\u0440\u043e\u0432\u0435\u0440\u0438\u043c, \u0441\u043e\u0437\u0434\u0430\u043b\u0438\u0441\u044c \u043b\u0438 \u043a\u0430\u043a\u0438\u0435-\u043d\u0438\u0431\u0443\u0434\u044c \u0441\u0435\u0442\u0438:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>$ docker network ls<br>NETWORK ID          NAME                 DRIVER<br>0c8b474a9241        bridge               bridge              <br>293a141faac3        foodtrucks_default   bridge              <br>b44db703cd69        host                 host                <br>0474c9517805        none                 null  <br><\/code><\/pre>\n\n\n\n<p>\u0412\u0438\u0434\u043d\u043e, \u0447\u0442\u043e Compose \u0441\u0430\u043c\u043e\u0441\u0442\u043e\u044f\u0442\u0435\u043b\u044c\u043d\u043e \u0441\u043e\u0437\u0434\u0430\u043b \u0441\u0435\u0442\u044c&nbsp;<code>foodtrucks_default<\/code>&nbsp;\u0438 \u043f\u043e\u0434\u0441\u043e\u0435\u0434\u0438\u043d\u0438\u043b \u043e\u0431\u0430 \u0441\u0435\u0440\u0432\u0438\u0441\u0430 \u0432 \u044d\u0442\u0443 \u0441\u0435\u0442\u044c, \u0442\u0430\u043a, \u0447\u0442\u043e\u0431\u044b \u043e\u043d\u0438 \u043c\u043e\u0433\u043b\u0438 \u043e\u0431\u0449\u0430\u0442\u044c\u0441\u044f \u0434\u0440\u0443\u0433 \u0441 \u0434\u0440\u0443\u0433\u043e\u043c. \u041a\u0430\u0436\u0434\u044b\u0439 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440 \u0434\u043b\u044f \u0441\u0435\u0440\u0432\u0438\u0441\u0430 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d \u043a \u0441\u0435\u0442\u0438, \u0438 \u043e\u0431\u0430 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0430 \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u044b \u0434\u0440\u0443\u0433\u0438\u043c \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0430\u043c \u0432 \u0441\u0435\u0442\u0438. \u041e\u043d\u0438 \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u044b \u043f\u043e hostname, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0441\u043e\u0432\u043f\u0430\u0434\u0430\u0435\u0442 \u0441 \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435\u043c \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0430. \u0414\u0430\u0432\u0430\u0439\u0442\u0435 \u043f\u0440\u043e\u0432\u0435\u0440\u0438\u043c, \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u043b\u0438 \u044d\u0442\u0430 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f \u0432&nbsp;<code>\/etc\/hosts<\/code>.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>$ docker ps<br>CONTAINER ID        IMAGE                        COMMAND                  CREATED             STATUS              PORTS                    NAMES<br>bb72dcebd379        prakhar1989\/foodtrucks-web   \"python app.py\"          20 hours ago        Up 19 hours         0.0.0.0:5000-&gt;5000\/tcp   foodtrucks_web_1<br>3338fc79be4b        elasticsearch                \"\/docker-entrypoint.s\"   20 hours ago        Up 19 hours         9200\/tcp, 9300\/tcp       foodtrucks_es_1<br><br>$ docker exec -it bb72dcebd379 bash<br>root@bb72dcebd379:\/opt\/flask-app# cat \/etc\/hosts<br>127.0.0.1   localhost<br>::1 localhost ip6-localhost ip6-loopback<br>fe00::0 ip6-localnet<br>ff00::0 ip6-mcastprefix<br>ff02::1 ip6-allnodes<br>ff02::2 ip6-allrouters<br>172.18.0.2  bb72dcebd379<br><\/code><\/pre>\n\n\n\n<p>\u0423\u043f\u0441! \u041e\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f, \u0444\u0430\u0439\u043b \u043f\u043e\u043d\u044f\u0442\u0438\u044f \u043d\u0435 \u0438\u043c\u0435\u0435\u0442 \u043e&nbsp;<code>es<\/code>. \u041a\u0430\u043a \u0436\u0435 \u043d\u0430\u0448\u0435 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442? \u0414\u0430\u0432\u0430\u0439\u0442\u0435 \u043f\u043e\u043f\u0438\u043d\u0433\u0443\u0435\u043c \u0435\u0433\u043e \u043f\u043e \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u044e \u0445\u043e\u0441\u0442\u0430:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>root@bb72dcebd379:\/opt\/flask-app# ping es<br>PING es (172.18.0.3) 56(84) bytes of data.<br>64 bytes from foodtrucks_es_1.foodtrucks_default (172.18.0.3): icmp_seq=1 ttl=64 time=0.049 ms<br>64 bytes from foodtrucks_es_1.foodtrucks_default (172.18.0.3): icmp_seq=2 ttl=64 time=0.064 ms<br>^C<br>--- es ping statistics ---<br>2 packets transmitted, 2 received, 0% packet loss, time 999ms<br>rtt min\/avg\/max\/mdev = 0.049\/0.056\/0.064\/0.010 ms<br><\/code><\/pre>\n\n\n\n<p>\u0412\u0443\u0430\u043b\u044f! \u0420\u0430\u0431\u043e\u0442\u0430\u0435\u0442! \u041a\u0430\u043a\u0438\u043c-\u0442\u043e \u043c\u0430\u0433\u0438\u0447\u0435\u0441\u043a\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440 \u0441\u043c\u043e\u0433 \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u043f\u0438\u043d\u0433 \u0445\u043e\u0441\u0442\u0430&nbsp;<code>es<\/code>. \u041e\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f, Docker 1.10 \u0434\u043e\u0431\u0430\u0432\u0438\u043b\u0438 \u043d\u043e\u0432\u0443\u044e \u0441\u0435\u0442\u0435\u0432\u0443\u044e \u0441\u0438\u0441\u0442\u0435\u043c\u0443, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442 \u043e\u0431\u043d\u0430\u0440\u0443\u0436\u0435\u043d\u0438\u0435 \u0441\u0435\u0440\u0432\u0438\u0441\u043e\u0432 \u0447\u0435\u0440\u0435\u0437 DNS-\u0441\u0435\u0440\u0432\u0435\u0440. \u0415\u0441\u043b\u0438 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u043e, \u0442\u043e \u043f\u043e\u0447\u0438\u0442\u0430\u0439\u0442\u0435 \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u0435\u0435 \u043e&nbsp;<a href=\"https:\/\/github.com\/docker\/libnetwork\/issues\/767\" target=\"_blank\" rel=\"noreferrer noopener\">\u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0435\u043d\u0438\u0438<\/a>&nbsp;\u0438&nbsp;<a href=\"https:\/\/blog.docker.com\/2016\/02\/docker-1-10\/\" target=\"_blank\" rel=\"noreferrer noopener\">release notes<\/a>.<\/p>\n\n\n\n<p>\u041d\u0430 \u044d\u0442\u043e\u043c \u043d\u0430\u0448 \u0442\u0443\u0440 \u043f\u043e Docker Compose \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043d. \u0421 \u044d\u0442\u0438\u043c \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u043e\u043c \u043c\u043e\u0436\u043d\u043e \u0441\u0442\u0430\u0432\u0438\u0442\u044c \u0441\u0435\u0440\u0432\u0438\u0441\u044b \u043d\u0430 \u043f\u0430\u0443\u0437\u0443, \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0442\u044c \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u0435 \u043a\u043e\u043c\u0430\u043d\u0434\u044b \u0432 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0435 \u0438 \u0434\u0430\u0436\u0435 \u043c\u0430\u0441\u0448\u0442\u0430\u0431\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0441\u0438\u0441\u0442\u0435\u043c\u0443, \u0442\u043e \u0435\u0441\u0442\u044c \u0443\u0432\u0435\u043b\u0438\u0447\u0438\u0432\u0430\u0442\u044c \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u043e\u0432. \u0422\u0430\u043a\u0436\u0435 \u0441\u043e\u0432\u0435\u0442\u0443\u044e \u0438\u0437\u0443\u0447\u0430\u0442\u044c \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0434\u0440\u0443\u0433\u0438\u0435&nbsp;<a href=\"https:\/\/docs.docker.com\/compose\/overview\/#common-use-cases\" target=\"_blank\" rel=\"noreferrer noopener\">\u043f\u0440\u0438\u043c\u0435\u0440\u044b<\/a>&nbsp;\u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f Docker Compose.<\/p>\n\n\n\n<p>\u041d\u0430\u0434\u0435\u044e\u0441\u044c, \u044f \u043f\u0440\u043e\u0434\u0435\u043c\u043e\u043d\u0441\u0442\u0440\u0438\u0440\u043e\u0432\u0430\u043b \u043a\u0430\u043a \u043d\u0430 \u0441\u0430\u043c\u043e\u043c \u0434\u0435\u043b\u0435 \u043f\u0440\u043e\u0441\u0442\u043e \u0443\u043f\u0440\u0430\u0432\u043b\u044f\u0442\u044c \u043c\u043d\u043e\u0433\u043e\u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u043d\u043e\u0439 \u0441\u0440\u0435\u0434\u043e\u0439 \u0441 Compose. \u0412 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0435\u043c \u0440\u0430\u0437\u0434\u0435\u043b\u0435 \u043c\u044b \u0437\u0430\u0434\u0435\u043f\u043b\u043e\u0438\u043c \u0432\u0441\u0435 \u043d\u0430 AWS!<a target=\"_blank\" rel=\"noreferrer noopener\"><\/a><\/p>\n\n\n\n<h3 class=\"wp-block-heading\">3.4 AWS Elastic Container Service<\/h3>\n\n\n\n<p>\u0412 \u043f\u0440\u043e\u0448\u043b\u043e\u043c \u0440\u0430\u0437\u0434\u0435\u043b\u0435 \u043c\u044b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043b\u0438&nbsp;<code>docker-compose<\/code>&nbsp;\u0447\u0442\u043e\u0431\u044b \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c \u043d\u0430\u0448\u0435 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u043e \u043e\u0434\u043d\u043e\u0439 \u043a\u043e\u043c\u0430\u043d\u0434\u043e\u0439:&nbsp;<code>docker-compose up<\/code>. \u0422\u0435\u043f\u0435\u0440\u044c, \u043a\u043e\u0433\u0434\u0430 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442, \u043c\u044b \u0445\u043e\u0442\u0438\u043c \u043f\u043e\u043a\u0430\u0437\u0430\u0442\u044c \u0435\u0433\u043e \u043c\u0438\u0440\u0443, \u0437\u0430\u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u044e\u0437\u0435\u0440\u043e\u0432, \u043f\u043e\u0434\u043d\u044f\u0442\u044c \u043a\u0443\u0447\u0443 \u0434\u0435\u043d\u0435\u0433 \u0438 \u043a\u0443\u043f\u0438\u0442\u044c \u0431\u043e\u043b\u044c\u0448\u043e\u0439 \u0434\u043e\u043c \u0432 \u041c\u0430\u0439\u0430\u043c\u0438. \u041f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0435 \u0442\u0440\u0438 \u0448\u0430\u0433\u0430 \u0432\u044b\u0445\u043e\u0434\u044f\u0442 \u0437\u0430 \u043f\u0440\u0435\u0434\u0435\u043b\u044b \u044d\u0442\u043e\u0433\u043e \u043f\u043e\u0441\u043e\u0431\u0438\u044f, \u0442\u0430\u043a \u0447\u0442\u043e \u0437\u0430\u0439\u043c\u0435\u043c\u0441\u044f \u0432\u044b\u044f\u0441\u043d\u0435\u043d\u0438\u0435\u043c \u0434\u0435\u0442\u0430\u043b\u0435\u0439 \u043e \u0434\u0435\u043f\u043b\u043e\u0435 \u043c\u043d\u043e\u0433\u043e\u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u043d\u043e\u0433\u043e \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u0432 \u043e\u0431\u043b\u0430\u043a\u043e AWS.<\/p>\n\n\n\n<p>\u0415\u0441\u043b\u0438 \u0432\u044b \u0434\u043e\u0447\u0438\u0442\u0430\u043b\u0438 \u0434\u043e \u044d\u0442\u043e\u0433\u043e \u043c\u0435\u0441\u0442\u0430, \u0442\u043e \u0441\u043a\u043e\u0440\u0435\u0435 \u0432\u0441\u0435\u0433\u043e \u0443\u0431\u0435\u0434\u0438\u043b\u0438\u0441\u044c, \u0447\u0442\u043e Docker \u2014 \u0434\u043e\u0432\u043e\u043b\u044c\u043d\u043e \u043a\u0440\u0443\u0442\u0430\u044f \u0442\u0435\u0445\u043d\u043e\u043b\u043e\u0433\u0438\u044f. \u0418 \u0432\u044b \u043d\u0435 \u043e\u0434\u0438\u043d\u043e\u043a\u0438. \u041e\u0431\u043b\u0430\u0447\u043d\u044b\u0435 \u043f\u0440\u043e\u0432\u0430\u0439\u0434\u0435\u0440\u044b \u0437\u0430\u043c\u0435\u0442\u0438\u043b\u0438 \u0432\u0437\u0440\u044b\u0432\u043d\u043e\u0439 \u0440\u043e\u0441\u0442 \u043f\u043e\u043f\u0443\u043b\u044f\u0440\u043d\u043e\u0441\u0442\u0438 \u0414\u043e\u043a\u0435\u0440\u0430 \u0438 \u0441\u0442\u0430\u043b\u0438 \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0442\u044c \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0443 \u0432 \u0441\u0432\u043e\u0438 \u0441\u0435\u0440\u0432\u0438\u0441\u044b. \u0421\u0435\u0433\u043e\u0434\u043d\u044f, \u0414\u043e\u043a\u0435\u0440-\u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u043c\u043e\u0436\u043d\u043e \u0434\u0435\u043f\u043b\u043e\u0438\u0442\u044c \u043d\u0430 AWS,&nbsp;<a href=\"https:\/\/azure.microsoft.com\/en-us\/documentation\/articles\/virtual-machines-docker-vm-extension\/\" target=\"_blank\" rel=\"noreferrer noopener\">Azure<\/a>,<a href=\"http:\/\/blog.rackspace.com\/docker-with-the-rackspace-open-cloud\/\" target=\"_blank\" rel=\"noreferrer noopener\">Rackspace<\/a>,&nbsp;<a href=\"https:\/\/www.digitalocean.com\/community\/tutorials\/how-to-use-the-digitalocean-docker-application\" target=\"_blank\" rel=\"noreferrer noopener\">DigitalOcean<\/a>&nbsp;\u0438 \u043c\u043d\u043e\u0433\u043e \u0434\u0440\u0443\u0433\u0438\u0445. \u041c\u044b \u0443\u0436\u0435 \u0443\u043c\u0435\u0435\u043c \u0434\u0435\u043f\u043b\u043e\u0438\u0442\u044c \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u0441 \u043e\u0434\u043d\u0438\u043c \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u043e\u043c \u043d\u0430 Elastic Beanstalk, \u0430 \u0432 \u044d\u0442\u043e\u043c \u0440\u0430\u0437\u0434\u0435\u043b\u0435 \u043c\u044b \u0438\u0437\u0443\u0447\u0438\u043c AWS&nbsp;<a href=\"https:\/\/aws.amazon.com\/ecs\/\" target=\"_blank\" rel=\"noreferrer noopener\">Elastic Container Service (\u0438\u043b\u0438 ECS)<\/a>.<\/p>\n\n\n\n<p>AWS ECS \u2014 \u044d\u0442\u043e \u043c\u0430\u0441\u0448\u0442\u0430\u0431\u0438\u0440\u0443\u0435\u043c\u044b\u0439 \u0438 \u0433\u0438\u0431\u043a\u0438\u0439 \u0441\u0435\u0440\u0432\u0438\u0441 \u043f\u043e \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044e \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0430\u043c\u0438, \u0438 \u043e\u043d \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442 \u0414\u043e\u043a\u0435\u0440. \u0421 \u0435\u0433\u043e \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u043c\u043e\u0436\u043d\u043e \u0443\u043f\u0440\u0430\u0432\u043b\u044f\u0442\u044c \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u043e\u043c \u043d\u0430 EC2 \u0447\u0435\u0440\u0435\u0437 \u043f\u0440\u043e\u0441\u0442\u043e\u0439 API. \u0412 Beanstalk \u0431\u044b\u043b\u0438 \u043d\u043e\u0440\u043c\u0430\u043b\u044c\u043d\u044b\u0435 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e, \u043d\u043e ECS \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u043d\u0430\u0441\u0442\u0440\u043e\u0438\u0442\u044c \u043a\u0430\u0436\u0434\u044b\u0439 \u0430\u0441\u043f\u0435\u043a\u0442 \u043e\u043a\u0440\u0443\u0436\u0435\u043d\u0438\u044f \u043f\u043e \u0432\u0430\u0448\u0438\u043c \u043f\u043e\u0442\u0440\u0435\u0431\u043d\u043e\u0441\u0442\u044f\u043c. \u041f\u043e \u044d\u0442\u043e\u0439 \u043f\u0440\u0438\u0447\u0438\u043d\u0435 ECS \u2014 \u043d\u0435 \u0441\u0430\u043c\u044b\u0439 \u043f\u0440\u043e\u0441\u0442\u043e\u0439 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442 \u0432 \u043d\u0430\u0447\u0430\u043b\u0435 \u043f\u0443\u0442\u0438.<\/p>\n\n\n\n<p>\u041a \u0441\u0447\u0430\u0441\u0442\u044c\u044e, \u0443 ECS \u0435\u0441\u0442\u044c \u0443\u0434\u043e\u0431\u043d\u044b\u0439&nbsp;<a href=\"http:\/\/docs.aws.amazon.com\/AmazonECS\/latest\/developerguide\/ECS_CLI.html\" target=\"_blank\" rel=\"noreferrer noopener\">\u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442 \u043a\u043e\u043c\u0430\u043d\u0434\u043d\u043e\u0439 \u0441\u0442\u0440\u043e\u043a\u0438 (CLI)<\/a>&nbsp;\u0441 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u043e\u0439 Docker Compose \u0438 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0439 \u043f\u0440\u043e\u0432\u0438\u0437\u0438\u0435\u0439 \u043d\u0430 ECS! \u0422\u0430\u043a \u043a\u0430\u043a \u0443 \u043d\u0430\u0441 \u0443\u0436\u0435 \u0435\u0441\u0442\u044c \u0440\u0430\u0431\u043e\u0447\u0438\u0439 \u0444\u0430\u0439\u043b&nbsp;<code>docker-compose.yml<\/code>, \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 \u0438 \u0437\u0430\u043f\u0443\u0441\u043a \u043d\u0430 AWS \u0434\u043e\u043b\u0436\u043d\u0430 \u0431\u044b\u0442\u044c \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u043b\u0435\u0433\u043a\u043e\u0439. \u041d\u0430\u0447\u043d\u0435\u043c!<\/p>\n\n\n\n<p>\u0412\u043d\u0430\u0447\u0430\u043b\u0435 \u043d\u0443\u0436\u043d\u043e \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c CLI. \u041d\u0430 \u043c\u043e\u043c\u0435\u043d\u0442 \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u0438\u044f \u044d\u0442\u043e\u0433\u043e \u043f\u043e\u0441\u043e\u0431\u0438\u044f CLI-\u0443\u0442\u0438\u043b\u0438\u0442\u0430 \u043d\u0435 \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u0430 \u043d\u0430 Windows. \u0418\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0438 \u043f\u043e \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0435 CLI \u043d\u0430 Mac \u0438 Linux \u0445\u043e\u0440\u043e\u0448\u043e \u043e\u043f\u0438\u0441\u0430\u043d\u044b \u043d\u0430 \u0441\u0430\u0439\u0442\u0435 \u0441&nbsp;<a href=\"http:\/\/docs.aws.amazon.com\/AmazonECS\/latest\/developerguide\/ECS_CLI_installation.html\" target=\"_blank\" rel=\"noreferrer noopener\">\u043e\u0444\u0438\u0446\u0438\u0430\u043b\u044c\u043d\u043e\u0439 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0435\u0439<\/a>. \u0423\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u0435 \u0443\u0442\u0438\u043b\u0438\u0442\u0443, \u0430 \u043f\u043e\u0442\u043e\u043c \u043f\u0440\u043e\u0432\u0435\u0440\u044c\u0442\u0435 \u0435\u0435 \u0440\u0430\u0431\u043e\u0442\u043e\u0441\u043f\u043e\u0441\u043e\u0431\u043d\u043e\u0441\u0442\u044c \u0442\u0430\u043a:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>$ ecs-cli --version<br>ecs-cli version 0.1.0 (*cbdc2d5)<br><\/code><\/pre>\n\n\n\n<p>\u041f\u0435\u0440\u0432\u044b\u0439 \u0448\u0430\u0433 \u2014 \u0437\u0430\u0434\u0430\u0442\u044c \u043f\u0430\u0440\u0443 \u043a\u043b\u044e\u0447\u0435\u0439 \u0434\u043b\u044f \u0430\u0432\u0442\u043e\u0440\u0438\u0437\u0430\u0446\u0438\u0438 \u043d\u0430 \u0438\u043d\u0441\u0442\u0430\u043d\u0441\u0430\u0445. \u0417\u0430\u0439\u0434\u0438\u0442\u0435 \u043d\u0430 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0443&nbsp;<a href=\"https:\/\/console.aws.amazon.com\/ec2\/v2\/home?region=us-east-1#KeyPairs:sort=keyName\" target=\"_blank\" rel=\"noreferrer noopener\">EC2 Console<\/a>&nbsp;\u0438 \u0441\u043e\u0437\u0434\u0430\u0439\u0442\u0435 \u043d\u043e\u0432\u044b\u0439 keypair. \u0421\u043a\u0430\u0447\u0430\u0439\u0442\u0435 \u0444\u0430\u0439\u043b \u0438 \u0434\u0435\u0440\u0436\u0438\u0442\u0435 \u0435\u0433\u043e \u0432 \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u043c \u043c\u0435\u0441\u0442\u0435. \u0415\u0449\u0435 \u043e\u0434\u0438\u043d \u043c\u043e\u043c\u0435\u043d\u0442 \u2014 \u0438\u043c\u044f \u0440\u0435\u0433\u0438\u043e\u043d\u0430. \u042f \u043d\u0430\u0437\u0432\u0430\u043b \u0441\u0432\u043e\u0439 \u043a\u043b\u044e\u0447&nbsp;<code>ecs<\/code>&nbsp;\u0438 \u0443\u043a\u0430\u0437\u0430\u043b \u0440\u0435\u0433\u0438\u043e\u043d&nbsp;<code>us-east-1<\/code>. \u042f \u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0443 \u043f\u043e\u0432\u0435\u0441\u0442\u0432\u043e\u0432\u0430\u043d\u0438\u0435 \u0441 \u044d\u0442\u0438\u043c \u0434\u043e\u043f\u0443\u0449\u0435\u043d\u0438\u0435\u043c.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img loading=\"lazy\" decoding=\"async\" width=\"1307\" height=\"921\" src=\"https:\/\/olvas.dev\/wp-content\/uploads\/2025\/03\/0893754f72334f7caa93249a3c6940a7-1.png\" alt=\"keypair.png\" class=\"wp-image-1387\" srcset=\"https:\/\/olvas.dev\/wp-content\/uploads\/2025\/03\/0893754f72334f7caa93249a3c6940a7-1.png 1307w, https:\/\/olvas.dev\/wp-content\/uploads\/2025\/03\/0893754f72334f7caa93249a3c6940a7-1-768x541.png?_mod=1742506687 768w, https:\/\/olvas.dev\/wp-content\/uploads\/2025\/03\/0893754f72334f7caa93249a3c6940a7-1-640x451.png?_mod=1742506687 640w, https:\/\/olvas.dev\/wp-content\/uploads\/2025\/03\/0893754f72334f7caa93249a3c6940a7-1-1024x722.png?_mod=1742506689 1024w, https:\/\/olvas.dev\/wp-content\/uploads\/2025\/03\/0893754f72334f7caa93249a3c6940a7-1-710x500.png?_mod=1742506690 710w\" sizes=\"auto, (max-width: 1307px) 100vw, 1307px\" \/><\/figure>\n\n\n\n<p>\u0422\u0435\u043f\u0435\u0440\u044c \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u0442\u0435 CLI:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>$ ecs-cli configure --region us-east-1 --cluster foodtrucks<br>INFO&#91;0000] Saved ECS CLI configuration <strong>for<\/strong> cluster (foodtrucks)<br><\/code><\/pre>\n\n\n\n<p>\u041a\u043e\u043c\u0430\u043d\u0434\u0430&nbsp;<code>configure<\/code>&nbsp;\u0441 \u0438\u043c\u0435\u043d\u0435\u043c \u0440\u0435\u0433\u0438\u043e\u043d\u0430, \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u0445\u043e\u0442\u0438\u043c \u0440\u0430\u0437\u043c\u0435\u0441\u0442\u0438\u0442\u044c \u043d\u0430\u0448 \u043a\u043b\u0430\u0441\u0442\u0435\u0440, \u0438 \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0430. \u041d\u0443\u0436\u043d\u043e \u0443\u043a\u0430\u0437\u0430\u0442\u044c&nbsp;<strong>\u0442\u043e\u0442 \u0436\u0435 \u0440\u0435\u0433\u0438\u043e\u043d<\/strong>, \u0447\u0442\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043b\u0441\u044f \u043f\u0440\u0440\u0438 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0438 \u043a\u043b\u044e\u0447\u0435\u0439. \u0415\u0441\u043b\u0438 \u0443 \u0432\u0430\u0441 \u043d\u0435 \u043d\u0430\u0441\u0442\u0440\u043e\u0435\u043d&nbsp;<a href=\"https:\/\/aws.amazon.com\/cli\/\" target=\"_blank\" rel=\"noreferrer noopener\">AWS CLI<\/a>, \u0442\u043e&nbsp;\u0441\u043b\u0435\u0434\u0443\u0439\u0442\u0435&nbsp;<a href=\"http:\/\/docs.aws.amazon.com\/cli\/latest\/userguide\/cli-chap-getting-set-up.html\" target=\"_blank\" rel=\"noreferrer noopener\">\u0440\u0443\u043a\u043e\u0432\u043e\u0434\u0441\u0442\u0432\u0443<\/a>, \u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u043e \u043e\u043f\u0438\u0441\u044b\u0432\u0430\u0435\u0442 \u0432\u0441\u0435 \u0448\u0430\u0433\u0438.<\/p>\n\n\n\n<p>\u0421\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439 \u0448\u0430\u0433 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0443\u0442\u0438\u043b\u0438\u0442\u0435 \u0441\u043e\u0437\u0434\u0430\u0432\u0430\u0442\u044c \u0448\u0430\u0431\u043b\u043e\u043d&nbsp;<a href=\"https:\/\/aws.amazon.com\/cloudformation\/\" target=\"_blank\" rel=\"noreferrer noopener\">CloudFormation<\/a>.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>$ ecs-cli up --keypair ecs --capability-iam --size 2 --instance-type t2.micro<br>INFO&#91;0000] Created cluster                               cluster=foodtrucks<br>INFO&#91;0001] Waiting <strong>for<\/strong> your cluster resources to be created<br>INFO&#91;0001] Cloudformation stack status                   stackStatus=CREATE_IN_PROGRESS<br>INFO&#91;0061] Cloudformation stack status                   stackStatus=CREATE_IN_PROGRESS<br>INFO&#91;0122] Cloudformation stack status                   stackStatus=CREATE_IN_PROGRESS<br>INFO&#91;0182] Cloudformation stack status                   stackStatus=CREATE_IN_PROGRESS<br>INFO&#91;0242] Cloudformation stack status                   stackStatus=CREATE_IN_PROGRESS<br><\/code><\/pre>\n\n\n\n<p>\u0417\u0434\u0435\u0441\u044c \u043c\u044b \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u043c \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u044f \u043a\u043b\u044e\u0447\u0435\u0439, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043c\u044b \u0441\u043a\u0430\u0447\u0430\u043b\u0438 (\u0432 \u043c\u043e\u0435\u043c \u0441\u043b\u0443\u0447\u0430\u0435&nbsp;<code>ecs<\/code>), \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0438\u043d\u0441\u0442\u0430\u043d\u0441\u043e\u0432 (<code>--size<\/code>) \u0438 \u0442\u0438\u043f \u0438\u043d\u0441\u0442\u0430\u043d\u0441\u043e\u0432, \u043d\u0430 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0445\u043e\u0442\u0438\u043c \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0442\u044c \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u044b. \u0424\u043b\u0430\u0433&nbsp;<code>--capability-iam<\/code>&nbsp;\u0433\u043e\u0432\u043e\u0440\u0438\u0442 \u0443\u0442\u0438\u043b\u0438\u0442\u0435, \u0447\u0442\u043e \u043c\u044b \u043f\u043e\u043d\u0438\u043c\u0430\u0435\u043c, \u0447\u0442\u043e \u044d\u0442\u0430 \u043a\u043e\u043c\u0430\u043d\u0434\u0430 \u043c\u043e\u0436\u0435\u0442 \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u0440\u0435\u0441\u0443\u0440\u0441\u044b IAM.<\/p>\n\n\n\n<p>\u0412 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0435\u043c \u0448\u0430\u0433\u0435 \u043c\u044b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c \u0444\u0430\u0439\u043b&nbsp;<code>docker-compose.yml<\/code>. \u0422\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f \u043d\u0435\u0431\u043e\u043b\u044c\u0448\u043e\u0435 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0435, \u0442\u0430\u043a \u0447\u0442\u043e \u0432\u043c\u0435\u0441\u0442\u043e \u043c\u043e\u0434\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u0438 \u0444\u0430\u0439\u043b\u0430, \u0434\u0430\u0432\u0430\u0439\u0442\u0435 \u0441\u0434\u0435\u043b\u0430\u0435\u043c \u043a\u043e\u043f\u0438\u044e \u0438 \u043d\u0430\u0437\u043e\u0432\u0435\u043c \u0435\u0435&nbsp;<code>aws-compose.yml<\/code>. \u0421\u043e\u0434\u0435\u0440\u0436\u0430\u043d\u0438\u0435&nbsp;<a href=\"https:\/\/github.com\/prakhar1989\/FoodTrucks\/blob\/master\/aws-compose.yml\" target=\"_blank\" rel=\"noreferrer noopener\">\u044d\u0442\u043e\u0433\u043e \u0444\u0430\u0439\u043b\u0430<\/a>&nbsp;(\u043f\u043e\u0441\u043b\u0435 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0439):<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>es:\n  image: elasticsearch\n  cpu_shares: 100\n  mem_limit: 262144000\nweb:\n  image: prakhar1989\/foodtrucks-web\n  cpu_shares: 100\n  mem_limit: 262144000\n  ports:\n    - \"80:5000\"\n  links:\n    - es\n    <\/code><\/pre>\n\n\n\n<p>\u0415\u0434\u0438\u043d\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0435 \u043e\u0442\u043b\u0438\u0447\u0438\u044f \u043e\u0442 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u0444\u0430\u0439\u043b\u0430&nbsp;<code>docker-compose.yml<\/code>&nbsp;\u044d\u0442\u043e \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b&nbsp;<code>mem_limit<\/code>&nbsp;\u0438&nbsp;<code>cpu_shares<\/code>&nbsp;\u0434\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0430.<\/p>\n\n\n\n<p>\u0422\u0430\u043a\u0436\u0435, \u043c\u044b \u0443\u0431\u0440\u0430\u043b\u0438&nbsp;<code>version<\/code>&nbsp;\u0438&nbsp;<code>services<\/code>, \u0442\u0430\u043a \u043a\u0430\u043a AWS \u0435\u0449\u0435 \u043d\u0435 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442&nbsp;<a href=\"https:\/\/docs.docker.com\/compose\/compose-file\/#version-2\" target=\"_blank\" rel=\"noreferrer noopener\">\u0432\u0435\u0440\u0441\u0438\u044e 2<\/a>&nbsp;\u0444\u0430\u0439\u043b\u043e\u0432\u043e\u0433\u043e \u0444\u043e\u0440\u043c\u0430\u0442\u0430 Compose. \u0422\u0430\u043a \u043a\u0430\u043a \u043d\u0430\u0448\u0435 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u0431\u0443\u0434\u0435\u0442 \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u043d\u0430 \u0438\u043d\u0441\u0442\u0430\u043d\u0441\u0430\u0445 \u0442\u0438\u043f\u0430&nbsp;<code>t2.micro<\/code>, \u043c\u044b \u0437\u0430\u0434\u0430\u043b\u0438 250 \u043c\u0435\u0433\u0430\u0431\u0430\u0439\u0442 \u043f\u0430\u043c\u044f\u0442\u0438. \u0422\u0435\u043f\u0435\u0440\u044c \u043d\u0430\u043c \u043d\u0443\u0436\u043d\u043e \u043e\u043f\u0443\u0431\u043b\u0438\u043a\u043e\u0432\u0430\u0442\u044c \u043e\u0431\u0440\u0430\u0437 \u043d\u0430 Docker Hub. \u041d\u0430 \u043c\u043e\u043c\u0435\u043d\u0442 \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u0438\u044f \u044d\u0442\u043e\u0433\u043e \u043f\u043e\u0441\u043e\u0431\u0438\u044f, ecs-cli&nbsp;<strong>\u043d\u0435 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442<\/strong>&nbsp;\u043a\u043e\u043c\u0430\u043d\u0434\u0443&nbsp;<code>build<\/code>. \u041d\u043e Docker Compose&nbsp;<a href=\"https:\/\/docs.docker.com\/compose\/compose-file\/#build\" target=\"_blank\" rel=\"noreferrer noopener\">\u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442<\/a>&nbsp;\u0435\u0435 \u0431\u0435\u0437 \u043f\u0440\u043e\u0431\u043b\u0435\u043c.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>$ docker push prakhar1989\/foodtrucks-web<\/code><\/pre>\n\n\n\n<p>\u041a\u0440\u0430\u0441\u043e\u0442\u0430! \u0414\u0430\u0432\u0430\u0439\u0442\u0435 \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u043c \u0444\u0438\u043d\u0430\u043b\u044c\u043d\u0443\u044e \u043a\u043e\u043c\u0430\u043d\u0434\u0443, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u043f\u0440\u043e\u0438\u0437\u0432\u0435\u0434\u0435\u0442 \u0434\u0435\u043f\u043b\u043e\u0439 \u043d\u0430 ECS!<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>$ ecs-cli compose --file aws-compose.yml up<br>INFO&#91;0000] Using ECS task definition                     TaskDefinition=ecscompose-foodtrucks:2<br>INFO&#91;0000] Starting container...                         container=845e2368-170d-44a7-bf9f-84c7fcd9ae29\/es<br>INFO&#91;0000] Starting container...                         container=845e2368-170d-44a7-bf9f-84c7fcd9ae29\/web<br>INFO&#91;0000] Describe ECS container status                 container=845e2368-170d-44a7-bf9f-84c7fcd9ae29\/web desiredStatus=RUNNING lastStatus=PENDING taskDefinition=ecscompose-foodtrucks:2<br>INFO&#91;0000] Describe ECS container status                 container=845e2368-170d-44a7-bf9f-84c7fcd9ae29\/es desiredStatus=RUNNING lastStatus=PENDING taskDefinition=ecscompose-foodtrucks:2<br>INFO&#91;0036] Describe ECS container status                 container=845e2368-170d-44a7-bf9f-84c7fcd9ae29\/es desiredStatus=RUNNING lastStatus=PENDING taskDefinition=ecscompose-foodtrucks:2<br>INFO&#91;0048] Describe ECS container status                 container=845e2368-170d-44a7-bf9f-84c7fcd9ae29\/web desiredStatus=RUNNING lastStatus=PENDING taskDefinition=ecscompose-foodtrucks:2<br>INFO&#91;0048] Describe ECS container status                 container=845e2368-170d-44a7-bf9f-84c7fcd9ae29\/es desiredStatus=RUNNING lastStatus=PENDING taskDefinition=ecscompose-foodtrucks:2<br>INFO&#91;0060] Started container...                          container=845e2368-170d-44a7-bf9f-84c7fcd9ae29\/web desiredStatus=RUNNING lastStatus=RUNNING taskDefinition=ecscompose-foodtrucks:2<br>INFO&#91;0060] Started container...                          container=845e2368-170d-44a7-bf9f-84c7fcd9ae29\/es desiredStatus=RUNNING lastStatus=RUNNING taskDefinition=ecscompose-foodtrucks:2<br><\/code><\/pre>\n\n\n\n<p>\u0422\u043e, \u0447\u0442\u043e \u0432\u044b\u0432\u043e\u0434 \u043f\u043e\u0445\u043e\u0436 \u043d\u0430 \u0432\u044b\u0432\u043e\u0434&nbsp;<strong>Docker Compose<\/strong>&nbsp;\u2014 \u043d\u0435 \u0441\u043e\u0432\u043f\u0430\u0434\u0435\u043d\u0438\u0435. \u0410\u0440\u0433\u0443\u043c\u0435\u043d\u0442&nbsp;<code>--file<\/code>&nbsp;\u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0434\u043b\u044f \u043f\u0435\u0440\u0435\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u044f \u0444\u0430\u0439\u043b\u0430 \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e (<code>docker-compose.yml<\/code>). \u0415\u0441\u043b\u0438 \u0432\u0441\u0435 \u043f\u0440\u043e\u0448\u043b\u043e \u0445\u043e\u0440\u043e\u0448\u043e, \u0442\u043e \u0432\u044b \u0443\u0432\u0438\u0434\u0438\u0442\u0435 \u0441\u0442\u0440\u043e\u043a\u0443&nbsp;<code>desiredStatus=RUNNING lastStatus=RUNNING<\/code>&nbsp;\u0432 \u0441\u0430\u043c\u043e\u043c \u043a\u043e\u043d\u0446\u0435.<\/p>\n\n\n\n<p>\u041a\u0440\u0443\u0442\u043e! \u0422\u0435\u043f\u0435\u0440\u044c \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u0437\u0430\u043f\u0443\u0449\u0435\u043d\u043e. \u041a\u0430\u043a \u043a \u043d\u0435\u043c\u0443 \u043e\u0431\u0440\u0430\u0442\u0438\u0442\u044c\u0441\u044f?<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>ecs-cli ps<br>Name                                      State    Ports                     TaskDefinition<br>845e2368-170d-44a7-bf9f-84c7fcd9ae29\/web  RUNNING  54.86.14.14:80-&gt;5000\/tcp  ecscompose-foodtrucks:2<br>845e2368-170d-44a7-bf9f-84c7fcd9ae29\/es   RUNNING                            ecscompose-foodtrucks:2<br><\/code><\/pre>\n\n\n\n<p>\u041e\u0442\u043a\u0440\u043e\u0439\u0442\u0435&nbsp;<a href=\"http:\/\/54.86.14.14\/\" target=\"_blank\" rel=\"noreferrer noopener\">http:\/\/54.86.14.14<\/a>&nbsp;\u0432 \u0431\u0440\u0430\u0443\u0437\u0435\u0440\u0435, \u0438 \u0443\u0432\u0438\u0434\u0438\u0442\u0435 Food Trucks \u0432\u043e \u0432\u0441\u0435\u0439 \u0441\u0432\u043e\u0435\u0439 \u0436\u0435\u043b\u0442\u043e-\u0447\u0435\u0440\u043d\u043e\u0439 \u043a\u0440\u0430\u0441\u0435! \u0417\u0430\u043e\u0434\u043d\u043e, \u0434\u0430\u0432\u0430\u0439\u0442\u0435 \u0432\u0437\u0433\u043b\u044f\u043d\u0435\u043c \u043d\u0430 \u043a\u043e\u043d\u0441\u043e\u043b\u044c&nbsp;<a href=\"https:\/\/console.aws.amazon.com\/ecs\/home?region=us-east-1#\/clusters\" target=\"_blank\" rel=\"noreferrer noopener\">AWS ECS<\/a>.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img loading=\"lazy\" decoding=\"async\" width=\"1560\" height=\"563\" src=\"https:\/\/olvas.dev\/wp-content\/uploads\/2025\/03\/658ba44423c747b0a1e4a692e7318e6d-1.png\" alt=\"ECS cluster\" class=\"wp-image-1386\" srcset=\"https:\/\/olvas.dev\/wp-content\/uploads\/2025\/03\/658ba44423c747b0a1e4a692e7318e6d-1.png 1560w, https:\/\/olvas.dev\/wp-content\/uploads\/2025\/03\/658ba44423c747b0a1e4a692e7318e6d-1-768x277.png?_mod=1742506684 768w, https:\/\/olvas.dev\/wp-content\/uploads\/2025\/03\/658ba44423c747b0a1e4a692e7318e6d-1-1536x554.png?_mod=1742506686 1536w, https:\/\/olvas.dev\/wp-content\/uploads\/2025\/03\/658ba44423c747b0a1e4a692e7318e6d-1-640x231.png?_mod=1742506686 640w, https:\/\/olvas.dev\/wp-content\/uploads\/2025\/03\/658ba44423c747b0a1e4a692e7318e6d-1-1024x370.png?_mod=1742506687 1024w, https:\/\/olvas.dev\/wp-content\/uploads\/2025\/03\/658ba44423c747b0a1e4a692e7318e6d-1-1000x361.png?_mod=1742506688 1000w\" sizes=\"auto, (max-width: 1560px) 100vw, 1560px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image\"><img loading=\"lazy\" decoding=\"async\" width=\"1560\" height=\"783\" src=\"https:\/\/olvas.dev\/wp-content\/uploads\/2025\/03\/bbd71f8c6142469b91125f07a2b4ba06-1.png\" alt=\"ECS cluster\" class=\"wp-image-1388\" srcset=\"https:\/\/olvas.dev\/wp-content\/uploads\/2025\/03\/bbd71f8c6142469b91125f07a2b4ba06-1.png 1560w, https:\/\/olvas.dev\/wp-content\/uploads\/2025\/03\/bbd71f8c6142469b91125f07a2b4ba06-1-768x385.png?_mod=1742506687 768w, https:\/\/olvas.dev\/wp-content\/uploads\/2025\/03\/bbd71f8c6142469b91125f07a2b4ba06-1-1536x771.png?_mod=1742506692 1536w, https:\/\/olvas.dev\/wp-content\/uploads\/2025\/03\/bbd71f8c6142469b91125f07a2b4ba06-1-640x321.png?_mod=1742506692 640w, https:\/\/olvas.dev\/wp-content\/uploads\/2025\/03\/bbd71f8c6142469b91125f07a2b4ba06-1-1024x514.png?_mod=1742506694 1024w, https:\/\/olvas.dev\/wp-content\/uploads\/2025\/03\/bbd71f8c6142469b91125f07a2b4ba06-1-996x500.png?_mod=1742506695 996w\" sizes=\"auto, (max-width: 1560px) 100vw, 1560px\" \/><\/figure>\n\n\n\n<p>\u0412\u0438\u0434\u043d\u043e, \u0447\u0442\u043e \u0431\u044b\u043b \u0441\u043e\u0437\u0434\u0430\u043d ECS-\u043a\u043b\u0430\u0441\u0442\u0435\u0440 &#8216;foodtrucks&#8217;, \u0438 \u0432 \u043d\u0435\u043c \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442\u0441\u044f \u043e\u0434\u043d\u0430 \u0437\u0430\u0434\u0430\u0447\u0430 \u0441 \u0434\u0432\u0443\u043c\u044f \u0438\u043d\u0441\u0442\u0430\u043d\u0441\u0430\u043c\u0438. \u0421\u043e\u0432\u0435\u0442\u0443\u044e \u043f\u043e\u043a\u043e\u0432\u044b\u0440\u044f\u0442\u044c\u0441\u044f \u0432 \u044d\u0442\u043e\u0439 \u043a\u043e\u043d\u0441\u043e\u043b\u0438 \u0438 \u0438\u0437\u0443\u0447\u0438\u0442\u044c \u0440\u0430\u0437\u043d\u044b\u0435 \u0435\u0435 \u0447\u0430\u0441\u0442\u0438 \u0438 \u043e\u043f\u0446\u0438\u0438.<\/p>\n\n\n\n<p>\u0412\u043e\u0442 \u0438 \u0432\u0441\u0435. \u0412\u0441\u0435\u0433\u043e \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043a\u043e\u043c\u0430\u043d\u0434 \u2014 \u0438 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u043d\u0430 AWS!<a target=\"_blank\" rel=\"noreferrer noopener\"><\/a><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">4.0 \u0417\u0430\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435<\/h2>\n\n\n\n<p>\u041c\u044b \u043f\u043e\u0434\u043e\u0448\u043b\u0438 \u043a \u043a\u043e\u043d\u0446\u0443. \u041f\u043e\u0441\u043b\u0435 \u0434\u043b\u0438\u043d\u043d\u043e\u0433\u043e, \u0438\u0437\u043c\u0430\u0442\u044b\u0432\u0430\u044e\u0449\u0435\u0433\u043e, \u043d\u043e \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u043e\u0433\u043e \u043f\u043e\u0441\u043e\u0431\u0438\u044f \u0432\u044b \u0433\u043e\u0442\u043e\u0432\u044b \u0437\u0430\u0445\u0432\u0430\u0442\u0438\u0442\u044c \u043c\u0438\u0440 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u043e\u0432! \u0415\u0441\u043b\u0438 \u0432\u044b \u0441\u043b\u0435\u0434\u043e\u0432\u0430\u043b\u0438 \u043f\u043e\u0441\u043e\u0431\u0438\u044e \u0434\u043e \u0441\u0430\u043c\u043e\u0433\u043e \u043a\u043e\u043d\u0446\u0430, \u0442\u043e \u043c\u043e\u0436\u0435\u0442\u0435 \u0437\u0430\u0441\u043b\u0443\u0436\u0435\u043d\u043d\u043e \u0433\u043e\u0440\u0434\u0438\u0442\u044c\u0441\u044f \u0441\u043e\u0431\u043e\u0439. \u0412\u044b \u043d\u0430\u0443\u0447\u0438\u043b\u0438\u0441\u044c \u0443\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0442\u044c \u0414\u043e\u043a\u0435\u0440, \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0442\u044c \u0441\u0432\u043e\u0438 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u044b, \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0442\u044c \u0441\u0442\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u0438 \u0434\u0438\u043d\u0430\u043c\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u0432\u0435\u0431-\u0441\u0430\u0439\u0442\u044b \u0438, \u0441\u0430\u043c\u043e\u0435 \u0433\u043b\u0430\u0432\u043d\u043e\u0435, \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u0438 \u043e\u043f\u044b\u0442 \u0434\u0435\u043f\u043b\u043e\u044f \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439 \u0432 \u043e\u0431\u043b\u0430\u043a\u043e.<\/p>\n\n\n\n<p>\u041d\u0430\u0434\u0435\u044e\u0441\u044c, \u043f\u0440\u043e\u0445\u043e\u0436\u0434\u0435\u043d\u0438\u0435 \u044d\u0442\u043e\u0433\u043e \u0440\u0443\u043a\u043e\u0432\u043e\u0434\u0441\u0442\u0432\u0430 \u043f\u043e\u043c\u043e\u0433\u043b\u043e \u0432\u0430\u043c \u0441\u0442\u0430\u0442\u044c \u0443\u0432\u0435\u0440\u0435\u043d\u043d\u0435\u0435 \u0432 \u0441\u0432\u043e\u0438\u0445 \u0441\u043f\u043e\u0441\u043e\u0431\u043d\u043e\u0441\u0442\u044f\u0445 \u0443\u043f\u0440\u0430\u0432\u043b\u044f\u0442\u044c\u0441\u044f \u0441 \u0441\u0435\u0440\u0432\u0435\u0440\u0430\u043c\u0438. \u041a\u043e\u0433\u0434\u0430 \u0443 \u0432\u0430\u0441 \u043f\u043e\u044f\u0432\u0438\u0442\u0441\u044f \u043d\u043e\u0432\u0430\u044f \u0438\u0434\u0435\u044f \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u0430 \u0438\u043b\u0438 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f, \u043c\u043e\u0436\u0435\u0442\u0435 \u0431\u044b\u0442\u044c \u0443\u0432\u0435\u0440\u0435\u043d\u044b, \u0447\u0442\u043e \u0441\u043c\u043e\u0436\u0435\u0442\u0435 \u043f\u043e\u043a\u0430\u0437\u0430\u0442\u044c \u0435\u0433\u043e \u043b\u044e\u0434\u044f\u043c \u0441 \u043c\u0438\u043d\u0438\u043c\u0430\u043b\u044c\u043d\u044b\u043c\u0438 \u0443\u0441\u0438\u043b\u0438\u044f\u043c\u0438.<a target=\"_blank\" rel=\"noreferrer noopener\"><\/a><\/p>\n\n\n\n<h3 class=\"wp-block-heading\">4.1 \u0421\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0435 \u0448\u0430\u0433\u0438<\/h3>\n\n\n\n<p>\u0412\u0430\u0448\u0435 \u043f\u0443\u0442\u0435\u0448\u0435\u0441\u0442\u0432\u0438\u0435 \u0432 \u043c\u0438\u0440 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u043e\u0432 \u0442\u043e\u043b\u044c\u043a\u043e \u043d\u0430\u0447\u0430\u043b\u043e\u0441\u044c. \u041c\u043e\u0435\u0439 \u0446\u0435\u043b\u044c\u044e \u0432 \u044d\u0442\u043e\u043c \u0440\u0443\u043a\u043e\u0432\u043e\u0434\u0441\u0442\u0432\u0435 \u0431\u044b\u043b\u043e \u043d\u0430\u0433\u0443\u043b\u044f\u0442\u044c \u0432\u0430\u0448 \u0430\u043f\u043f\u0435\u0442\u0438\u0442 \u0438 \u043f\u043e\u043a\u0430\u0437\u0430\u0442\u044c \u043c\u043e\u0449\u044c \u0414\u043e\u043a\u0435\u0440\u0430. \u0412 \u043c\u0438\u0440\u0435 \u0441\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445 \u0442\u0435\u0445\u043d\u043e\u043b\u043e\u0433\u0438\u0439 \u0438\u043d\u043e\u0433\u0434\u0430 \u0431\u044b\u0432\u0430\u0435\u0442 \u0441\u043b\u043e\u0436\u043d\u043e \u0440\u0430\u0437\u043e\u0431\u0440\u0430\u0442\u044c\u0441\u044f \u0441\u0430\u043c\u043e\u0441\u0442\u043e\u044f\u0442\u0435\u043b\u044c\u043d\u043e, \u0438 \u0440\u0443\u043a\u043e\u0432\u043e\u0434\u0441\u0442\u0432\u0430 \u0432\u0440\u043e\u0434\u0435 \u044d\u0442\u043e\u0433\u043e \u043f\u0440\u0438\u0437\u0432\u0430\u043d\u044b \u043f\u043e\u043c\u043e\u0433\u0430\u0442\u044c \u0432\u0430\u043c. \u042d\u0442\u043e \u0442\u0430\u043a\u043e\u0435 \u043f\u043e\u0441\u043e\u0431\u0438\u0435, \u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u043c\u043d\u0435 \u0445\u043e\u0442\u0435\u043b\u043e\u0441\u044c \u0431\u044b \u0438\u043c\u0435\u0442\u044c, \u043a\u043e\u0433\u0434\u0430 \u044f \u0442\u043e\u043b\u044c\u043a\u043e \u0437\u043d\u0430\u043a\u043e\u043c\u0438\u043b\u0441\u044f \u0441 \u0414\u043e\u043a\u0435\u0440\u043e\u043c \u0441\u0430\u043c. \u041d\u0430\u0434\u0435\u044e\u0441\u044c, \u0435\u043c\u0443 \u0443\u0434\u0430\u043b\u043e\u0441\u044c \u0437\u0430\u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043e\u0432\u0430\u0442\u044c \u0432\u0430\u0441, \u0442\u0430\u043a \u0447\u0442\u043e \u0442\u0435\u043f\u0435\u0440\u044c \u0432\u044b \u0441\u043c\u043e\u0436\u0435\u0442\u0435 \u0441\u043b\u0435\u0434\u0438\u0442\u044c \u0437\u0430 \u043f\u0440\u043e\u0433\u0440\u0435\u0441\u0441\u043e\u043c \u0432 \u044d\u0442\u043e\u043c \u043e\u0431\u043b\u0430\u0441\u0442\u0438 \u043d\u0435 \u0441\u043e \u0441\u0442\u043e\u0440\u043e\u043d\u044b, \u0430 \u0441 \u043f\u043e\u0437\u0438\u0446\u0438\u0438 \u0437\u043d\u0430\u044e\u0449\u0435\u0433\u043e \u0447\u0435\u043b\u043e\u0432\u0435\u043a\u0430.<\/p>\n\n\n\n<p>\u041d\u0438\u0436\u0435 \u2014 \u0441\u043f\u0438\u0441\u043e\u043a \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0445 \u043f\u043e\u043b\u0435\u0437\u043d\u044b\u0445 \u0440\u0435\u0441\u0443\u0440\u0441\u043e\u0432. \u0421\u043e\u0432\u0435\u0442\u0443\u044e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0414\u043e\u043a\u0435\u0440 \u0432 \u0432\u0430\u0448\u0435\u043c \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u043c \u043f\u0440\u043e\u0435\u043a\u0442\u0435. \u0418 \u043d\u0435 \u0437\u0430\u0431\u044b\u0432\u0430\u0439\u0442\u0435 \u2014 \u043f\u0440\u0430\u043a\u0442\u0438\u043a\u0430 \u043f\u0440\u0438\u0432\u043e\u0434\u0438\u0442 \u043a \u0441\u043e\u0432\u0435\u0440\u0448\u0435\u043d\u0441\u0442\u0432\u0443.<\/p>\n\n\n\n<p><strong>\u0414\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u0440\u0435\u0441\u0443\u0440\u0441\u044b<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/github.com\/veggiemonk\/awesome-docker\" target=\"_blank\" rel=\"noreferrer noopener\">Awesome Docker<\/a><\/li>\n\n\n\n<li><a href=\"http:\/\/docker.atbaker.me\/\" target=\"_blank\" rel=\"noreferrer noopener\">Hello Docker Workshop<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.youtube.com\/watch?v=PJ95WY2DqXo\" target=\"_blank\" rel=\"noreferrer noopener\">Building a microservice with Node.js and Docker<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/blog.codeship.com\/why-docker\/\" target=\"_blank\" rel=\"noreferrer noopener\">Why Docker<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.docker.com\/newsletter-subscription\" target=\"_blank\" rel=\"noreferrer noopener\">Docker Weekly<\/a>\u00a0and\u00a0<a href=\"https:\/\/blog.docker.com\/docker-weekly-archives\/\" target=\"_blank\" rel=\"noreferrer noopener\">archives<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/blog.codeship.com\/\" target=\"_blank\" rel=\"noreferrer noopener\">Codeship Blog<\/a><\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>\u0427\u0442\u043e \u0442\u0430\u043a\u043e\u0435 \u0414\u043e\u043a\u0435\u0440? \u041e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u0435&nbsp;\u0414\u043e\u043a\u0435\u0440\u0430&nbsp;\u0432 \u0412\u0438\u043a\u0438\u043f\u0435\u0434\u0438\u0438 \u0437\u0432\u0443\u0447\u0438\u0442 \u0442\u0430\u043a: \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u043d\u043e\u0435 \u043e\u0431\u0435\u0441\u043f\u0435\u0447\u0435\u043d\u0438\u0435 \u0434\u043b\u044f \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0437\u0430\u0446\u0438\u0438 \u0440\u0430\u0437\u0432\u0451\u0440\u0442\u044b\u0432\u0430\u043d\u0438\u044f \u0438 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f\u043c\u0438 \u0432 \u0441\u0440\u0435\u0434\u0435 \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u043d\u0430 \u0443\u0440\u043e\u0432\u043d\u0435 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u043e\u043d\u043d\u043e\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u044b; \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u00ab\u0443\u043f\u0430\u043a\u043e\u0432\u0430\u0442\u044c\u00bb \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u0441\u043e \u0432\u0441\u0435\u043c \u0435\u0433\u043e \u043e\u043a\u0440\u0443\u0436\u0435\u043d\u0438\u0435\u043c \u0438 \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u044f\u043c\u0438 \u0432 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440, \u0430 \u0442\u0430\u043a\u0436\u0435 [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":1384,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[10],"tags":[49,183,50],"class_list":["post-1383","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-likbez","tag-docker","tag-docker-images","tag-docker-compose","entry-card--landscape"],"_links":{"self":[{"href":"https:\/\/olvas.dev\/index.php?rest_route=\/wp\/v2\/posts\/1383","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/olvas.dev\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/olvas.dev\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/olvas.dev\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/olvas.dev\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=1383"}],"version-history":[{"count":1,"href":"https:\/\/olvas.dev\/index.php?rest_route=\/wp\/v2\/posts\/1383\/revisions"}],"predecessor-version":[{"id":1394,"href":"https:\/\/olvas.dev\/index.php?rest_route=\/wp\/v2\/posts\/1383\/revisions\/1394"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/olvas.dev\/index.php?rest_route=\/wp\/v2\/media\/1384"}],"wp:attachment":[{"href":"https:\/\/olvas.dev\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=1383"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/olvas.dev\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=1383"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/olvas.dev\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=1383"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}