{"id":7111,"date":"2026-10-01T11:00:42","date_gmt":"2026-10-01T07:30:42","guid":{"rendered":"https:\/\/parmin.cloud\/blog\/?p=7111"},"modified":"2026-10-01T11:00:42","modified_gmt":"2026-10-01T07:30:42","slug":"%d8%a2%d9%85%d9%88%d8%b2%d8%b4-%d9%86%d8%b5%d8%a8-%d9%88-%d8%a7%d8%b3%d8%aa%d9%81%d8%a7%d8%af%d9%87-%d8%a7%d8%b2-docker-compose-%d8%b1%d9%88%db%8c-%d8%a7%d9%88%d8%a8%d9%88%d9%86%d8%aa%d9%88","status":"publish","type":"post","link":"https:\/\/parmin.cloud\/blog\/%d8%a2%d9%85%d9%88%d8%b2%d8%b4-%d9%86%d8%b5%d8%a8-%d9%88-%d8%a7%d8%b3%d8%aa%d9%81%d8%a7%d8%af%d9%87-%d8%a7%d8%b2-docker-compose-%d8%b1%d9%88%db%8c-%d8%a7%d9%88%d8%a8%d9%88%d9%86%d8%aa%d9%88\/","title":{"rendered":"\u0622\u0645\u0648\u0632\u0634 \u0646\u0635\u0628 \u0648 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 Docker Compose \u0631\u0648\u06cc \u0627\u0648\u0628\u0648\u0646\u062a\u0648"},"content":{"rendered":"\n<h2 class=\"wp-block-heading\">\u0645\u0642\u062f\u0645\u0647<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Docker \u0641\u0631\u0627\u06cc\u0646\u062f \u0645\u062f\u06cc\u0631\u06cc\u062a \u067e\u0631\u0648\u0633\u0647\u200c\u0647\u0627\u06cc \u0627\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646 \u0631\u0627 \u062f\u0631 \u06a9\u0627\u0646\u062a\u06cc\u0646\u0631\u0647\u0627 \u0633\u0627\u062f\u0647 \u0645\u06cc\u200c\u06a9\u0646\u062f. \u0627\u06af\u0631\u0686\u0647 \u06a9\u0627\u0646\u062a\u06cc\u0646\u0631\u0647\u0627 \u0627\u0632 \u0628\u0631\u062e\u06cc \u062c\u0647\u0627\u062a \u0634\u0628\u06cc\u0647 \u0645\u0627\u0634\u06cc\u0646\u200c\u0647\u0627\u06cc \u0645\u062c\u0627\u0632\u06cc \u0647\u0633\u062a\u0646\u062f\u060c \u0627\u0645\u0627 \u0633\u0628\u06a9\u200c\u062a\u0631 \u0628\u0648\u062f\u0647 \u0648 \u0645\u0646\u0627\u0628\u0639 \u06a9\u0645\u062a\u0631\u06cc \u0645\u0635\u0631\u0641 \u0645\u06cc\u200c\u06a9\u0646\u0646\u062f. \u0647\u0645\u06cc\u0646 \u0645\u0648\u0636\u0648\u0639 \u0628\u0647 \u062a\u0648\u0633\u0639\u0647\u200c\u062f\u0647\u0646\u062f\u06af\u0627\u0646 \u0627\u062c\u0627\u0632\u0647 \u0645\u06cc\u200c\u062f\u0647\u062f \u0645\u062d\u06cc\u0637 \u06cc\u06a9 \u0627\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646 \u0631\u0627 \u0628\u0647 \u0686\u0646\u062f \u0633\u0631\u0648\u06cc\u0633 \u0627\u06cc\u0632\u0648\u0644\u0647 \u062a\u0642\u0633\u06cc\u0645 \u06a9\u0646\u0646\u062f.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u0628\u0631\u0627\u06cc \u0627\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646\u200c\u0647\u0627\u06cc\u06cc \u06a9\u0647 \u0628\u0647 \u0686\u0646\u062f \u0633\u0631\u0648\u06cc\u0633 \u0648\u0627\u0628\u0633\u062a\u0647\u200c\u0627\u0646\u062f\u060c \u0647\u0645\u0627\u0647\u0646\u06af\u200c\u06a9\u0631\u062f\u0646 \u0647\u0645\u0647 \u06a9\u0627\u0646\u062a\u06cc\u0646\u0631\u0647\u0627 \u0628\u0631\u0627\u06cc \u0631\u0627\u0647\u200c\u0627\u0646\u062f\u0627\u0632\u06cc\u060c \u0628\u0631\u0642\u0631\u0627\u0631\u06cc \u0627\u0631\u062a\u0628\u0627\u0637 \u0648 \u062e\u0627\u0645\u0648\u0634\u200c\u0634\u062f\u0646 \u06af\u0631\u0648\u0647\u06cc\u060c \u062e\u06cc\u0644\u06cc \u0632\u0648\u062f \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u062f \u063a\u06cc\u0631\u0642\u0627\u0628\u0644\u200c\u0645\u062f\u06cc\u0631\u06cc\u062a \u0634\u0648\u062f. Docker Compose \u0627\u0628\u0632\u0627\u0631\u06cc \u0627\u0633\u062a \u06a9\u0647 \u0628\u0647 \u0634\u0645\u0627 \u0627\u0645\u06a9\u0627\u0646 \u0645\u06cc\u200c\u062f\u0647\u062f \u0645\u062d\u06cc\u0637\u200c\u0647\u0627\u06cc \u0627\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646\u0650 \u0686\u0646\u062f\u06a9\u0627\u0646\u062a\u06cc\u0646\u0631\u06cc \u0631\u0627 \u0628\u0631 \u0627\u0633\u0627\u0633 \u062a\u0639\u0631\u06cc\u0641\u200c\u0647\u0627\u06cc \u0642\u0631\u0627\u0631\u06af\u0631\u0641\u062a\u0647 \u062f\u0631 \u06cc\u06a9 \u0641\u0627\u06cc\u0644 YAML \u0627\u062c\u0631\u0627 \u06a9\u0646\u06cc\u062f. \u0627\u06cc\u0646 \u0627\u0628\u0632\u0627\u0631 \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u062a\u0639\u0631\u06cc\u0641 \u0633\u0631\u0648\u06cc\u0633\u200c\u0647\u0627\u060c \u0645\u062d\u06cc\u0637\u200c\u0647\u0627\u06cc\u06cc \u06a9\u0627\u0645\u0644\u0627\u064b \u0642\u0627\u0628\u0644\u200c\u0633\u0641\u0627\u0631\u0634\u06cc\u200c\u0633\u0627\u0632\u06cc \u0628\u0627 \u0686\u0646\u062f\u06cc\u0646 \u06a9\u0627\u0646\u062a\u06cc\u0646\u0631 \u0645\u06cc\u200c\u0633\u0627\u0632\u062f \u06a9\u0647 \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u0646\u062f \u0634\u0628\u06a9\u0647\u200c\u0647\u0627 \u0648 \u0648\u0627\u0644\u06cc\u0648\u0645\u200c\u0647\u0627\u06cc \u062f\u0627\u062f\u0647 \u0631\u0627 \u0628\u0627 \u0647\u0645 \u0628\u0647 \u0627\u0634\u062a\u0631\u0627\u06a9 \u0628\u06af\u0630\u0627\u0631\u0646\u062f.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u0627\u06cc\u0646 \u0631\u0627\u0647\u0646\u0645\u0627 \u0634\u0645\u0627 \u0631\u0627 \u062f\u0631 \u0646\u0635\u0628 Docker Compose \u0631\u0648\u06cc \u06cc\u06a9 \u0633\u0631\u0648\u0631 \u0627\u0648\u0628\u0648\u0646\u062a\u0648 \u0648 \u0627\u062c\u0631\u0627\u06cc \u06cc\u06a9 \u06a9\u0627\u0646\u062a\u06cc\u0646\u0631 \u0633\u0627\u062f\u0647 \u0647\u0645\u0631\u0627\u0647\u06cc \u0645\u06cc\u200c\u06a9\u0646\u062f. \u0627\u0632 \u0622\u0646\u062c\u0627 \u0628\u0647 \u0628\u0639\u062f\u060c \u06cc\u0627\u062f \u0645\u06cc\u200c\u06af\u06cc\u0631\u06cc\u062f \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u06cc\u06a9 \u0627\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646 \u0648\u0631\u062f\u067e\u0631\u0633 \u0648 \u06cc\u06a9 \u067e\u0627\u06cc\u06af\u0627\u0647 \u062f\u0627\u062f\u0647 MySQL\u060c \u06cc\u06a9 \u0645\u062d\u06cc\u0637 \u0686\u0646\u062f\u0633\u0631\u0648\u06cc\u0633\u06cc \u0628\u0633\u0627\u0632\u06cc\u062f. \u0647\u0645\u0686\u0646\u06cc\u0646 \u0645\u0648\u0636\u0648\u0639\u0627\u062a \u067e\u06cc\u0634\u0631\u0641\u062a\u0647\u200c\u062a\u0631\u06cc \u0631\u0627 \u067e\u0648\u0634\u0634 \u0645\u06cc\u200c\u062f\u0647\u06cc\u0645\u061b \u0627\u0632 \u062c\u0645\u0644\u0647 \u0645\u0642\u06cc\u0627\u0633\u200c\u062f\u0647\u06cc \u0633\u0631\u0648\u06cc\u0633\u200c\u0647\u0627\u060c \u062a\u0639\u0631\u06cc\u0641 \u0634\u0628\u06a9\u0647\u200c\u0647\u0627\u06cc \u0633\u0641\u0627\u0631\u0634\u06cc \u0648 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u062f\u0633\u062a\u0648\u0631\u0627\u062a \u0645\u0627\u0698\u0648\u0644\u0627\u0631\u0650 include. \u062f\u0631 \u067e\u0627\u06cc\u0627\u0646\u060c \u0627\u06cc\u0646 \u0645\u0642\u0627\u0644\u0647 \u06cc\u06a9 \u0631\u0627\u0647\u0646\u0645\u0627\u06cc \u0645\u0647\u0627\u062c\u0631\u062a \u0627\u0632 docker-compose \u0642\u062f\u06cc\u0645\u06cc (v1) \u0628\u0647 docker compose \u0645\u062f\u0631\u0646 (v2) \u0648 \u06cc\u06a9 \u0628\u062e\u0634 \u0645\u0641\u0635\u0644 \u062f\u0631\u0628\u0627\u0631\u0647 \u0639\u06cc\u0628\u200c\u06cc\u0627\u0628\u06cc \u0645\u0634\u06a9\u0644\u0627\u062a \u0631\u0627\u06cc\u062c \u0645\u0627\u0646\u0646\u062f \u062a\u062f\u0627\u062e\u0644 \u067e\u0648\u0631\u062a \u0648 \u062e\u0637\u0627\u0647\u0627\u06cc \u062f\u0633\u062a\u0631\u0633\u06cc \u0627\u0631\u0627\u0626\u0647 \u0645\u06cc\u200c\u06a9\u0646\u062f.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">\u0646\u06a9\u0627\u062a \u06a9\u0644\u06cc\u062f\u06cc<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Docker Compose \u0627\u0628\u0632\u0627\u0631\u06cc \u0628\u0631\u0627\u06cc \u062a\u0639\u0631\u06cc\u0641 \u0648 \u0627\u062c\u0631\u0627\u06cc \u0627\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646\u200c\u0647\u0627\u06cc \u0686\u0646\u062f\u06a9\u0627\u0646\u062a\u06cc\u0646\u0631\u06cc \u0627\u0633\u062a \u06a9\u0647 \u0627\u0632 \u06cc\u06a9 \u0641\u0627\u06cc\u0644 YAML \u0648\u0627\u062d\u062f \u0628\u0631\u0627\u06cc \u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc \u0633\u0631\u0648\u06cc\u0633\u200c\u0647\u0627\u060c \u0634\u0628\u06a9\u0647\u200c\u0647\u0627 \u0648 \u0648\u0627\u0644\u06cc\u0648\u0645\u200c\u0647\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u06cc\u200c\u06a9\u0646\u062f.<\/li>\n\n\n\n<li>Docker Compose \u0631\u0648\u06cc \u0627\u0648\u0628\u0648\u0646\u062a\u0648 \u0628\u0627 \u0627\u0641\u0632\u0648\u062f\u0646 \u0645\u062e\u0632\u0646 Docker \u0648 \u0646\u0635\u0628 \u067e\u06a9\u06cc\u062c docker-compose-plugin \u0627\u0632 \u0637\u0631\u06cc\u0642 apt \u0646\u0635\u0628 \u0645\u06cc\u200c\u0634\u0648\u062f.<\/li>\n\n\n\n<li>\u062f\u0633\u062a\u0648\u0631 \u0645\u062f\u0631\u0646\u060c <code>docker compose<\/code> \u0627\u0633\u062a (\u0628\u0627 \u0641\u0627\u0635\u0644\u0647). \u0627\u06cc\u0646 \u062f\u0633\u062a\u0648\u0631 \u062c\u0627\u06cc\u06af\u0632\u06cc\u0646 \u0627\u0628\u0632\u0627\u0631 <code>docker-compose<\/code> (\u0628\u0627 \u062e\u0637 \u062a\u06cc\u0631\u0647) \u0646\u0633\u062e\u0647 v1 \u0634\u062f\u0647 \u06a9\u0647 \u0645\u0646\u0633\u0648\u062e \u0634\u062f\u0647 \u0627\u0633\u062a.<\/li>\n\n\n\n<li>\u0628\u0631\u0627\u06cc \u0634\u0631\u0648\u0639 \u06cc\u06a9 \u0627\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646 \u062f\u0631 \u062d\u0627\u0644\u062a \u067e\u0633\u200c\u0632\u0645\u06cc\u0646\u0647 (Detached) \u0627\u0632 <code>docker compose up -d<\/code> \u0648 \u0628\u0631\u0627\u06cc \u062a\u0648\u0642\u0641 \u0648 \u062d\u0630\u0641 \u0647\u0645\u0647 \u06a9\u0627\u0646\u062a\u06cc\u0646\u0631\u0647\u0627 \u0648 \u0634\u0628\u06a9\u0647\u200c\u0647\u0627\u06cc \u0622\u0646 \u0627\u0632 <code>docker compose down<\/code> \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u06cc\u062f.<\/li>\n\n\n\n<li>\u062f\u0633\u062a\u0648\u0631 depends_on \u0628\u0647 \u06a9\u0646\u062a\u0631\u0644 \u062a\u0631\u062a\u06cc\u0628 \u0631\u0627\u0647\u200c\u0627\u0646\u062f\u0627\u0632\u06cc \u0633\u0631\u0648\u06cc\u0633\u200c\u0647\u0627 \u06a9\u0645\u06a9 \u0645\u06cc\u200c\u06a9\u0646\u062f\u061b \u0645\u062b\u0644\u0627\u064b \u0627\u0637\u0645\u06cc\u0646\u0627\u0646 \u0627\u0632 \u0631\u0627\u0647\u200c\u0627\u0646\u062f\u0627\u0632\u06cc \u06a9\u0627\u0646\u062a\u06cc\u0646\u0631 \u067e\u0627\u06cc\u06af\u0627\u0647 \u062f\u0627\u062f\u0647 \u0642\u0628\u0644 \u0627\u0632 \u06a9\u0627\u0646\u062a\u06cc\u0646\u0631 \u0627\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646 \u0648\u0628.<\/li>\n\n\n\n<li>\u0633\u0647 \u062e\u0637\u0627\u06cc \u0631\u0627\u06cc\u062c \u0639\u0628\u0627\u0631\u062a\u200c\u0627\u0646\u062f \u0627\u0632: \u062e\u0637\u0627\u06cc \u00abPermission Denied\u00bb \u0647\u0646\u06af\u0627\u0645 \u0627\u062c\u0631\u0627\u06cc Compose (\u0631\u0627\u0647\u200c\u062d\u0644: \u0627\u0641\u0632\u0648\u062f\u0646 \u06a9\u0627\u0631\u0628\u0631 \u0628\u0647 \u06af\u0631\u0648\u0647 docker)\u060c \u062a\u062f\u0627\u062e\u0644 \u067e\u0648\u0631\u062a \u0647\u0646\u06af\u0627\u0645 \u0631\u0627\u0647\u200c\u0627\u0646\u062f\u0627\u0632\u06cc (\u0631\u0627\u0647\u200c\u062d\u0644: \u062a\u063a\u06cc\u06cc\u0631 \u0646\u06af\u0627\u0634\u062a \u067e\u0648\u0631\u062a \u0645\u06cc\u0632\u0628\u0627\u0646 \u062f\u0631 docker-compose.yml) \u0648 \u0634\u06a9\u0633\u062a \u0631\u0627\u0647\u200c\u0627\u0646\u062f\u0627\u0632\u06cc \u06a9\u0627\u0646\u062a\u06cc\u0646\u0631\u0647\u0627 \u062f\u0631 \u0627\u067e\u200c\u0647\u0627\u06cc \u0686\u0646\u062f\u0633\u0631\u0648\u06cc\u0633\u06cc (\u0631\u0627\u0647\u200c\u062d\u0644: \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 healthcheck \u0647\u0645\u0631\u0627\u0647 \u0628\u0627 depends_on: condition: service_healthy \u0628\u0647\u200c\u062c\u0627\u06cc \u0627\u062a\u06a9\u0627\u06cc \u0635\u0631\u0641 \u0628\u0647 depends_on).<\/li>\n\n\n\n<li>\u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u06cc\u062f \u0628\u0627 \u062f\u0633\u062a\u0648\u0631 <code>docker compose up --scale &lt;service_name>=&lt;number><\/code> \u0686\u0646\u062f\u06cc\u0646 \u0646\u0645\u0648\u0646\u0647 \u0627\u0632 \u06cc\u06a9 \u0633\u0631\u0648\u06cc\u0633 \u0631\u0627 \u0627\u062c\u0631\u0627 \u06a9\u0646\u06cc\u062f.<\/li>\n\n\n\n<li>\u062f\u0633\u062a\u0648\u0631 include \u0628\u0647 \u0634\u0645\u0627 \u0627\u062c\u0627\u0632\u0647 \u0645\u06cc\u200c\u062f\u0647\u062f \u06cc\u06a9 \u0641\u0627\u06cc\u0644 \u0628\u0632\u0631\u06af docker-compose.yml \u0631\u0627 \u0628\u0647 \u0641\u0627\u06cc\u0644\u200c\u0647\u0627\u06cc \u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc \u06a9\u0648\u0686\u06a9\u200c\u062a\u0631 \u0648 \u0642\u0627\u0628\u0644\u200c\u0645\u062f\u06cc\u0631\u06cc\u062a\u200c\u062a\u0631 \u062a\u0642\u0633\u06cc\u0645 \u06a9\u0646\u06cc\u062f.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">\u067e\u06cc\u0634\u200c\u0646\u06cc\u0627\u0632\u0647\u0627<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">\u0628\u0631\u0627\u06cc \u062f\u0646\u0628\u0627\u0644 \u06a9\u0631\u062f\u0646 \u0627\u06cc\u0646 \u0645\u0642\u0627\u0644\u0647 \u0628\u0647 \u0645\u0648\u0627\u0631\u062f \u0632\u06cc\u0631 \u0646\u06cc\u0627\u0632 \u062f\u0627\u0631\u06cc\u062f:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u062f\u0633\u062a\u0631\u0633\u06cc \u0628\u0647 \u06cc\u06a9 \u0645\u0627\u0634\u06cc\u0646 \u0645\u062d\u0644\u06cc \u0627\u0648\u0628\u0648\u0646\u062a\u0648 \u06cc\u0627 \u0633\u0631\u0648\u0631 \u062a\u0648\u0633\u0639\u0647\u060c \u0628\u0647\u200c\u0639\u0646\u0648\u0627\u0646 \u06a9\u0627\u0631\u0628\u0631\u06cc \u063a\u06cc\u0631 root \u0628\u0627 \u062f\u0633\u062a\u0631\u0633\u06cc sudo. \u0627\u06af\u0631 \u0627\u0632 \u0633\u0631\u0648\u0631 \u0631\u0627\u0647\u200c\u062f\u0648\u0631 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u06cc\u200c\u06a9\u0646\u06cc\u062f\u060c \u062a\u0648\u0635\u06cc\u0647 \u0645\u06cc\u200c\u0634\u0648\u062f \u06cc\u06a9 \u0641\u0627\u06cc\u0631\u0648\u0627\u0644 \u0641\u0639\u0627\u0644 \u0631\u0648\u06cc \u0622\u0646 \u0646\u0635\u0628 \u062f\u0627\u0634\u062a\u0647 \u0628\u0627\u0634\u06cc\u062f. \u0628\u0631\u0627\u06cc \u0631\u0627\u0647\u200c\u0627\u0646\u062f\u0627\u0632\u06cc \u0627\u06cc\u0646 \u0645\u0648\u0627\u0631\u062f\u060c \u0631\u0627\u0647\u0646\u0645\u0627\u06cc \u0631\u0627\u0647\u200c\u0627\u0646\u062f\u0627\u0632\u06cc \u0627\u0648\u0644\u06cc\u0647 \u0633\u0631\u0648\u0631 \u0627\u0648\u0628\u0648\u0646\u062a\u0648 \u0631\u0627 \u0645\u0637\u0627\u0644\u0639\u0647 \u06a9\u0646\u06cc\u062f.<\/li>\n\n\n\n<li>Docker \u0646\u0635\u0628\u200c\u0634\u062f\u0647 \u0631\u0648\u06cc \u0633\u0631\u0648\u0631 \u06cc\u0627 \u0645\u0627\u0634\u06cc\u0646 \u0645\u062d\u0644\u06cc \u0634\u0645\u0627\u060c \u0637\u0628\u0642 \u0645\u0631\u0627\u062d\u0644 \u06f1 \u0648 \u06f2 \u0645\u0642\u0627\u0644\u0647 \u00ab\u0622\u0645\u0648\u0632\u0634 \u0646\u0635\u0628 Docker \u0631\u0648\u06cc \u0627\u0648\u0628\u0648\u0646\u062a\u0648 \u2013 \u0631\u0627\u0647\u0646\u0645\u0627\u06cc \u06af\u0627\u0645\u200c\u0628\u0647\u200c\u06af\u0627\u0645\u00bb.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>\u062a\u0648\u062c\u0647:<\/strong> \u0627\u0632 Docker Compose \u0646\u0633\u062e\u0647 v2 \u0628\u0647 \u0628\u0639\u062f\u060c Docker \u0628\u0647 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u062f\u0633\u062a\u0648\u0631 \u067e\u0644\u0627\u06af\u06cc\u0646 compose \u062f\u0631 CLI \u0631\u0648\u06cc \u0622\u0648\u0631\u062f\u0647 \u0648 \u0627\u0632 docker-compose \u0627\u0635\u0644\u06cc \u0641\u0627\u0635\u0644\u0647 \u06af\u0631\u0641\u062a\u0647 \u0627\u0633\u062a\u061b \u0647\u0645\u0627\u0646\u200c\u0637\u0648\u0631 \u06a9\u0647 \u062f\u0631 \u0645\u0642\u0627\u0644\u0647 \u00ab\u0622\u0645\u0648\u0632\u0634 \u0646\u0635\u0628 Docker Compose \u0631\u0648\u06cc \u0627\u0648\u0628\u0648\u0646\u062a\u0648 (\u0631\u0627\u0647\u0646\u0645\u0627\u06cc \u06af\u0627\u0645\u200c\u0628\u0647\u200c\u06af\u0627\u0645)\u00bb \u0645\u0633\u062a\u0646\u062f \u0634\u062f\u0647 \u0627\u0633\u062a. \u0627\u06af\u0631\u0686\u0647 \u0631\u0648\u0634 \u0646\u0635\u0628 \u0645\u062a\u0641\u0627\u0648\u062a \u0627\u0633\u062a\u060c \u0627\u0645\u0627 \u062f\u0631 \u0639\u0645\u0644 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u0622\u0646 \u0641\u0642\u0637 \u0628\u0647 \u062d\u0630\u0641 \u062e\u0637 \u062a\u06cc\u0631\u0647 \u0627\u0632 \u062f\u0633\u062a\u0648\u0631\u0627\u062a docker-compose \u0648 \u062a\u0628\u062f\u06cc\u0644 \u0622\u0646 \u0628\u0647 docker compose \u062e\u062a\u0645 \u0645\u06cc\u200c\u0634\u0648\u062f. \u0628\u0631\u0627\u06cc \u062c\u0632\u0626\u06cc\u0627\u062a \u06a9\u0627\u0645\u0644 \u0633\u0627\u0632\u06af\u0627\u0631\u06cc\u060c \u0645\u0633\u062a\u0646\u062f\u0627\u062a \u0631\u0633\u0645\u06cc Docker \u062f\u0631\u0628\u0627\u0631\u0647 \u0633\u0627\u0632\u06af\u0627\u0631\u06cc \u062f\u0633\u062a\u0648\u0631\u0627\u062a \u0628\u06cc\u0646 compose \u062c\u062f\u06cc\u062f \u0648 docker-compose \u0642\u062f\u06cc\u0645\u06cc \u0631\u0627 \u0628\u0631\u0631\u0633\u06cc \u06a9\u0646\u06cc\u062f.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">\u0645\u0631\u062d\u0644\u0647 \u06f1 \u2014 \u0646\u0635\u0628 Docker Compose<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">\u062f\u0648 \u0631\u0648\u0634 \u0628\u0631\u0627\u06cc \u0646\u0635\u0628 Docker Compose \u0631\u0648\u06cc \u0627\u0648\u0628\u0648\u0646\u062a\u0648 \u0648\u062c\u0648\u062f \u062f\u0627\u0631\u062f:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u0646\u0635\u0628 \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u0645\u062e\u0632\u0646<\/li>\n\n\n\n<li>\u0646\u0635\u0628 \u062f\u0633\u062a\u06cc<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">\u062f\u0631 \u0627\u06cc\u0646 \u0628\u062e\u0634 \u0647\u0631 \u062f\u0648 \u0631\u0648\u0634 \u0631\u0627 \u0628\u0631\u0631\u0633\u06cc \u0645\u06cc\u200c\u06a9\u0646\u06cc\u0645.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">\u0646\u0635\u0628 Docker Compose \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u0645\u062e\u0632\u0646 apt<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">\u0627\u0628\u062a\u062f\u0627 \u0645\u062e\u0632\u0646 apt \u0645\u0631\u0628\u0648\u0637 \u0628\u0647 Docker \u0631\u0627 \u0631\u0627\u0647\u200c\u0627\u0646\u062f\u0627\u0632\u06cc \u0645\u06cc\u200c\u06a9\u0646\u06cc\u0645:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code># \u0627\u0641\u0632\u0648\u062f\u0646 \u06a9\u0644\u06cc\u062f GPG \u0631\u0633\u0645\u06cc Docker:\nsudo apt-get update\nsudo apt-get install ca-certificates curl\nsudo install -m 0755 -d \/etc\/apt\/keyrings\nsudo curl -fsSL https:\/\/docker-ce.parmincloud.ir\/gpg -o \/etc\/apt\/keyrings\/docker.asc\nsudo chmod a+r \/etc\/apt\/keyrings\/docker.asc\n\n# \u0627\u0641\u0632\u0648\u062f\u0646 \u0645\u062e\u0632\u0646 \u0628\u0647 \u0645\u0646\u0627\u0628\u0639 Apt:\necho \\\n  \"deb &#91;arch=$(dpkg --print-architecture) signed-by=\/etc\/apt\/keyrings\/docker.asc] https:\/\/docker-ce.parmincloud.ir\/ \\\n  $(. \/etc\/os-release &amp;&amp; echo \"${UBUNTU_CODENAME:-$VERSION_CODENAME}\") stable\" | \\\n  sudo tee \/etc\/apt\/sources.list.d\/docker.list &gt; \/dev\/null\nsudo apt-get update<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\u062d\u0627\u0644\u0627 \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u06cc\u062f Docker Compose \u0631\u0627 \u0628\u0627 \u062f\u0633\u062a\u0648\u0631 \u0632\u06cc\u0631 \u0646\u0635\u0628 \u06a9\u0646\u06cc\u062f:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo apt install docker-compose-plugin<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Docker Compose \u0627\u06a9\u0646\u0648\u0646 \u0628\u0627 \u0645\u0648\u0641\u0642\u06cc\u062a \u0631\u0648\u06cc \u0633\u06cc\u0633\u062a\u0645 \u0634\u0645\u0627 \u0646\u0635\u0628 \u0634\u062f\u0647 \u0627\u0633\u062a. \u0628\u0631\u0627\u06cc \u062a\u0623\u06cc\u06cc\u062f \u0645\u0648\u0641\u0642\u06cc\u062a\u200c\u0622\u0645\u06cc\u0632 \u0628\u0648\u062f\u0646 \u0646\u0635\u0628\u060c \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u06cc\u062f \u0627\u06cc\u0646 \u062f\u0633\u062a\u0648\u0631 \u0631\u0627 \u0627\u062c\u0631\u0627 \u06a9\u0646\u06cc\u062f:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>docker compose version<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\u062e\u0631\u0648\u062c\u06cc \u0645\u0634\u0627\u0628\u0647 \u0632\u06cc\u0631 \u0631\u0627 \u062e\u0648\u0627\u0647\u06cc\u062f \u062f\u06cc\u062f:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Docker Compose version v2.x.x<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>\u062a\u0648\u062c\u0647:<\/strong> Docker Compose \u0646\u0633\u062e\u0647 v5\u060c \u0646\u0633\u062e\u0647 \u0627\u0635\u0644\u06cc \u0628\u0639\u062f\u06cc \u067e\u0633 \u0627\u0632 v2 \u0627\u0633\u062a. \u062a\u06cc\u0645 Docker \u0646\u0633\u062e\u0647\u200c\u0647\u0627\u06cc v3 \u0648 v4 \u0631\u0627 \u0646\u0627\u062f\u06cc\u062f\u0647 \u06af\u0631\u0641\u062a \u062a\u0627 \u0627\u0632 \u0627\u06cc\u062c\u0627\u062f \u0627\u0628\u0647\u0627\u0645 \u0628\u0627 \u0634\u0645\u0627\u0631\u0647 \u0646\u0633\u062e\u0647\u200c\u0647\u0627\u06cc \u0642\u062f\u06cc\u0645\u06cc \u0641\u0631\u0645\u062a \u0641\u0627\u06cc\u0644 Compose (\u0646\u0633\u062e\u0647\u200c\u0647\u0627\u06cc 2.x \u0648 3.x \u0645\u0631\u0628\u0648\u0637 \u0628\u0647 \u062f\u0648\u0631\u0627\u0646 v1) \u062c\u0644\u0648\u06af\u06cc\u0631\u06cc \u0634\u0648\u062f. Compose v5 \u0627\u0632 \u0646\u0638\u0631 \u0639\u0645\u0644\u06a9\u0631\u062f\u06cc \u0628\u0627 v2 \u0633\u0627\u0632\u06af\u0627\u0631 \u0627\u0633\u062a\u061b \u0641\u0627\u06cc\u0644\u200c\u0647\u0627 \u0648 \u062f\u0633\u062a\u0648\u0631\u0627\u062a docker-compose.yml \u0645\u0648\u062c\u0648\u062f \u0634\u0645\u0627 \u0628\u062f\u0648\u0646 \u0647\u06cc\u0686 \u062a\u063a\u06cc\u06cc\u0631\u06cc \u06a9\u0627\u0631 \u0645\u06cc\u200c\u06a9\u0646\u0646\u062f. \u0627\u0641\u0632\u0648\u062f\u0647 \u0627\u0635\u0644\u06cc v5 \u06cc\u06a9 SDK \u0631\u0633\u0645\u06cc Go \u0627\u0633\u062a \u06a9\u0647 \u0628\u0647 \u062a\u0648\u0633\u0639\u0647\u200c\u062f\u0647\u0646\u062f\u06af\u0627\u0646 \u0627\u062c\u0627\u0632\u0647 \u0645\u06cc\u200c\u062f\u0647\u062f \u0642\u0627\u0628\u0644\u06cc\u062a\u200c\u0647\u0627\u06cc Compose \u0631\u0627 \u0645\u0633\u062a\u0642\u06cc\u0645\u0627\u064b \u062f\u0631 \u0627\u0628\u0632\u0627\u0631\u0647\u0627 \u0648 \u0627\u062a\u0648\u0645\u0627\u0633\u06cc\u0648\u0646 \u062e\u0648\u062f\u0634\u0627\u0646 \u06cc\u06a9\u067e\u0627\u0631\u0686\u0647 \u06a9\u0646\u0646\u062f. \u067e\u06a9\u06cc\u062c docker-compose-plugin \u06a9\u0647 \u062f\u0631 \u0627\u06cc\u0646 \u0631\u0627\u0647\u0646\u0645\u0627 \u0646\u0635\u0628 \u0645\u06cc\u200c\u0634\u0648\u062f\u060c \u0627\u0632 \u0637\u0631\u06cc\u0642 \u0641\u0631\u0627\u06cc\u0646\u062f \u0627\u0633\u062a\u0627\u0646\u062f\u0627\u0631\u062f apt upgrade \u0628\u0647 v5 \u0627\u0631\u062a\u0642\u0627 \u062e\u0648\u0627\u0647\u062f \u06cc\u0627\u0641\u062a. \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u06cc\u062f \u0646\u0633\u062e\u0647\u200c\u0647\u0627\u06cc \u0645\u0646\u062a\u0634\u0631\u0634\u062f\u0647 \u0631\u0627 \u062f\u0631 \u0635\u0641\u062d\u0647 \u0631\u0633\u0645\u06cc GitHub Releases \u067e\u0631\u0648\u0698\u0647 Compose \u062f\u0646\u0628\u0627\u0644 \u06a9\u0646\u06cc\u062f.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">\u0646\u0635\u0628 \u062f\u0633\u062a\u06cc Docker Compose<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">\u0628\u0631\u0627\u06cc \u0627\u0637\u0645\u06cc\u0646\u0627\u0646 \u0627\u0632 \u062f\u0631\u06cc\u0627\u0641\u062a \u062c\u062f\u06cc\u062f\u062a\u0631\u06cc\u0646 \u0646\u0633\u062e\u0647 \u067e\u0627\u06cc\u062f\u0627\u0631 Docker Compose\u060c \u0627\u06cc\u0646 \u0646\u0631\u0645\u200c\u0627\u0641\u0632\u0627\u0631 \u0631\u0627 \u0627\u0632 \u0645\u062e\u0632\u0646 \u0631\u0633\u0645\u06cc GitHub \u0622\u0646 \u062f\u0627\u0646\u0644\u0648\u062f \u06a9\u0646\u06cc\u062f.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u0627\u0628\u062a\u062f\u0627 \u0622\u062e\u0631\u06cc\u0646 \u0646\u0633\u062e\u0647 \u0645\u0648\u062c\u0648\u062f \u062f\u0631 \u0635\u0641\u062d\u0647 Releases \u0622\u0646 \u0631\u0627 \u0628\u0631\u0631\u0633\u06cc \u06a9\u0646\u06cc\u062f. \u062f\u0631 \u0632\u0645\u0627\u0646 \u0646\u06af\u0627\u0631\u0634 \u0627\u06cc\u0646 \u0645\u0642\u0627\u0644\u0647\u060c \u062c\u062f\u06cc\u062f\u062a\u0631\u06cc\u0646 \u0646\u0633\u062e\u0647 \u067e\u0627\u06cc\u062f\u0627\u0631 v2.40.2 \u0627\u0633\u062a.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u0628\u0631\u0627\u06cc \u062f\u0627\u0646\u0644\u0648\u062f \u0627\u0632 \u062f\u0633\u062a\u0648\u0631 \u0632\u06cc\u0631 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u06cc\u062f:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>mkdir -p ~\/.docker\/cli-plugins\/\ncurl -SL https:\/\/github.com\/docker\/compose\/releases\/download\/v2.40.2\/docker-compose-linux-x86_64 -o ~\/.docker\/cli-plugins\/docker-compose<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\u0633\u067e\u0633 \u062f\u0633\u062a\u0631\u0633\u06cc\u200c\u0647\u0627\u06cc \u062f\u0631\u0633\u062a \u0631\u0627 \u062a\u0646\u0638\u06cc\u0645 \u06a9\u0646\u06cc\u062f \u062a\u0627 \u062f\u0633\u062a\u0648\u0631 docker compose \u0642\u0627\u0628\u0644 \u0627\u062c\u0631\u0627 \u0628\u0627\u0634\u062f:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>chmod +x ~\/.docker\/cli-plugins\/docker-compose<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\u062f\u0631 \u0628\u062e\u0634 \u0628\u0639\u062f\u06cc \u0645\u06cc\u200c\u0628\u06cc\u0646\u06cc\u062f \u06a9\u0647 \u0686\u0637\u0648\u0631 \u06cc\u06a9 \u0641\u0627\u06cc\u0644 docker-compose.yml \u0631\u0627\u0647\u200c\u0627\u0646\u062f\u0627\u0632\u06cc \u06a9\u0631\u062f\u0647 \u0648 \u0628\u0627 \u0627\u06cc\u0646 \u0627\u0628\u0632\u0627\u0631 \u06cc\u06a9 \u0645\u062d\u06cc\u0637 \u06a9\u0627\u0646\u062a\u06cc\u0646\u0631\u06cc \u0631\u0627 \u0628\u0627\u0644\u0627 \u0628\u06cc\u0627\u0648\u0631\u06cc\u062f.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">\u0645\u0631\u062d\u0644\u0647 \u06f2 \u2014 \u0631\u0627\u0647\u200c\u0627\u0646\u062f\u0627\u0632\u06cc \u0641\u0627\u06cc\u0644 docker-compose.yml<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">\u0628\u0631\u0627\u06cc \u0646\u0645\u0627\u06cc\u0634 \u0646\u062d\u0648\u0647 \u0631\u0627\u0647\u200c\u0627\u0646\u062f\u0627\u0632\u06cc \u0641\u0627\u06cc\u0644 docker-compose.yml \u0648 \u06a9\u0627\u0631 \u0628\u0627 Docker Compose\u060c \u06cc\u06a9 \u0645\u062d\u06cc\u0637 \u0648\u0628\u200c\u0633\u0631\u0648\u0631 \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u0627\u06cc\u0645\u06cc\u062c \u0631\u0633\u0645\u06cc Nginx \u062f\u0631 Docker Hub (\u0631\u062c\u06cc\u0633\u062a\u0631\u06cc \u0639\u0645\u0648\u0645\u06cc Docker) \u0645\u06cc\u200c\u0633\u0627\u0632\u06cc\u062f. \u0627\u06cc\u0646 \u0645\u062d\u06cc\u0637 \u06a9\u0627\u0646\u062a\u06cc\u0646\u0631\u06cc \u06cc\u06a9 \u0641\u0627\u06cc\u0644 HTML \u0627\u0633\u062a\u0627\u062a\u06cc\u06a9 \u0633\u0627\u062f\u0647 \u0631\u0627 \u0633\u0631\u0648 \u0645\u06cc\u200c\u06a9\u0646\u062f.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u0627\u0628\u062a\u062f\u0627 \u062f\u0631 \u067e\u0648\u0634\u0647 \u062e\u0627\u0646\u0647 \u062e\u0648\u062f \u06cc\u06a9 \u062f\u0627\u06cc\u0631\u06a9\u062a\u0648\u0631\u06cc \u062c\u062f\u06cc\u062f \u0628\u0633\u0627\u0632\u06cc\u062f \u0648 \u0648\u0627\u0631\u062f \u0622\u0646 \u0634\u0648\u06cc\u062f:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>mkdir ~\/compose-demo\ncd ~\/compose-demo<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\u062f\u0631 \u0627\u06cc\u0646 \u062f\u0627\u06cc\u0631\u06a9\u062a\u0648\u0631\u06cc\u060c \u06cc\u06a9 \u067e\u0648\u0634\u0647 \u0627\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646 \u0628\u0633\u0627\u0632\u06cc\u062f \u06a9\u0647 \u0628\u0647\u200c\u0639\u0646\u0648\u0627\u0646 \u0631\u06cc\u0634\u0647 \u0645\u0633\u062a\u0646\u062f\u0627\u062a (Document Root) \u0645\u062d\u06cc\u0637 Nginx \u0634\u0645\u0627 \u0639\u0645\u0644 \u06a9\u0646\u062f:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>mkdir app<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\u0628\u0627 \u0648\u06cc\u0631\u0627\u06cc\u0634\u06af\u0631 \u0645\u062a\u0646 \u062f\u0644\u062e\u0648\u0627\u0647 \u062e\u0648\u062f\u060c \u06cc\u06a9 \u0641\u0627\u06cc\u0644 index.html \u062c\u062f\u06cc\u062f \u062f\u0627\u062e\u0644 \u067e\u0648\u0634\u0647 app \u0628\u0633\u0627\u0632\u06cc\u062f:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>nano app\/index.html<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\u0645\u062d\u062a\u0648\u0627\u06cc \u0632\u06cc\u0631 \u0631\u0627 \u062f\u0631 \u0627\u06cc\u0646 \u0641\u0627\u06cc\u0644 \u0642\u0631\u0627\u0631 \u062f\u0647\u06cc\u062f:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong><code>~\/compose-demo\/app\/index.html<\/code><\/strong><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>&lt;!doctype html&gt;\n&lt;html lang=\"en\"&gt;\n&lt;head&gt;\n    &lt;meta charset=\"utf-8\"&gt;\n    &lt;title&gt;Docker Compose Demo&lt;\/title&gt;\n    &lt;link rel=\"stylesheet\" href=\"https:\/\/cdn.jsdelivr.net\/gh\/kognise\/water.css@latest\/dist\/dark.min.css\"&gt;\n&lt;\/head&gt;\n&lt;body&gt;\n\n    &lt;h1&gt;This is a Docker Compose Demo Page.&lt;\/h1&gt;\n    &lt;p&gt;This content is being served by an Nginx container.&lt;\/p&gt;\n\n&lt;\/body&gt;\n&lt;\/html&gt;<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\u067e\u0633 \u0627\u0632 \u0627\u062a\u0645\u0627\u0645 \u06a9\u0627\u0631\u060c \u0641\u0627\u06cc\u0644 \u0631\u0627 \u0630\u062e\u06cc\u0631\u0647 \u06a9\u0631\u062f\u0647 \u0648 \u0628\u0628\u0646\u062f\u06cc\u062f. \u0627\u06af\u0631 \u0627\u0632 nano \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u06cc\u200c\u06a9\u0646\u06cc\u062f\u060c \u0628\u0627 \u0641\u0634\u0631\u062f\u0646 CTRL+X \u0648 \u0633\u067e\u0633 Y \u0648 ENTER \u0627\u06cc\u0646 \u06a9\u0627\u0631 \u0631\u0627 \u0627\u0646\u062c\u0627\u0645 \u062f\u0647\u06cc\u062f.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u0633\u067e\u0633 \u0641\u0627\u06cc\u0644 docker-compose.yml \u0631\u0627 \u0628\u0633\u0627\u0632\u06cc\u062f:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>nano docker-compose.yml<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\u0645\u062d\u062a\u0648\u0627\u06cc \u0632\u06cc\u0631 \u0631\u0627 \u062f\u0631 \u0641\u0627\u06cc\u0644 docker-compose.yml \u062e\u0648\u062f \u0642\u0631\u0627\u0631 \u062f\u0647\u06cc\u062f:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong><code>docker-compose.yml<\/code><\/strong><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>services:\n  web:\n    image: hub.cr.parmincloud.ir\/library\/nginx:alpine\n    ports:\n      - \"8000:80\"\n    volumes:\n      - .\/app:\/usr\/share\/nginx\/html<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\u062f\u0631 Docker Compose \u0645\u062f\u0631\u0646\u060c \u0641\u06cc\u0644\u062f version \u0627\u062e\u062a\u06cc\u0627\u0631\u06cc \u0627\u0633\u062a \u0648 \u0645\u0639\u0645\u0648\u0644\u0627\u064b \u062d\u0630\u0641 \u0645\u06cc\u200c\u0634\u0648\u062f\u061b \u0686\u0631\u0627 \u06a9\u0647 Compose \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u062f \u0646\u0633\u062e\u0647 \u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc \u0631\u0627 \u0628\u0647\u200c\u0635\u0648\u0631\u062a \u062e\u0648\u062f\u06a9\u0627\u0631 \u062a\u0634\u062e\u06cc\u0635 \u062f\u0647\u062f. \u0645\u062b\u0627\u0644 \u0628\u0627\u0644\u0627 \u0641\u06cc\u0644\u062f version \u0631\u0627 \u0634\u0627\u0645\u0644 \u0646\u0645\u06cc\u200c\u0634\u0648\u062f \u06a9\u0647 \u0631\u0648\u06cc\u06a9\u0631\u062f \u062a\u0648\u0635\u06cc\u0647\u200c\u0634\u062f\u0647 \u0628\u0631\u0627\u06cc \u0628\u06cc\u0634\u062a\u0631 \u067e\u0631\u0648\u0698\u0647\u200c\u0647\u0627\u06cc \u062c\u062f\u06cc\u062f \u0627\u0633\u062a. \u062a\u0646\u0647\u0627 \u062f\u0631 \u0635\u0648\u0631\u062a \u0646\u06cc\u0627\u0632 \u0628\u0647 \u0633\u0627\u0632\u06af\u0627\u0631\u06cc \u0628\u0627 \u0627\u0628\u0632\u0627\u0631\u0647\u0627\u06cc \u0642\u062f\u06cc\u0645\u06cc \u0644\u0627\u0632\u0645 \u0627\u0633\u062a version \u0631\u0627 \u0645\u0634\u062e\u0635 \u06a9\u0646\u06cc\u062f.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u0633\u067e\u0633 \u0628\u0644\u0648\u06a9 services \u0631\u0627 \u062f\u0627\u0631\u06cc\u062f \u06a9\u0647 \u0633\u0631\u0648\u06cc\u0633\u200c\u0647\u0627\u06cc \u062a\u0634\u06a9\u06cc\u0644\u200c\u062f\u0647\u0646\u062f\u0647 \u0627\u06cc\u0646 \u0645\u062d\u06cc\u0637 \u0631\u0627 \u062f\u0631 \u0622\u0646 \u062a\u0639\u0631\u06cc\u0641 \u0645\u06cc\u200c\u06a9\u0646\u06cc\u062f. \u062f\u0631 \u0627\u06cc\u0646 \u0645\u0648\u0631\u062f\u060c \u06cc\u06a9 \u0633\u0631\u0648\u06cc\u0633 \u0648\u0627\u062d\u062f \u0628\u0627 \u0646\u0627\u0645 web \u062f\u0627\u0631\u06cc\u062f. \u0627\u06cc\u0646 \u0633\u0631\u0648\u06cc\u0633 \u0627\u0632 \u0627\u06cc\u0645\u06cc\u062c nginx:alpine \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0631\u062f\u0647 \u0648 \u0628\u0627 \u062f\u0633\u062a\u0648\u0631 ports \u06cc\u06a9 \u0646\u06af\u0627\u0634\u062a \u067e\u0648\u0631\u062a \u062a\u0646\u0638\u06cc\u0645 \u0645\u06cc\u200c\u06a9\u0646\u062f. \u062a\u0645\u0627\u0645 \u062f\u0631\u062e\u0648\u0627\u0633\u062a\u200c\u0647\u0627\u06cc \u0631\u0633\u06cc\u062f\u0647 \u0628\u0647 \u067e\u0648\u0631\u062a 8000 \u0645\u0627\u0634\u06cc\u0646 \u0645\u06cc\u0632\u0628\u0627\u0646 (\u0633\u06cc\u0633\u062a\u0645\u06cc \u06a9\u0647 Docker Compose \u0631\u0627 \u0627\u0632 \u0631\u0648\u06cc \u0622\u0646 \u0627\u062c\u0631\u0627 \u0645\u06cc\u200c\u06a9\u0646\u06cc\u062f)\u060c \u0628\u0647 \u06a9\u0627\u0646\u062a\u06cc\u0646\u0631 web \u0631\u0648\u06cc \u067e\u0648\u0631\u062a 80 \u0647\u062f\u0627\u06cc\u062a \u0645\u06cc\u200c\u0634\u0648\u0646\u062f\u061b \u062c\u0627\u06cc\u06cc \u06a9\u0647 Nginx \u062f\u0631 \u062d\u0627\u0644 \u0627\u062c\u0631\u0627\u0633\u062a.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u062f\u0633\u062a\u0648\u0631 volumes \u06cc\u06a9 \u0648\u0627\u0644\u06cc\u0648\u0645 \u0627\u0634\u062a\u0631\u0627\u06a9\u06cc \u0628\u06cc\u0646 \u0645\u0627\u0634\u06cc\u0646 \u0645\u06cc\u0632\u0628\u0627\u0646 \u0648 \u06a9\u0627\u0646\u062a\u06cc\u0646\u0631 \u0627\u06cc\u062c\u0627\u062f \u0645\u06cc\u200c\u06a9\u0646\u062f. \u0627\u06cc\u0646 \u06a9\u0627\u0631 \u067e\u0648\u0634\u0647 \u0645\u062d\u0644\u06cc app \u0631\u0627 \u0628\u0627 \u06a9\u0627\u0646\u062a\u06cc\u0646\u0631 \u0628\u0647 \u0627\u0634\u062a\u0631\u0627\u06a9 \u0645\u06cc\u200c\u06af\u0630\u0627\u0631\u062f \u0648 \u0648\u0627\u0644\u06cc\u0648\u0645 \u062f\u0627\u062e\u0644 \u06a9\u0627\u0646\u062a\u06cc\u0646\u0631 \u062f\u0631 \u0645\u0633\u06cc\u0631 \/usr\/share\/nginx\/html \u0642\u0631\u0627\u0631 \u0645\u06cc\u200c\u06af\u06cc\u0631\u062f \u06a9\u0647 \u0627\u06cc\u0646 \u0645\u0633\u06cc\u0631\u060c \u0631\u06cc\u0634\u0647 \u0645\u0633\u062a\u0646\u062f\u0627\u062a \u067e\u06cc\u0634\u200c\u0641\u0631\u0636 Nginx \u0631\u0627 \u0628\u0627\u0632\u0646\u0648\u06cc\u0633\u06cc (Override) \u0645\u06cc\u200c\u06a9\u0646\u062f.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u0641\u0627\u06cc\u0644 \u0631\u0627 \u0630\u062e\u06cc\u0631\u0647 \u06a9\u0631\u062f\u0647 \u0648 \u0628\u0628\u0646\u062f\u06cc\u062f.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u0634\u0645\u0627 \u06cc\u06a9 \u0635\u0641\u062d\u0647 \u062f\u0645\u0648 \u0648 \u06cc\u06a9 \u0641\u0627\u06cc\u0644 docker-compose.yml \u0628\u0631\u0627\u06cc \u0633\u0627\u062e\u062a \u06cc\u06a9 \u0645\u062d\u06cc\u0637 \u0648\u0628\u200c\u0633\u0631\u0648\u0631 \u06a9\u0627\u0646\u062a\u06cc\u0646\u0631\u06cc \u06a9\u0647 \u0622\u0646 \u0631\u0627 \u0633\u0631\u0648 \u0645\u06cc\u200c\u06a9\u0646\u062f\u060c \u0631\u0627\u0647\u200c\u0627\u0646\u062f\u0627\u0632\u06cc \u06a9\u0631\u062f\u0647\u200c\u0627\u06cc\u062f. \u062f\u0631 \u0645\u0631\u062d\u0644\u0647 \u0628\u0639\u062f\u060c \u0627\u06cc\u0646 \u0645\u062d\u06cc\u0637 \u0631\u0627 \u0628\u0627 Docker Compose \u0628\u0627\u0644\u0627 \u0645\u06cc\u200c\u0622\u0648\u0631\u06cc\u062f.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">\u0645\u0631\u062d\u0644\u0647 \u06f3 \u2014 \u0627\u062c\u0631\u0627\u06cc Docker Compose<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">\u062d\u0627\u0644\u0627 \u06a9\u0647 \u0641\u0627\u06cc\u0644 docker-compose.yml \u062f\u0631 \u062c\u0627\u06cc \u062e\u0648\u062f \u0642\u0631\u0627\u0631 \u062f\u0627\u0631\u062f\u060c \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u06cc\u062f Docker Compose \u0631\u0627 \u0628\u0631\u0627\u06cc \u0628\u0627\u0644\u0627 \u0622\u0648\u0631\u062f\u0646 \u0645\u062d\u06cc\u0637 \u062e\u0648\u062f \u0627\u062c\u0631\u0627 \u06a9\u0646\u06cc\u062f. \u062f\u0633\u062a\u0648\u0631 \u0632\u06cc\u0631 \u0627\u06cc\u0645\u06cc\u062c\u200c\u0647\u0627\u06cc \u0644\u0627\u0632\u0645 Docker \u0631\u0627 \u062f\u0627\u0646\u0644\u0648\u062f \u06a9\u0631\u062f\u0647\u060c \u0628\u0631\u0627\u06cc \u0633\u0631\u0648\u06cc\u0633 web \u06cc\u06a9 \u06a9\u0627\u0646\u062a\u06cc\u0646\u0631 \u0645\u06cc\u200c\u0633\u0627\u0632\u062f \u0648 \u0645\u062d\u06cc\u0637 \u06a9\u0627\u0646\u062a\u06cc\u0646\u0631\u06cc \u0631\u0627 \u062f\u0631 \u062d\u0627\u0644\u062a \u067e\u0633\u200c\u0632\u0645\u06cc\u0646\u0647 \u0627\u062c\u0631\u0627 \u0645\u06cc\u200c\u06a9\u0646\u062f:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>docker compose up -d<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Docker Compose \u0627\u0628\u062a\u062f\u0627 \u0627\u06cc\u0645\u06cc\u062c \u062a\u0639\u0631\u06cc\u0641\u200c\u0634\u062f\u0647 \u0631\u0627 \u0631\u0648\u06cc \u0633\u06cc\u0633\u062a\u0645 \u0645\u062d\u0644\u06cc \u0634\u0645\u0627 \u062c\u0633\u062a\u200c\u0648\u062c\u0648 \u0645\u06cc\u200c\u06a9\u0646\u062f \u0648 \u062f\u0631 \u0635\u0648\u0631\u062a \u067e\u06cc\u062f\u0627 \u0646\u06a9\u0631\u062f\u0646 \u0622\u0646\u060c \u0627\u06cc\u0645\u06cc\u062c \u0631\u0627 \u0627\u0632 Docker Hub \u062f\u0627\u0646\u0644\u0648\u062f \u0645\u06cc\u200c\u06a9\u0646\u062f. \u062e\u0631\u0648\u062c\u06cc \u0645\u0634\u0627\u0628\u0647 \u0632\u06cc\u0631 \u0631\u0627 \u0645\u06cc\u200c\u0628\u06cc\u0646\u06cc\u062f:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u062e\u0631\u0648\u062c\u06cc:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Creating network \"compose-demo_default\" with the default driver\nPulling web (nginx:alpine)...\nalpine: Pulling from library\/nginx\ncbdbe7a5bc2a: Pull complete\n10c113fb0c77: Pull complete\n9ba64393807b: Pull complete\nc829a9c40ab2: Pull complete\n61d685417b2f: Pull complete\nDigest: sha256:57254039c6313fe8c53f1acbf15657ec9616a813397b74b063e32443427c5502\nStatus: Downloaded newer image for nginx:alpine\nCreating compose-demo_web_1 ... done<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>\u062a\u0648\u062c\u0647:<\/strong> \u0627\u06af\u0631 \u0647\u0646\u06af\u0627\u0645 \u0627\u062c\u0631\u0627\u06cc docker compose up \u0628\u0627 \u062e\u0637\u0627\u06cc \u00abpermission denied\u00bb \u0631\u0648\u0628\u0631\u0648 \u0634\u062f\u06cc\u062f\u060c \u0627\u06cc\u0646 \u0645\u0639\u0645\u0648\u0644\u0627\u064b \u06cc\u0639\u0646\u06cc \u06a9\u0627\u0631\u0628\u0631 \u063a\u06cc\u0631 root \u0634\u0645\u0627 \u062f\u0633\u062a\u0631\u0633\u06cc \u0644\u0627\u0632\u0645 \u0628\u0631\u0627\u06cc \u062f\u0633\u062a\u0631\u0633\u06cc \u0628\u0647 \u0633\u0648\u06a9\u062a \u062f\u06cc\u0645\u0646 Docker \u0631\u0627 \u0646\u062f\u0627\u0631\u062f.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u0628\u0647\u200c\u0635\u0648\u0631\u062a \u067e\u06cc\u0634\u200c\u0641\u0631\u0636\u060c \u062f\u06cc\u0645\u0646 Docker \u0628\u0647 \u06cc\u06a9 \u0633\u0648\u06a9\u062a Unix \u0628\u0627 \u0622\u062f\u0631\u0633 (\/var\/run\/docker.sock) \u0645\u062a\u0635\u0644 \u0627\u0633\u062a \u06a9\u0647 \u0645\u0627\u0644\u06a9 \u0622\u0646 \u06a9\u0627\u0631\u0628\u0631 root \u0627\u0633\u062a. \u0628\u0631\u0627\u06cc \u0631\u0641\u0639 \u0627\u06cc\u0646 \u0645\u0634\u06a9\u0644\u060c \u0628\u0627\u06cc\u062f \u06a9\u0627\u0631\u0628\u0631 \u063a\u06cc\u0631 root \u062e\u0648\u062f \u0631\u0627 \u0628\u0647 \u06af\u0631\u0648\u0647 docker \u0627\u0636\u0627\u0641\u0647 \u06a9\u0646\u06cc\u062f\u061b \u06af\u0631\u0648\u0647\u06cc \u06a9\u0647 \u0647\u0646\u06af\u0627\u0645 \u0646\u0635\u0628 Docker \u0627\u06cc\u062c\u0627\u062f \u0634\u062f\u0647 \u0627\u0633\u062a.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u062f\u0633\u062a\u0648\u0631 \u0632\u06cc\u0631 \u0631\u0627 \u0628\u0631\u0627\u06cc \u0627\u0641\u0632\u0648\u062f\u0646 \u06a9\u0627\u0631\u0628\u0631 \u062e\u0648\u062f \u0628\u0647 \u06af\u0631\u0648\u0647 docker \u0627\u062c\u0631\u0627 \u06a9\u0646\u06cc\u062f:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo usermod -aG docker ${USER}<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\u067e\u0633 \u0627\u0632 \u0627\u062c\u0631\u0627\u06cc \u0627\u06cc\u0646 \u062f\u0633\u062a\u0648\u0631\u060c \u0628\u0627\u06cc\u062f \u0627\u0632 \u0633\u06cc\u0633\u062a\u0645 \u062e\u0627\u0631\u062c \u0634\u062f\u0647 \u0648 \u062f\u0648\u0628\u0627\u0631\u0647 \u0648\u0627\u0631\u062f \u0634\u0648\u06cc\u062f \u062a\u0627 \u062a\u063a\u06cc\u06cc\u0631\u0627\u062a \u06af\u0631\u0648\u0647 \u0627\u0639\u0645\u0627\u0644 \u0634\u0648\u0646\u062f. \u0647\u0645\u0686\u0646\u06cc\u0646 \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u06cc\u062f \u062a\u063a\u06cc\u06cc\u0631\u0627\u062a \u0631\u0627 \u0628\u0631\u0627\u06cc \u0646\u0634\u0633\u062a \u0641\u0639\u0644\u06cc \u062a\u0631\u0645\u06cc\u0646\u0627\u0644 \u0628\u0627 \u062a\u0627\u06cc\u067e \u062f\u0633\u062a\u0648\u0631 \u0632\u06cc\u0631 \u0641\u0639\u0627\u0644 \u06a9\u0646\u06cc\u062f:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>newgrp docker<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\u0627\u06cc\u0646 \u062f\u0633\u062a\u0648\u0631 \u0628\u0627\u06cc\u062f \u0647\u0631\u06af\u0648\u0646\u0647 \u062e\u0637\u0627\u06cc \u062f\u0633\u062a\u0631\u0633\u06cc \u0645\u0631\u0628\u0648\u0637 \u0628\u0647 \u0633\u0648\u06a9\u062a Docker \u0631\u0627 \u0631\u0641\u0639 \u06a9\u0646\u062f. \u0628\u0631\u0627\u06cc \u0631\u0627\u0647\u0646\u0645\u0627\u06cc \u06a9\u0627\u0645\u0644\u060c \u0628\u0647 \u0645\u0631\u062d\u0644\u0647 \u06f2 \u0645\u0642\u0627\u0644\u0647 \u00ab\u0622\u0645\u0648\u0632\u0634 \u0646\u0635\u0628 Docker \u0631\u0648\u06cc \u0627\u0648\u0628\u0648\u0646\u062a\u0648 \u2013 \u0631\u0627\u0647\u0646\u0645\u0627\u06cc \u06af\u0627\u0645\u200c\u0628\u0647\u200c\u06af\u0627\u0645\u00bb \u0645\u0631\u0627\u062c\u0639\u0647 \u06a9\u0646\u06cc\u062f.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u0645\u062d\u06cc\u0637 \u0634\u0645\u0627 \u0627\u06a9\u0646\u0648\u0646 \u062f\u0631 \u067e\u0633\u200c\u0632\u0645\u06cc\u0646\u0647 \u062f\u0631 \u062d\u0627\u0644 \u0627\u062c\u0631\u0627\u0633\u062a. \u0628\u0631\u0627\u06cc \u062a\u0623\u06cc\u06cc\u062f \u0641\u0639\u0627\u0644 \u0628\u0648\u062f\u0646 \u06a9\u0627\u0646\u062a\u06cc\u0646\u0631 \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u06cc\u062f \u0627\u062c\u0631\u0627 \u06a9\u0646\u06cc\u062f:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>docker compose ps<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\u0627\u06cc\u0646 \u062f\u0633\u062a\u0648\u0631 \u0627\u0637\u0644\u0627\u0639\u0627\u062a \u0645\u0631\u0628\u0648\u0637 \u0628\u0647 \u06a9\u0627\u0646\u062a\u06cc\u0646\u0631\u0647\u0627\u06cc \u062f\u0631 \u062d\u0627\u0644 \u0627\u062c\u0631\u0627 \u0648 \u0648\u0636\u0639\u06cc\u062a \u0622\u0646\u200c\u0647\u0627 \u0648 \u0647\u0645\u0686\u0646\u06cc\u0646 \u0646\u06af\u0627\u0634\u062a\u200c\u0647\u0627\u06cc \u067e\u0648\u0631\u062a \u0641\u0639\u0627\u0644 \u0631\u0627 \u0646\u0634\u0627\u0646 \u0645\u06cc\u200c\u062f\u0647\u062f:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u062e\u0631\u0648\u062c\u06cc:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"> <code>      Name                     Command               State          Ports        \n----------------------------------------------------------------------------------\ncompose-demo_web_1   \/docker-entrypoint.sh ngin ...   Up      0.0.0.0:8000-&gt;80\/tcp<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\u062d\u0627\u0644\u0627 \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u06cc\u062f \u0628\u0627 \u0645\u0631\u0648\u0631\u06af\u0631 \u062e\u0648\u062f \u0628\u0647 \u0622\u062f\u0631\u0633 localhost:8000 (\u0627\u06af\u0631 \u0627\u06cc\u0646 \u062f\u0645\u0648 \u0631\u0627 \u0631\u0648\u06cc \u0645\u0627\u0634\u06cc\u0646 \u0645\u062d\u0644\u06cc \u062e\u0648\u062f \u0627\u062c\u0631\u0627 \u0645\u06cc\u200c\u06a9\u0646\u06cc\u062f) \u06cc\u0627 your_server_domain_or_IP:8000 (\u0627\u06af\u0631 \u0631\u0648\u06cc \u0633\u0631\u0648\u0631 \u0631\u0627\u0647\u200c\u062f\u0648\u0631 \u0627\u062c\u0631\u0627 \u0645\u06cc\u200c\u06a9\u0646\u06cc\u062f) \u0628\u0647 \u0627\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646 \u062f\u0645\u0648 \u062f\u0633\u062a\u0631\u0633\u06cc \u067e\u06cc\u062f\u0627 \u06a9\u0646\u06cc\u062f.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u0635\u0641\u062d\u0647\u200c\u0627\u06cc \u0634\u0628\u06cc\u0647 \u0627\u06cc\u0646 \u062e\u0648\u0627\u0647\u06cc\u062f \u062f\u06cc\u062f:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">[\u062a\u0635\u0648\u06cc\u0631: \u0635\u0641\u062d\u0647 \u062f\u0645\u0648 Docker Compose]<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u0648\u0627\u0644\u06cc\u0648\u0645 \u0627\u0634\u062a\u0631\u0627\u06a9\u06cc \u06a9\u0647 \u062f\u0631 \u0641\u0627\u06cc\u0644 docker-compose.yml \u062a\u0646\u0638\u06cc\u0645 \u06a9\u0631\u062f\u0647\u200c\u0627\u06cc\u062f\u060c \u0641\u0627\u06cc\u0644\u200c\u0647\u0627\u06cc \u067e\u0648\u0634\u0647 app \u0634\u0645\u0627 \u0631\u0627 \u0628\u0627 \u0631\u06cc\u0634\u0647 \u0645\u0633\u062a\u0646\u062f\u0627\u062a \u06a9\u0627\u0646\u062a\u06cc\u0646\u0631 \u0647\u0645\u06af\u0627\u0645 \u0646\u06af\u0647 \u0645\u06cc\u200c\u062f\u0627\u0631\u062f. \u0627\u06af\u0631 \u062a\u063a\u06cc\u06cc\u0631\u06cc \u062f\u0631 \u0641\u0627\u06cc\u0644 index.html \u0627\u06cc\u062c\u0627\u062f \u06a9\u0646\u06cc\u062f\u060c \u0628\u0647\u200c\u0635\u0648\u0631\u062a \u062e\u0648\u062f\u06a9\u0627\u0631 \u062a\u0648\u0633\u0637 \u06a9\u0627\u0646\u062a\u06cc\u0646\u0631 \u062a\u0634\u062e\u06cc\u0635 \u062f\u0627\u062f\u0647 \u0634\u062f\u0647 \u0648 \u062f\u0631 \u0646\u062a\u06cc\u062c\u0647 \u0647\u0646\u06af\u0627\u0645 \u0631\u0641\u0631\u0634 \u0635\u0641\u062d\u0647 \u062f\u0631 \u0645\u0631\u0648\u0631\u06af\u0631 \u0634\u0645\u0627 \u0646\u0645\u0627\u06cc\u0634 \u062f\u0627\u062f\u0647 \u0645\u06cc\u200c\u0634\u0648\u062f.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u062f\u0631 \u0645\u0631\u062d\u0644\u0647 \u0628\u0639\u062f\u060c \u0645\u062f\u06cc\u0631\u06cc\u062a \u0645\u062d\u06cc\u0637 \u06a9\u0627\u0646\u062a\u06cc\u0646\u0631\u06cc \u062e\u0648\u062f \u0628\u0627 \u062f\u0633\u062a\u0648\u0631\u0627\u062a Docker Compose \u0631\u0627 \u0645\u06cc\u200c\u0628\u06cc\u0646\u06cc\u062f.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">\u0645\u0631\u062d\u0644\u0647 \u06f4 \u2014 \u0622\u0634\u0646\u0627\u06cc\u06cc \u0628\u0627 \u062f\u0633\u062a\u0648\u0631\u0627\u062a Docker Compose<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">\u062f\u06cc\u062f\u06cc\u062f \u06a9\u0647 \u0686\u0637\u0648\u0631 \u06cc\u06a9 \u0641\u0627\u06cc\u0644 docker-compose.yml \u0631\u0627\u0647\u200c\u0627\u0646\u062f\u0627\u0632\u06cc \u06a9\u0631\u062f\u0647 \u0648 \u0645\u062d\u06cc\u0637 \u062e\u0648\u062f \u0631\u0627 \u0628\u0627 docker compose up \u0628\u0627\u0644\u0627 \u0628\u06cc\u0627\u0648\u0631\u06cc\u062f. \u062d\u0627\u0644\u0627 \u0645\u06cc\u200c\u0628\u06cc\u0646\u06cc\u062f \u06a9\u0647 \u0686\u0637\u0648\u0631 \u0628\u0627 \u062f\u0633\u062a\u0648\u0631\u0627\u062a Docker Compose\u060c \u0645\u062d\u06cc\u0637 \u06a9\u0627\u0646\u062a\u06cc\u0646\u0631\u06cc \u062e\u0648\u062f \u0631\u0627 \u0645\u062f\u06cc\u0631\u06cc\u062a \u0648 \u0628\u0627 \u0622\u0646 \u062a\u0639\u0627\u0645\u0644 \u062f\u0627\u0634\u062a\u0647 \u0628\u0627\u0634\u06cc\u062f.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u0628\u0631\u0627\u06cc \u0628\u0631\u0631\u0633\u06cc \u0644\u0627\u06af\u200c\u0647\u0627\u06cc \u062a\u0648\u0644\u06cc\u062f\u0634\u062f\u0647 \u062a\u0648\u0633\u0637 \u06a9\u0627\u0646\u062a\u06cc\u0646\u0631 Nginx \u062e\u0648\u062f\u060c \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u06cc\u062f \u0627\u0632 \u062f\u0633\u062a\u0648\u0631 logs \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u06cc\u062f:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>docker compose logs<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\u062e\u0631\u0648\u062c\u06cc \u0645\u0634\u0627\u0628\u0647 \u0632\u06cc\u0631 \u062e\u0648\u0627\u0647\u06cc\u062f \u062f\u06cc\u062f:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u062e\u0631\u0648\u062c\u06cc:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Attaching to compose-demo_web_1\nweb_1  | \/docker-entrypoint.sh: \/docker-entrypoint.d\/ is not empty, will attempt to perform configuration\nweb_1  | \/docker-entrypoint.sh: Looking for shell scripts in \/docker-entrypoint.d\/\nweb_1  | \/docker-entrypoint.sh: Launching \/docker-entrypoint.d\/10-listen-on-ipv6-by-default.sh\nweb_1  | 10-listen-on-ipv6-by-default.sh: Getting the checksum of \/etc\/nginx\/conf.d\/default.conf\nweb_1  | 10-listen-on-ipv6-by-default.sh: Enabled listen on IPv6 in \/etc\/nginx\/conf.d\/default.conf\nweb_1  | \/docker-entrypoint.sh: Launching \/docker-entrypoint.d\/20-envsubst-on-templates.sh\nweb_1  | \/docker-entrypoint.sh: Configuration complete; ready for start up\nweb_1  | 172.22.0.1 - - &#91;02\/Jun\/2020:10:47:13 +0000] \"GET \/ HTTP\/1.1\" 200 353 \"-\" \"Mozilla\/5.0 (X11; Linux x86_64) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/83.0.4103.61 Safari\/537.36\" \"-\"<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\u0627\u06af\u0631 \u0645\u06cc\u200c\u062e\u0648\u0627\u0647\u06cc\u062f \u0627\u062c\u0631\u0627\u06cc \u0645\u062d\u06cc\u0637 \u0631\u0627 \u0628\u062f\u0648\u0646 \u062a\u063a\u06cc\u06cc\u0631 \u0648\u0636\u0639\u06cc\u062a \u0641\u0639\u0644\u06cc \u06a9\u0627\u0646\u062a\u06cc\u0646\u0631\u0647\u0627 \u0645\u062a\u0648\u0642\u0641 \u06a9\u0646\u06cc\u062f\u060c \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u06cc\u062f \u0627\u0632 \u062f\u0633\u062a\u0648\u0631 \u0632\u06cc\u0631 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u06cc\u062f:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>docker compose pause<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\u062e\u0631\u0648\u062c\u06cc:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Pausing compose-demo_web_1 ... done<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\u0628\u0631\u0627\u06cc \u0627\u0632 \u0633\u0631\u06af\u06cc\u0631\u06cc \u0627\u062c\u0631\u0627 \u067e\u0633 \u0627\u0632 \u0635\u062f\u0648\u0631 \u062f\u0633\u062a\u0648\u0631 pause:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>docker compose unpause<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\u062e\u0631\u0648\u062c\u06cc:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Unpausing compose-demo_web_1 ... done<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\u062f\u0633\u062a\u0648\u0631 stop \u0627\u062c\u0631\u0627\u06cc \u06a9\u0627\u0646\u062a\u06cc\u0646\u0631 \u0631\u0627 \u062e\u0627\u062a\u0645\u0647 \u0645\u06cc\u200c\u062f\u0647\u062f\u060c \u0627\u0645\u0627 \u0647\u06cc\u0686 \u062f\u0627\u062f\u0647\u200c\u0627\u06cc \u0645\u0631\u062a\u0628\u0637 \u0628\u0627 \u06a9\u0627\u0646\u062a\u06cc\u0646\u0631\u0647\u0627\u06cc \u0634\u0645\u0627 \u0631\u0627 \u062a\u062e\u0631\u06cc\u0628 \u0646\u0645\u06cc\u200c\u06a9\u0646\u062f:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>docker compose stop<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\u062e\u0631\u0648\u062c\u06cc:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Stopping compose-demo_web_1 ... done<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\u0627\u06af\u0631 \u0645\u06cc\u200c\u062e\u0648\u0627\u0647\u06cc\u062f \u06a9\u0627\u0646\u062a\u06cc\u0646\u0631\u0647\u0627\u060c \u0634\u0628\u06a9\u0647\u200c\u0647\u0627 \u0648 \u0648\u0627\u0644\u06cc\u0648\u0645\u200c\u0647\u0627\u06cc \u0645\u0631\u062a\u0628\u0637 \u0628\u0627 \u0627\u06cc\u0646 \u0645\u062d\u06cc\u0637 \u06a9\u0627\u0646\u062a\u06cc\u0646\u0631\u06cc \u0631\u0627 \u062d\u0630\u0641 \u06a9\u0646\u06cc\u062f\u060c \u0627\u0632 \u062f\u0633\u062a\u0648\u0631 down \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u06cc\u062f:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>docker compose down<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\u062e\u0631\u0648\u062c\u06cc:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Removing compose-demo_web_1 ... done\nRemoving network compose-demo_default<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\u062a\u0648\u062c\u0647 \u06a9\u0646\u06cc\u062f \u06a9\u0647 \u0627\u06cc\u0646 \u06a9\u0627\u0631 \u0627\u06cc\u0645\u06cc\u062c \u067e\u0627\u06cc\u0647\u200c\u0627\u06cc \u06a9\u0647 Docker Compose \u0628\u0631\u0627\u06cc \u0631\u0627\u0647\u200c\u0627\u0646\u062f\u0627\u0632\u06cc \u0645\u062d\u06cc\u0637 \u0634\u0645\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0631\u062f\u0647 (\u062f\u0631 \u0627\u06cc\u0646 \u0645\u0648\u0631\u062f\u060c nginx:alpine) \u0631\u0627 \u062d\u0630\u0641 \u0646\u0645\u06cc\u200c\u06a9\u0646\u062f. \u0628\u0647 \u0627\u06cc\u0646 \u062a\u0631\u062a\u06cc\u0628\u060c \u0647\u0631 \u0628\u0627\u0631 \u06a9\u0647 \u0645\u062d\u06cc\u0637 \u062e\u0648\u062f \u0631\u0627 \u0628\u0627 docker compose up \u062f\u0648\u0628\u0627\u0631\u0647 \u0628\u0627\u0644\u0627 \u0628\u06cc\u0627\u0648\u0631\u06cc\u062f\u060c \u0641\u0631\u0627\u06cc\u0646\u062f \u0628\u0633\u06cc\u0627\u0631 \u0633\u0631\u06cc\u0639\u200c\u062a\u0631 \u062e\u0648\u0627\u0647\u062f \u0628\u0648\u062f\u061b \u0686\u0648\u0646 \u0627\u06cc\u0645\u06cc\u062c \u0627\u0632 \u0642\u0628\u0644 \u0631\u0648\u06cc \u0633\u06cc\u0633\u062a\u0645 \u0634\u0645\u0627 \u0645\u0648\u062c\u0648\u062f \u0627\u0633\u062a.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u062f\u0631 \u0635\u0648\u0631\u062a\u06cc \u06a9\u0647 \u0628\u062e\u0648\u0627\u0647\u06cc\u062f \u0627\u06cc\u0645\u06cc\u062c \u067e\u0627\u06cc\u0647 \u0631\u0627 \u0647\u0645 \u0627\u0632 \u0633\u06cc\u0633\u062a\u0645 \u062e\u0648\u062f \u062d\u0630\u0641 \u06a9\u0646\u06cc\u062f\u060c \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u06cc\u062f \u0627\u0632 \u062f\u0633\u062a\u0648\u0631 \u0632\u06cc\u0631 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u06cc\u062f:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>docker image rm hub.cr.parmincloud.ir\/library\/nginx:alpine<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\u062e\u0631\u0648\u062c\u06cc:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Untagged: hub.cr.parmincloud.ir\/library\/nginx:alpine\nUntagged: nginx@sha256:b89a6ccbda39576ad23fd079978c967cecc6b170db6e7ff8a769bf2259a71912\nDeleted: sha256:7d0cdcc60a96a5124763fddf5d534d058ad7d0d8d4c3b8be2aefedf4267d0270\nDeleted: sha256:05a0eaca15d731e0029a7604ef54f0dda3b736d4e987e6ac87b91ac7aac03ab1\nDeleted: sha256:c6bbc4bdac396583641cb44cd35126b2c195be8fe1ac5e6c577c14752bbe9157\nDeleted: sha256:35789b1e1a362b0da8392ca7d5759ef08b9a6b7141cc1521570f984dc7905eb6\nDeleted: sha256:a3efaa65ec344c882fe5d543a392a54c4ceacd1efd91662d06964211b1be4c08\nDeleted: sha256:3e207b409db364b595ba862cdc12be96dcdad8e36c59a03b7b3b61c946a5741a<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>\u062a\u0648\u062c\u0647:<\/strong> \u0628\u0631\u0627\u06cc \u0645\u0631\u062c\u0639 \u06a9\u0627\u0645\u0644\u200c\u062a\u0631 \u062f\u0633\u062a\u0648\u0631\u0627\u062a Docker\u060c \u0628\u0647 \u0631\u0627\u0647\u0646\u0645\u0627\u06cc \u00ab\u0622\u0645\u0648\u0632\u0634 \u0646\u0635\u0628 Docker \u0631\u0648\u06cc \u0627\u0648\u0628\u0648\u0646\u062a\u0648 \u2013 \u0631\u0627\u0647\u0646\u0645\u0627\u06cc \u06af\u0627\u0645\u200c\u0628\u0647\u200c\u06af\u0627\u0645\u00bb \u0645\u0631\u0627\u062c\u0639\u0647 \u06a9\u0646\u06cc\u062f.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">\u0645\u0631\u062d\u0644\u0647 \u06f5 \u2014 \u0633\u0627\u062e\u062a \u0627\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646 \u0686\u0646\u062f\u0633\u0631\u0648\u06cc\u0633\u06cc<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">\u0642\u062f\u0631\u062a \u0648\u0627\u0642\u0639\u06cc Docker Compose \u062f\u0631 \u0645\u062f\u06cc\u0631\u06cc\u062a \u0686\u0646\u062f\u06cc\u0646 \u0633\u0631\u0648\u06cc\u0633 \u0627\u0633\u062a \u06a9\u0647 \u0628\u0627 \u0647\u0645 \u06a9\u0627\u0631 \u0645\u06cc\u200c\u06a9\u0646\u0646\u062f. \u0645\u062b\u0627\u0644 Nginx \u06cc\u06a9 \u0633\u0631\u0648\u06cc\u0633 \u062a\u06a9 \u0628\u0648\u062f. \u0628\u06cc\u0627\u06cc\u06cc\u062f \u06cc\u06a9 \u0627\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646 \u0686\u0646\u062f\u0633\u0631\u0648\u06cc\u0633\u06cc \u0639\u0645\u0644\u06cc\u200c\u062a\u0631 \u0628\u0633\u0627\u0632\u06cc\u0645: \u06cc\u06a9 \u0648\u0628\u200c\u0633\u0627\u06cc\u062a \u0648\u0631\u062f\u067e\u0631\u0633 \u0645\u062a\u0635\u0644 \u0628\u0647 \u06cc\u06a9 \u067e\u0627\u06cc\u06af\u0627\u0647 \u062f\u0627\u062f\u0647 MySQL.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u0627\u06cc\u0646 \u0631\u0627\u0647\u200c\u0627\u0646\u062f\u0627\u0632\u06cc \u0634\u0627\u0645\u0644 \u062f\u0648 \u0633\u0631\u0648\u06cc\u0633 \u0627\u0633\u062a: wordpress (\u0627\u062c\u0631\u0627\u06cc \u0627\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646) \u0648 db (\u0627\u062c\u0631\u0627\u06cc \u067e\u0627\u06cc\u06af\u0627\u0647 \u062f\u0627\u062f\u0647). \u0647\u0645\u0686\u0646\u06cc\u0646 \u0627\u0632 \u0648\u0627\u0644\u06cc\u0648\u0645\u200c\u0647\u0627\u06cc Docker \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u06cc\u200c\u06a9\u0646\u06cc\u0645 \u062a\u0627 \u0645\u0637\u0645\u0626\u0646 \u0634\u0648\u06cc\u0645 \u062f\u0627\u062f\u0647\u200c\u0647\u0627\u06cc \u067e\u0627\u06cc\u06af\u0627\u0647 \u062f\u0627\u062f\u0647 \u062d\u062a\u06cc \u062f\u0631 \u0635\u0648\u0631\u062a \u062d\u0630\u0641 \u06a9\u0627\u0646\u062a\u06cc\u0646\u0631 \u0628\u0627\u0642\u06cc \u0645\u06cc\u200c\u0645\u0627\u0646\u0646\u062f.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u0628\u06cc\u0627\u06cc\u06cc\u062f \u06cc\u06a9 \u062f\u0627\u06cc\u0631\u06a9\u062a\u0648\u0631\u06cc \u062c\u062f\u06cc\u062f \u0628\u0631\u0627\u06cc \u0627\u06cc\u0646 \u0627\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646 \u0628\u0633\u0627\u0632\u06cc\u0645:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>mkdir -p ~\/compose-demo\/wordpressapp\ncd ~\/compose-demo\/wordpressapp<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\u0628\u0631\u0627\u06cc \u0627\u06cc\u0646 \u0645\u062b\u0627\u0644\u060c \u0628\u0647 \u0647\u06cc\u0686 \u0641\u0627\u06cc\u0644 \u0645\u062d\u0644\u06cc \u0646\u06cc\u0627\u0632 \u0646\u062f\u0627\u0631\u06cc\u0645\u061b \u0686\u0631\u0627 \u06a9\u0647 \u0627\u06cc\u0645\u06cc\u062c\u200c\u0647\u0627 \u0647\u0645\u0647 \u0646\u0631\u0645\u200c\u0627\u0641\u0632\u0627\u0631\u0647\u0627\u06cc \u0644\u0627\u0632\u0645 \u0631\u0627 \u062f\u0631 \u0628\u0631 \u062f\u0627\u0631\u0646\u062f.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u06cc\u06a9 \u0641\u0627\u06cc\u0644 docker-compose.yml \u062c\u062f\u06cc\u062f \u0628\u0633\u0627\u0632\u06cc\u062f:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>nano docker-compose.yml<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc \u0632\u06cc\u0631 \u0631\u0627 \u062c\u0627\u06cc\u200c\u06af\u0630\u0627\u0631\u06cc \u06a9\u0646\u06cc\u062f. \u0627\u06cc\u0646 \u0641\u0627\u06cc\u0644 \u067e\u06cc\u0686\u06cc\u062f\u0647\u200c\u062a\u0631 \u0627\u0633\u062a\u060c \u067e\u0633 \u0647\u0631 \u0628\u062e\u0634 \u0631\u0627 \u062c\u062f\u0627\u06af\u0627\u0646\u0647 \u0628\u0631\u0631\u0633\u06cc \u0645\u06cc\u200c\u06a9\u0646\u06cc\u0645.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong><code>docker-compose.yml<\/code><\/strong><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>services:\n  db:\n    image: hub.cr.parmincloud.ir\/library\/mysql:8.0\n    container_name: mysql_db\n    volumes:\n      - db_data:\/var\/lib\/mysql\n    environment:\n      MYSQL_ROOT_PASSWORD: &lt;your_root_password_here&gt;\n      MYSQL_DATABASE: wordpress\n      MYSQL_USER: wordpress_user\n      MYSQL_PASSWORD: &lt;your_wordpress_password_here&gt;\n    restart: unless-stopped\n\n  wordpress:\n    image: hub.cr.parmincloud.ir\/library\/wordpress:latest\n    container_name: wordpress_app\n    ports:\n      - \"8001:80\"\n    environment:\n      WORDPRESS_DB_HOST: db:3306\n      WORDPRESS_DB_USER: wordpress_user\n      WORDPRESS_DB_PASSWORD: &lt;your_wordpress_password_here&gt;\n      WORDPRESS_DB_NAME: wordpress\n    volumes:\n      - .\/wp_content:\/var\/www\/html\/wp-content\n    depends_on:\n      - db\n    restart: unless-stopped\n\nvolumes:\n  db_data:<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>\u062a\u0648\u062c\u0647:<\/strong> \u0645\u0642\u0627\u062f\u06cc\u0631 \u0631\u0645\u0632 \u0639\u0628\u0648\u0631 \u062f\u0631 \u0627\u06cc\u0646\u062c\u0627 \u0635\u0631\u0641\u0627\u064b \u062c\u0647\u062a \u0646\u0645\u0627\u06cc\u0634 \u0628\u0647\u200c\u0635\u0648\u0631\u062a \u062b\u0627\u0628\u062a \u0646\u0648\u0634\u062a\u0647 \u0634\u062f\u0647\u200c\u0627\u0646\u062f. \u0647\u0646\u06af\u0627\u0645 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u062f\u0631 \u0645\u062d\u06cc\u0637 \u0648\u0627\u0642\u0639\u06cc\u060c \u062d\u062a\u0645\u0627\u064b \u0627\u0632 \u0645\u062a\u063a\u06cc\u0631\u0647\u0627\u06cc \u0645\u062d\u06cc\u0637\u06cc \u062f\u0631 \u0641\u0627\u06cc\u0644 .env \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u06cc\u062f \u062a\u0627 \u0627\u0637\u0644\u0627\u0639\u0627\u062a \u062d\u0633\u0627\u0633 \u0634\u0645\u0627 \u0641\u0627\u0634 \u0646\u0634\u0648\u062f.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u0641\u0627\u06cc\u0644 \u0631\u0627 \u0630\u062e\u06cc\u0631\u0647 \u06a9\u0631\u062f\u0647 \u0648 \u0628\u0628\u0646\u062f\u06cc\u062f. \u0628\u0647 \u06cc\u0627\u062f \u062f\u0627\u0634\u062a\u0647 \u0628\u0627\u0634\u06cc\u062f \u06a9\u0647 \u062c\u0627\u06cc\u06af\u0632\u06cc\u0646\u200c\u0647\u0627\u06cc <code>&lt;...&gt;<\/code> \u0631\u0627 \u0628\u0627 \u0631\u0645\u0632\u0647\u0627\u06cc \u0639\u0628\u0648\u0631 \u0642\u0648\u06cc \u0648 \u0627\u0645\u0646 \u0639\u0648\u0636 \u06a9\u0646\u06cc\u062f.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u0628\u06cc\u0627\u06cc\u06cc\u062f \u062f\u0633\u062a\u0648\u0631\u0627\u062a (Directive) \u062c\u062f\u06cc\u062f \u0627\u06cc\u0646 \u0641\u0627\u06cc\u0644 \u0631\u0627 \u0628\u0631\u0631\u0633\u06cc \u06a9\u0646\u06cc\u0645:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>services:<\/strong> \u0627\u06cc\u0646 \u0628\u0644\u0648\u06a9 \u0647\u0645\u0686\u0646\u0627\u0646 \u06a9\u0627\u0646\u062a\u06cc\u0646\u0631\u0647\u0627\u06cc \u0645\u0627 \u0631\u0627 \u062a\u0639\u0631\u06cc\u0641 \u0645\u06cc\u200c\u06a9\u0646\u062f. \u062d\u0627\u0644\u0627 \u062f\u0648 \u06a9\u0627\u0646\u062a\u06cc\u0646\u0631 \u062f\u0627\u0631\u06cc\u0645: db \u0648 wordpress.<\/li>\n\n\n\n<li><strong>image:<\/strong> \u0628\u0631\u0627\u06cc \u067e\u0627\u06cc\u06af\u0627\u0647 \u062f\u0627\u062f\u0647 \u0627\u0632 mysql:8.0 \u0648 \u0628\u0631\u0627\u06cc \u0627\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646 \u0627\u0632 \u0627\u06cc\u0645\u06cc\u062c wordpress:latest \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u06cc\u200c\u06a9\u0646\u06cc\u0645.<\/li>\n\n\n\n<li><strong>container_name:<\/strong> \u06cc\u06a9 \u0646\u0627\u0645 \u0645\u0634\u062e\u0635 \u0648 \u0642\u0627\u0628\u0644\u200c\u062e\u0648\u0627\u0646\u062f\u0646 \u0628\u0631\u0627\u06cc \u06a9\u0627\u0646\u062a\u06cc\u0646\u0631 \u062a\u0646\u0638\u06cc\u0645 \u0645\u06cc\u200c\u06a9\u0646\u062f \u06a9\u0647 \u0627\u0631\u062c\u0627\u0639 \u062f\u0627\u062f\u0646 \u0628\u0647 \u0622\u0646 \u0627\u0632 \u0646\u0627\u0645\u200c\u0647\u0627\u06cc \u062a\u0648\u0644\u06cc\u062f\u0634\u062f\u0647 \u062e\u0648\u062f\u06a9\u0627\u0631 \u0631\u0627\u062d\u062a\u200c\u062a\u0631 \u0627\u0633\u062a.<\/li>\n\n\n\n<li><strong>environment:<\/strong> \u0627\u06cc\u0646 \u06cc\u06a9 \u0641\u0647\u0631\u0633\u062a \u0627\u0632 \u0645\u062a\u063a\u06cc\u0631\u0647\u0627\u06cc \u0645\u062d\u06cc\u0637\u06cc \u0627\u0633\u062a \u06a9\u0647 \u0628\u0647 \u06a9\u0627\u0646\u062a\u06cc\u0646\u0631 \u067e\u0627\u0633 \u062f\u0627\u062f\u0647 \u0645\u06cc\u200c\u0634\u0648\u0646\u062f. \u0627\u06cc\u0645\u06cc\u062c mysql \u0627\u0632 \u0627\u06cc\u0646 \u0645\u062a\u063a\u06cc\u0631\u0647\u0627 \u0628\u0631\u0627\u06cc \u062a\u0646\u0638\u06cc\u0645 \u0631\u0645\u0632 \u0639\u0628\u0648\u0631 root \u0648 \u0633\u0627\u062e\u062a \u067e\u0627\u06cc\u06af\u0627\u0647 \u062f\u0627\u062f\u0647 \u0648 \u06a9\u0627\u0631\u0628\u0631 \u0627\u0648\u0644\u06cc\u0647 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u06cc\u200c\u06a9\u0646\u062f. \u0627\u06cc\u0645\u06cc\u062c wordpress \u0647\u0645 \u0627\u0632 \u0622\u0646\u200c\u0647\u0627 \u0628\u0631\u0627\u06cc \u062f\u0627\u0646\u0633\u062a\u0646 \u0646\u062d\u0648\u0647 \u0627\u062a\u0635\u0627\u0644 \u0628\u0647 \u067e\u0627\u06cc\u06af\u0627\u0647 \u062f\u0627\u062f\u0647 \u062e\u0648\u062f \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u06cc\u200c\u06a9\u0646\u062f.<\/li>\n\n\n\n<li><strong>volumes (\u062f\u0631 \u0633\u0637\u062d \u0633\u0631\u0648\u06cc\u0633):<\/strong>\n<ul class=\"wp-block-list\">\n<li>\u0628\u0631\u0627\u06cc \u0633\u0631\u0648\u06cc\u0633 db\u060c \u0645\u0642\u062f\u0627\u0631 db_data:\/var\/lib\/mysql \u06cc\u06a9 \u0648\u0627\u0644\u06cc\u0648\u0645 \u0645\u062f\u06cc\u0631\u06cc\u062a\u200c\u0634\u062f\u0647 \u062a\u0648\u0633\u0637 Docker \u0628\u0627 \u0646\u0627\u0645 db_data \u0631\u0627 \u0628\u0647 \u062f\u0627\u06cc\u0631\u06a9\u062a\u0648\u0631\u06cc \u062f\u0627\u062f\u0647 MySQL \u062f\u0627\u062e\u0644 \u06a9\u0627\u0646\u062a\u06cc\u0646\u0631 \u0646\u06af\u0627\u0634\u062a \u0645\u06cc\u200c\u06a9\u0646\u062f. \u0627\u06cc\u0646 \u06a9\u0627\u0631 \u062f\u0627\u062f\u0647\u200c\u0647\u0627\u06cc \u0634\u0645\u0627 \u0631\u0627 \u0627\u0645\u0646 \u0646\u06af\u0647 \u0645\u06cc\u200c\u062f\u0627\u0631\u062f.<\/li>\n\n\n\n<li>\u0628\u0631\u0627\u06cc \u0633\u0631\u0648\u06cc\u0633 wordpress\u060c \u0645\u0642\u062f\u0627\u0631 .\/wp_content:\/var\/www\/html\/wp-content \u06cc\u06a9 \u062f\u0627\u06cc\u0631\u06a9\u062a\u0648\u0631\u06cc \u0645\u062d\u0644\u06cc (wp_content) \u0631\u0627 \u0628\u0647 \u062f\u0627\u06cc\u0631\u06a9\u062a\u0648\u0631\u06cc \u0645\u062d\u062a\u0648\u0627\u06cc \u0648\u0631\u062f\u067e\u0631\u0633 \u0646\u06af\u0627\u0634\u062a \u0645\u06cc\u200c\u06a9\u0646\u062f. \u0627\u06cc\u0646 \u0645\u0648\u0636\u0648\u0639 \u0628\u0647 \u0634\u0645\u0627 \u0627\u062c\u0627\u0632\u0647 \u0645\u06cc\u200c\u062f\u0647\u062f \u0642\u0627\u0644\u0628\u200c\u0647\u0627 \u0648 \u0627\u0641\u0632\u0648\u0646\u0647\u200c\u0647\u0627 \u0631\u0627 \u0645\u0633\u062a\u0642\u06cc\u0645\u0627\u064b \u0627\u0632 \u0645\u0627\u0634\u06cc\u0646 \u0645\u06cc\u0632\u0628\u0627\u0646 \u0648\u06cc\u0631\u0627\u06cc\u0634 \u06a9\u0646\u06cc\u062f.<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>depends_on:<\/strong> \u0628\u0647 Compose \u0645\u06cc\u200c\u06af\u0648\u06cc\u062f \u0633\u0631\u0648\u06cc\u0633 db \u0631\u0627 \u0642\u0628\u0644 \u0627\u0632 \u0633\u0631\u0648\u06cc\u0633 wordpress \u0631\u0627\u0647\u200c\u0627\u0646\u062f\u0627\u0632\u06cc \u06a9\u0646\u062f. \u0627\u06cc\u0646 \u0645\u0648\u0636\u0648\u0639 \u0645\u0647\u0645 \u0627\u0633\u062a\u060c \u0686\u0631\u0627 \u06a9\u0647 \u0648\u0631\u062f\u067e\u0631\u0633 \u062f\u0631 \u0635\u0648\u0631\u062a \u067e\u06cc\u062f\u0627 \u0646\u06a9\u0631\u062f\u0646 \u067e\u0627\u06cc\u06af\u0627\u0647 \u062f\u0627\u062f\u0647 \u062e\u0648\u062f \u0647\u0646\u06af\u0627\u0645 \u0631\u0627\u0647\u200c\u0627\u0646\u062f\u0627\u0632\u06cc\u060c \u0634\u06a9\u0633\u062a \u0645\u06cc\u200c\u062e\u0648\u0631\u062f.<\/li>\n\n\n\n<li><strong>restart: unless-stopped:<\/strong> \u0628\u0647 Docker \u0645\u06cc\u200c\u06af\u0648\u06cc\u062f \u062f\u0631 \u0635\u0648\u0631\u062a \u062e\u0631\u0648\u062c \u063a\u06cc\u0631\u0645\u0646\u062a\u0638\u0631\u0647 \u06a9\u0627\u0646\u062a\u06cc\u0646\u0631 (\u0645\u062b\u0644\u0627\u064b \u0628\u0639\u062f \u0627\u0632 \u06a9\u0631\u0634 \u06cc\u0627 \u0631\u06cc\u0628\u0648\u062a \u0633\u0631\u0648\u0631) \u0622\u0646 \u0631\u0627 \u0628\u0647\u200c\u0635\u0648\u0631\u062a \u062e\u0648\u062f\u06a9\u0627\u0631 \u0631\u06cc\u200c\u0627\u0633\u062a\u0627\u0631\u062a \u06a9\u0646\u062f\u060c \u0627\u0645\u0627 \u0646\u0647 \u062f\u0631 \u0635\u0648\u0631\u062a\u06cc \u06a9\u0647 \u062e\u0648\u062f\u062a\u0627\u0646 \u0622\u0646 \u0631\u0627 \u0628\u0627 docker compose stop \u06cc\u0627 docker compose down \u0645\u062a\u0648\u0642\u0641 \u06a9\u0631\u062f\u0647 \u0628\u0627\u0634\u06cc\u062f.<\/li>\n\n\n\n<li><strong>volumes (\u062f\u0631 \u0633\u0637\u062d \u0628\u0627\u0644\u0627):<\/strong> \u0627\u06cc\u0646 \u0628\u0644\u0648\u06a9 \u0648\u0627\u0644\u06cc\u0648\u0645\u200c\u0647\u0627\u06cc \u0646\u0627\u0645\u200c\u062f\u0627\u0631 \u0631\u0627 \u062a\u0639\u0631\u06cc\u0641 \u0645\u06cc\u200c\u06a9\u0646\u062f. \u0645\u0642\u062f\u0627\u0631 db_data: \u06cc\u06a9 \u0648\u0627\u0644\u06cc\u0648\u0645 \u0645\u062f\u06cc\u0631\u06cc\u062a\u200c\u0634\u062f\u0647 \u062a\u0648\u0633\u0637 Docker \u0645\u06cc\u200c\u0633\u0627\u0632\u062f \u06a9\u0647 \u0631\u0648\u0634 \u067e\u06cc\u0634\u0646\u0647\u0627\u062f\u06cc \u0628\u0631\u0627\u06cc \u0645\u062f\u06cc\u0631\u06cc\u062a \u062f\u0627\u062f\u0647\u200c\u0647\u0627\u06cc \u0645\u0627\u0646\u062f\u06af\u0627\u0631 (Persistent) \u0627\u0633\u062a.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">\u062d\u0627\u0644\u0627 \u0627\u06cc\u0646 \u0627\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646 \u0686\u0646\u062f\u0633\u0631\u0648\u06cc\u0633\u06cc \u0631\u0627 \u0628\u0627\u0644\u0627 \u0628\u06cc\u0627\u0648\u0631\u06cc\u062f:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>docker compose up -d<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Compose \u0647\u0631 \u062f\u0648 \u0627\u06cc\u0645\u06cc\u062c mysql \u0648 wordpress \u0631\u0627 \u062f\u0631\u06cc\u0627\u0641\u062a (Pull) \u06a9\u0631\u062f\u0647 \u0648 \u0633\u067e\u0633 \u06a9\u0627\u0646\u062a\u06cc\u0646\u0631\u0647\u0627 \u0631\u0627 \u0645\u06cc\u200c\u0633\u0627\u0632\u062f \u0648 \u0627\u0628\u062a\u062f\u0627 \u0633\u0631\u0648\u06cc\u0633 db \u0631\u0627 \u0631\u0627\u0647\u200c\u0627\u0646\u062f\u0627\u0632\u06cc \u0645\u06cc\u200c\u06a9\u0646\u062f.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u062e\u0631\u0648\u062c\u06cc:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Creating network \"compose-demo_default\" with the default driver\nCreating volume \"compose-demo_db_data\" with default driver\nPulling db (mysql:8.0)...\n...\nPulling wordpress (wordpress:latest)...\n...\nCreating mysql_db        ... done\nCreating wordpress_app ... done<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\u062d\u0627\u0644\u0627 \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u06cc\u062f \u0628\u0627 \u0645\u0631\u0627\u062c\u0639\u0647 \u0628\u0647 localhost:8001 \u06cc\u0627 your_server_domain_or_IP:8001 \u062f\u0631 \u0645\u0631\u0648\u0631\u06af\u0631\u060c \u0628\u0647 \u0633\u0627\u06cc\u062a \u0648\u0631\u062f\u067e\u0631\u0633 \u062c\u062f\u06cc\u062f \u062e\u0648\u062f \u062f\u0633\u062a\u0631\u0633\u06cc \u067e\u06cc\u062f\u0627 \u06a9\u0646\u06cc\u062f. \u0628\u0627\u06cc\u062f \u0635\u0641\u062d\u0647 \u0646\u0635\u0628 \u0648\u0631\u062f\u067e\u0631\u0633 \u0631\u0627 \u0628\u0628\u06cc\u0646\u06cc\u062f. \u0628\u0631\u0627\u06cc \u0645\u062b\u0627\u0644 \u0645\u0641\u0635\u0644\u200c\u062a\u0631\u060c \u0645\u0642\u0627\u0644\u0647 \u00ab\u0622\u0645\u0648\u0632\u0634 \u0646\u0635\u0628 \u0648\u0631\u062f\u067e\u0631\u0633 \u0628\u0627 Docker Compose\u00bb \u0631\u0627 \u0628\u0628\u06cc\u0646\u06cc\u062f.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">\u0645\u0631\u062d\u0644\u0647 \u06f6 \u2014 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 Docker Compose \u0628\u0631\u0627\u06cc \u062a\u0648\u0633\u0639\u0647 AI\/ML<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">\u0641\u0631\u0627\u062a\u0631 \u0627\u0632 \u0627\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646\u200c\u0647\u0627\u06cc \u0648\u0628\u060c Docker Compose \u0627\u0628\u0632\u0627\u0631\u06cc \u0641\u0648\u0642\u200c\u0627\u0644\u0639\u0627\u062f\u0647 \u06a9\u0627\u0631\u0628\u0631\u062f\u06cc \u0628\u0631\u0627\u06cc \u0633\u0627\u062e\u062a \u0645\u062d\u06cc\u0637\u200c\u0647\u0627\u06cc \u0639\u0644\u0645 \u062f\u0627\u062f\u0647 \u0648 \u06cc\u0627\u062f\u06af\u06cc\u0631\u06cc \u0645\u0627\u0634\u06cc\u0646 (AI\/ML) \u0642\u0627\u0628\u0644\u200c\u062a\u06a9\u0631\u0627\u0631 \u0627\u0633\u062a. \u067e\u0631\u0648\u0698\u0647\u200c\u0647\u0627\u06cc AI\/ML \u0628\u0647 \u062f\u0644\u06cc\u0644 \u0648\u0627\u0628\u0633\u062a\u06af\u06cc\u200c\u0647\u0627\u06cc \u067e\u06cc\u0686\u06cc\u062f\u0647\u200c\u0634\u0627\u0646 \u0645\u0639\u0631\u0648\u0641\u0646\u062f\u061b \u0627\u0632 \u062c\u0645\u0644\u0647 \u0646\u0633\u062e\u0647\u200c\u0647\u0627\u06cc \u062e\u0627\u0635 Python\u060c \u06a9\u062a\u0627\u0628\u062e\u0627\u0646\u0647\u200c\u0647\u0627\u06cc\u06cc \u0645\u0627\u0646\u0646\u062f TensorFlow \u06cc\u0627 PyTorch \u0648 \u062f\u0631\u0627\u06cc\u0648\u0631\u0647\u0627\u06cc \u0633\u0637\u062d \u0633\u06cc\u0633\u062a\u0645\u06cc \u0645\u0627\u0646\u0646\u062f NVIDIA CUDA Toolkit. Docker Compose \u062a\u0645\u0627\u0645 \u0627\u06cc\u0646 \u0645\u062d\u06cc\u0637 \u0631\u0627 \u062f\u0631 \u0641\u0627\u06cc\u0644\u200c\u0647\u0627\u06cc \u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc \u062b\u0628\u062a \u0645\u06cc\u200c\u06a9\u0646\u062f \u0648 \u0645\u0634\u06a9\u0644 \u00ab\u0631\u0648\u06cc \u0633\u06cc\u0633\u062a\u0645 \u0645\u0646 \u06a9\u0627\u0631 \u0645\u06cc\u200c\u06a9\u0646\u0647\u00bb \u0631\u0627 \u062d\u0644 \u0645\u06cc\u200c\u06a9\u0646\u062f\u061b \u0645\u0633\u0626\u0644\u0647\u200c\u0627\u06cc \u06a9\u0647 \u0628\u0631\u0627\u06cc \u067e\u0698\u0648\u0647\u0634\u200c\u0647\u0627\u06cc \u0642\u0627\u0628\u0644\u200c\u062a\u06a9\u0631\u0627\u0631 \u062d\u06cc\u0627\u062a\u06cc \u0627\u0633\u062a.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u062f\u0631 \u0627\u06cc\u0646 \u0645\u062b\u0627\u0644\u060c \u06cc\u06a9 \u0645\u062d\u06cc\u0637 AI\/ML \u0686\u0646\u062f\u0633\u0631\u0648\u06cc\u0633\u06cc \u0634\u0627\u0645\u0644 \u0645\u0648\u0627\u0631\u062f \u0632\u06cc\u0631 \u0645\u06cc\u200c\u0633\u0627\u0632\u06cc\u062f:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>JupyterLab:<\/strong> \u06a9\u0627\u0646\u062a\u06cc\u0646\u0631\u06cc \u0628\u0631\u0627\u06cc \u062a\u0648\u0633\u0639\u0647 \u062a\u0639\u0627\u0645\u0644\u06cc \u06a9\u0647 \u0627\u0632 \u06cc\u06a9 Dockerfile \u0633\u0641\u0627\u0631\u0634\u06cc \u0633\u0627\u062e\u062a\u0647 \u0645\u06cc\u200c\u0634\u0648\u062f.<\/li>\n\n\n\n<li><strong>PostgreSQL:<\/strong> \u06a9\u0627\u0646\u062a\u06cc\u0646\u0631 \u067e\u0627\u06cc\u06af\u0627\u0647 \u062f\u0627\u062f\u0647 \u0628\u0631\u0627\u06cc \u0630\u062e\u06cc\u0631\u0647 \u0646\u062a\u0627\u06cc\u062c \u0622\u0632\u0645\u0627\u06cc\u0634\u200c\u0647\u0627 \u0648 \u0645\u062a\u0627\u062f\u06cc\u062a\u0627.<\/li>\n\n\n\n<li><strong>\u062f\u0633\u062a\u0631\u0633\u06cc GPU:<\/strong> \u06a9\u0627\u0646\u062a\u06cc\u0646\u0631 JupyterLab \u0637\u0648\u0631\u06cc \u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc \u0645\u06cc\u200c\u0634\u0648\u062f \u06a9\u0647 \u0628\u0647 GPU \u0627\u0646\u0648\u06cc\u062f\u06cc\u0627 \u0645\u0627\u0634\u06cc\u0646 \u0645\u06cc\u0632\u0628\u0627\u0646 \u062f\u0633\u062a\u0631\u0633\u06cc \u062f\u0627\u0634\u062a\u0647 \u0628\u0627\u0634\u062f\u061b \u0646\u06cc\u0627\u0632\u06cc \u06a9\u0647 \u0628\u0631\u0627\u06cc \u0622\u0645\u0648\u0632\u0634 \u0645\u062f\u0644\u200c\u0647\u0627 \u0631\u0627\u06cc\u062c \u0627\u0633\u062a.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>\u067e\u06cc\u0634\u200c\u0646\u06cc\u0627\u0632:<\/strong> \u0627\u06cc\u0646 \u0645\u062b\u0627\u0644 \u0628\u0647 \u06cc\u06a9 GPU \u0627\u0646\u0648\u06cc\u062f\u06cc\u0627 \u0631\u0648\u06cc \u0645\u0627\u0634\u06cc\u0646 \u0645\u06cc\u0632\u0628\u0627\u0646 \u0648 \u0646\u0635\u0628 NVIDIA Container Toolkit \u0646\u06cc\u0627\u0632 \u062f\u0627\u0631\u062f. \u0628\u062f\u0648\u0646 \u0622\u0646\u060c \u06a9\u0627\u0646\u062a\u06cc\u0646\u0631 \u0647\u0646\u06af\u0627\u0645 \u062f\u0631\u062e\u0648\u0627\u0633\u062a \u0645\u0646\u0627\u0628\u0639 GPU \u0628\u0627 \u062e\u0637\u0627 \u0645\u0648\u0627\u062c\u0647 \u0645\u06cc\u200c\u0634\u0648\u062f.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">\u0633\u0627\u062e\u062a\u0627\u0631 \u0641\u0627\u06cc\u0644\u200c\u0647\u0627<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">\u0627\u0628\u062a\u062f\u0627 \u06cc\u06a9 \u062f\u0627\u06cc\u0631\u06a9\u062a\u0648\u0631\u06cc \u0628\u0631\u0627\u06cc \u067e\u0631\u0648\u0698\u0647 \u062e\u0648\u062f \u0628\u0633\u0627\u0632\u06cc\u062f. \u062f\u0627\u062e\u0644 \u0622\u0646\u060c \u06cc\u06a9 \u0641\u0627\u06cc\u0644 docker-compose.yml\u060c \u06cc\u06a9 \u062f\u0627\u06cc\u0631\u06a9\u062a\u0648\u0631\u06cc jupyter\u060c \u06cc\u06a9 Dockerfile \u0628\u0631\u0627\u06cc Jupyter \u0648 \u06cc\u06a9 \u0641\u0627\u06cc\u0644 requirements.txt \u0645\u06cc\u200c\u0633\u0627\u0632\u06cc\u062f. \u0633\u0627\u062e\u062a\u0627\u0631 \u0628\u0627\u06cc\u062f \u0686\u06cc\u0632\u06cc \u0634\u0628\u06cc\u0647 \u0627\u06cc\u0646 \u0628\u0627\u0634\u062f:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>ai-project\/\n\u251c\u2500\u2500 docker-compose.yml\n\u2514\u2500\u2500 jupyter\/\n    \u251c\u2500\u2500 Dockerfile\n    \u2514\u2500\u2500 requirements.txt<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">\u0633\u0627\u062e\u062a \u0641\u0627\u06cc\u0644\u200c\u0647\u0627\u06cc \u0627\u062c\u0632\u0627<\/h3>\n\n\n\n<h4 class=\"wp-block-heading\">\u06f1. \u0641\u0627\u06cc\u0644 requirements.txt<\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">\u0627\u06cc\u0646 \u0641\u0627\u06cc\u0644 \u067e\u06a9\u06cc\u062c\u200c\u0647\u0627\u06cc Python \u0645\u062d\u06cc\u0637 \u0639\u0644\u0645 \u062f\u0627\u062f\u0647 \u0634\u0645\u0627 \u0631\u0627 \u0641\u0647\u0631\u0633\u062a \u0645\u06cc\u200c\u06a9\u0646\u062f.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>nano jupyter\/requirements.txt<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\u067e\u06a9\u06cc\u062c\u200c\u0647\u0627\u06cc \u0645\u0648\u0631\u062f\u0646\u06cc\u0627\u0632 \u062e\u0648\u062f \u0631\u0627 \u0627\u0636\u0627\u0641\u0647 \u06a9\u0646\u06cc\u062f. \u0628\u0631\u0627\u06cc \u0627\u06cc\u0646 \u0645\u062b\u0627\u0644\u060c \u06a9\u062a\u0627\u0628\u062e\u0627\u0646\u0647\u200c\u0647\u0627\u06cc\u06cc \u0628\u0631\u0627\u06cc \u067e\u0631\u062f\u0627\u0632\u0634 \u062f\u0627\u062f\u0647\u060c \u0627\u062a\u0635\u0627\u0644 \u0628\u0647 \u067e\u0627\u06cc\u06af\u0627\u0647 \u062f\u0627\u062f\u0647 \u0648 \u06cc\u06a9 \u0641\u0631\u06cc\u0645\u200c\u0648\u0631\u06a9 \u06cc\u0627\u062f\u06af\u06cc\u0631\u06cc \u0639\u0645\u06cc\u0642 \u0631\u0627 \u0627\u0636\u0627\u0641\u0647 \u0645\u06cc\u200c\u06a9\u0646\u06cc\u0645.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong><code>jupyter\/requirements.txt<\/code><\/strong><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>pandas\nscikit-learn\ntensorflow\njupyterlab\npsycopg2-binary<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\u0641\u0627\u06cc\u0644 \u0631\u0627 \u0630\u062e\u06cc\u0631\u0647 \u06a9\u0631\u062f\u0647 \u0648 \u0628\u0628\u0646\u062f\u06cc\u062f.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">\u06f2. \u0641\u0627\u06cc\u0644 Dockerfile<\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">\u0627\u06cc\u0646 \u0641\u0627\u06cc\u0644 \u0633\u0631\u0648\u06cc\u0633 \u0633\u0641\u0627\u0631\u0634\u06cc JupyterLab \u0634\u0645\u0627 \u0631\u0627 \u062a\u0639\u0631\u06cc\u0641 \u0645\u06cc\u200c\u06a9\u0646\u062f. \u0627\u06cc\u0646 \u0641\u0627\u06cc\u0644 \u0627\u0632 \u0627\u06cc\u0645\u06cc\u062c \u0631\u0633\u0645\u06cc Jupyter \u0628\u0627 \u0646\u0627\u0645 scipy-notebook (\u0645\u06cc\u0632\u0628\u0627\u0646\u200c\u0634\u062f\u0647 \u062f\u0631 Quay.io) \u0628\u0647\u200c\u0639\u0646\u0648\u0627\u0646 \u067e\u0627\u06cc\u0647 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0631\u062f\u0647 \u0648 \u067e\u06a9\u06cc\u062c\u200c\u0647\u0627\u06cc requirements.txt \u0631\u0627 \u0646\u0635\u0628 \u0645\u06cc\u200c\u06a9\u0646\u062f.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>nano jupyter\/Dockerfile<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\u0645\u062d\u062a\u0648\u0627\u06cc \u0632\u06cc\u0631 \u0631\u0627 \u062c\u0627\u06cc\u200c\u06af\u0630\u0627\u0631\u06cc \u06a9\u0646\u06cc\u062f:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong><code>jupyter\/Dockerfile<\/code><\/strong><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code># \u0634\u0631\u0648\u0639 \u0627\u0632 \u06cc\u06a9 \u0627\u06cc\u0645\u06cc\u062c \u067e\u0627\u06cc\u0647 \u06a9\u0647 Jupyter \u0648 \u06a9\u062a\u0627\u0628\u062e\u0627\u0646\u0647\u200c\u0647\u0627\u06cc \u0639\u0644\u0645\u06cc \u0631\u0627 \u062f\u0631 \u0628\u0631 \u062f\u0627\u0631\u062f\nFROM quay.cr.parmincloud.ir\/jupyter\/scipy-notebook:latest\n\n# \u06a9\u067e\u06cc \u0641\u0627\u06cc\u0644 requirements \u0645\u062d\u0644\u06cc \u0628\u0647 \u062f\u0627\u062e\u0644 \u06a9\u0627\u0646\u062a\u06cc\u0646\u0631\nCOPY requirements.txt \/tmp\/requirements.txt\n\n# \u0646\u0635\u0628 \u067e\u06a9\u06cc\u062c\u200c\u0647\u0627\u06cc Python\nRUN pip install --no-cache-dir -i https:\/\/pypi.parmincloud.ir\/simple\/ -r \/tmp\/requirements.txt<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\u0627\u06cc\u0646 \u0641\u0627\u06cc\u0644 \u0628\u0647 Docker \u062f\u0633\u062a\u0648\u0631 \u0645\u06cc\u200c\u062f\u0647\u062f \u06a9\u0647 \u0627\u0632 \u0627\u06cc\u0645\u06cc\u062c scipy-notebook \u0628\u0647\u200c\u0639\u0646\u0648\u0627\u0646 \u0646\u0642\u0637\u0647 \u0634\u0631\u0648\u0639 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u062f\u060c \u0641\u0627\u06cc\u0644 requirements.txt \u0634\u0645\u0627 \u0631\u0627 \u062f\u0627\u062e\u0644 \u06a9\u0627\u0646\u062a\u06cc\u0646\u0631 \u06a9\u067e\u06cc \u06a9\u0646\u062f \u0648 \u0633\u067e\u0633 \u067e\u06a9\u06cc\u062c\u200c\u0647\u0627\u06cc Python \u0631\u0627 \u0628\u0627 pip \u0646\u0635\u0628 \u06a9\u0646\u062f.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">\u062a\u0639\u0631\u06cc\u0641 \u0645\u062d\u06cc\u0637 \u0628\u0627 docker-compose.yml<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">\u062d\u0627\u0644\u0627 \u0641\u0627\u06cc\u0644 \u0627\u0635\u0644\u06cc docker-compose.yml \u0631\u0627 \u0628\u0633\u0627\u0632\u06cc\u062f. \u0627\u06cc\u0646 \u0641\u0627\u06cc\u0644 \u0647\u0645 \u0633\u0631\u0648\u06cc\u0633 db \u0648 \u0647\u0645 \u0633\u0631\u0648\u06cc\u0633 \u0633\u0641\u0627\u0631\u0634\u06cc jupyter \u0634\u0645\u0627 \u0631\u0627 \u0627\u0631\u06a9\u0633\u062a\u0631\u0627\u0633\u06cc\u0648\u0646 \u0645\u06cc\u200c\u06a9\u0646\u062f.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>nano docker-compose.yml<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc \u0632\u06cc\u0631 \u0631\u0627 \u062c\u0627\u06cc\u200c\u06af\u0630\u0627\u0631\u06cc \u06a9\u0631\u062f\u0647 \u0648 \u062c\u0627\u06cc\u06af\u0632\u06cc\u0646\u200c\u0647\u0627\u06cc <code>&lt;...&gt;<\/code> \u0631\u0627 \u0628\u0627 \u0627\u0637\u0644\u0627\u0639\u0627\u062a \u0627\u0645\u0646 \u062e\u0648\u062f\u062a\u0627\u0646 \u0639\u0648\u0636 \u06a9\u0646\u06cc\u062f.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong><code>docker-compose.yml<\/code><\/strong><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>services:\n  db:\n    image: hub.cr.parmincloud.ir\/library\/postgres:15-alpine\n    container_name: ai_postgres_db\n    environment:\n      POSTGRES_USER: &lt;your_db_user&gt;\n      POSTGRES_PASSWORD: &lt;your_db_pass&gt;\n      POSTGRES_DB: experiments\n    healthcheck:\n      test: &#91;\"CMD-SHELL\", \"pg_isready -U &lt;your_db_user&gt; -d experiments\"]\n      interval: 10s\n      timeout: 5s\n      retries: 5\n    volumes:\n      - postgres_data:\/var\/lib\/postgresql\/data\n    restart: unless-stopped\n    networks:\n      - ai_net\n\n  jupyter:\n    build: .\/jupyter\n    container_name: ai_jupyter_lab\n    ports:\n      - \"8888:8888\"\n    volumes:\n      - .\/notebooks:\/home\/jovyan\/work\n    environment:\n      - POSTGRES_HOST=db\n      - POSTGRES_USER=&lt;your_db_user&gt;\n      - POSTGRES_PASSWORD=&lt;your_db_pass&gt;\n      - POSTGRES_DB=experiments\n    restart: unless-stopped\n    networks:\n      - ai_net\n    depends_on:\n      db:\n        condition: service_healthy\n    deploy:\n      resources:\n        reservations:\n          devices:\n            - driver: nvidia\n              count: 1\n              capabilities: &#91;gpu]\n\nvolumes:\n  postgres_data:\n    name: ai_project_data\n\nnetworks:\n  ai_net:\n    driver: bridge<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\u0627\u06cc\u0646 \u0641\u0627\u06cc\u0644 \u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc \u0686\u0646\u062f\u06cc\u0646 \u0645\u0641\u0647\u0648\u0645 \u0645\u0647\u0645 \u0631\u0627 \u0645\u0639\u0631\u0641\u06cc \u0645\u06cc\u200c\u06a9\u0646\u062f:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>build: .\/jupyter:<\/strong> \u0628\u0647 Docker Compose \u0645\u06cc\u200c\u06af\u0648\u06cc\u062f \u0628\u0631\u0627\u06cc \u0633\u0631\u0648\u06cc\u0633 jupyter \u06cc\u06a9 \u0627\u06cc\u0645\u06cc\u062c \u0633\u0641\u0627\u0631\u0634\u06cc \u0628\u0633\u0627\u0632\u062f. \u0627\u06cc\u0646 \u062f\u0633\u062a\u0648\u0631 \u0628\u0647\u200c\u062f\u0646\u0628\u0627\u0644 \u06cc\u06a9 Dockerfile \u062f\u0627\u062e\u0644 \u062f\u0627\u06cc\u0631\u06a9\u062a\u0648\u0631\u06cc \u0645\u0634\u062e\u0635\u200c\u0634\u062f\u0647 \u06cc\u0639\u0646\u06cc .\/jupyter \u0645\u06cc\u200c\u06af\u0631\u062f\u062f.<\/li>\n\n\n\n<li><strong>volumes: &#8211; .\/notebooks:\/home\/jovyan\/work:<\/strong> \u06cc\u06a9 \u062f\u0627\u06cc\u0631\u06a9\u062a\u0648\u0631\u06cc \u0645\u062d\u0644\u06cc \u0628\u0627 \u0646\u0627\u0645 notebooks \u0631\u0627 \u062f\u0627\u062e\u0644 \u06a9\u0627\u0646\u062a\u06cc\u0646\u0631 \u0628\u0627\u06cc\u0646\u062f \u0645\u0627\u0648\u0646\u062a (Bind Mount) \u0645\u06cc\u200c\u06a9\u0646\u062f. \u0627\u06cc\u0646 \u06a9\u0627\u0631 \u062a\u0636\u0645\u06cc\u0646 \u0645\u06cc\u200c\u06a9\u0646\u062f \u0647\u0645\u0647 \u0646\u0648\u062a\u200c\u0628\u0648\u06a9\u200c\u0647\u0627\u06cc Jupyter \u06a9\u0647 \u0645\u06cc\u200c\u0633\u0627\u0632\u06cc\u062f\u060c \u0645\u0633\u062a\u0642\u06cc\u0645\u0627\u064b \u0631\u0648\u06cc \u0645\u0627\u0634\u06cc\u0646 \u0645\u06cc\u0632\u0628\u0627\u0646 \u0630\u062e\u06cc\u0631\u0647 \u0634\u0648\u0646\u062f \u0648 \u062d\u062a\u06cc \u0628\u0639\u062f \u0627\u0632 \u062d\u0630\u0641 \u06a9\u0627\u0646\u062a\u06cc\u0646\u0631 \u0628\u0627\u0642\u06cc \u0628\u0645\u0627\u0646\u0646\u062f.<\/li>\n\n\n\n<li><strong>healthcheck:<\/strong> \u0647\u0645\u0627\u0646\u200c\u0637\u0648\u0631 \u06a9\u0647 \u062f\u0631 \u0628\u062e\u0634 \u0639\u06cc\u0628\u200c\u06cc\u0627\u0628\u06cc \u062e\u0648\u0627\u0647\u06cc\u062f \u062f\u06cc\u062f\u060c \u0627\u06cc\u0646 \u0628\u0631\u0631\u0633\u06cc \u062a\u0623\u06cc\u06cc\u062f \u0645\u06cc\u200c\u06a9\u0646\u062f \u06a9\u0647 \u0633\u0631\u0648\u06cc\u0633 db \u0641\u0642\u0637 \u062f\u0631 \u062d\u0627\u0644 \u0627\u062c\u0631\u0627 \u0646\u06cc\u0633\u062a\u060c \u0628\u0644\u06a9\u0647 \u067e\u06cc\u0634 \u0627\u0632 \u0634\u0631\u0648\u0639 \u0633\u0631\u0648\u06cc\u0633\u200c\u0647\u0627\u06cc \u062f\u06cc\u06af\u0631 \u0628\u0631\u0627\u06cc \u067e\u0630\u06cc\u0631\u0634 \u0627\u062a\u0635\u0627\u0644\u200c\u0647\u0627 \u0622\u0645\u0627\u062f\u0647 \u0627\u0633\u062a.<\/li>\n\n\n\n<li><strong>depends_on: &#8230; condition: service_healthy:<\/strong> \u0628\u0647 \u0633\u0631\u0648\u06cc\u0633 jupyter \u0645\u06cc\u200c\u06af\u0648\u06cc\u062f \u062a\u0627 \u0632\u0645\u0627\u0646 \u0645\u0648\u0641\u0642\u06cc\u062a healthcheck \u0633\u0631\u0648\u06cc\u0633 db \u0635\u0628\u0631 \u06a9\u0631\u062f\u0647 \u0648 \u0633\u067e\u0633 \u0634\u0631\u0648\u0639 \u0634\u0648\u062f.<\/li>\n\n\n\n<li><strong>deploy.resources.reservations.devices:<\/strong> \u0627\u06cc\u0646 \u0628\u0644\u0648\u06a9 \u0627\u0633\u062a \u06a9\u0647 \u062f\u0633\u062a\u0631\u0633\u06cc GPU \u0631\u0627 \u062f\u0631\u062e\u0648\u0627\u0633\u062a \u0645\u06cc\u200c\u06a9\u0646\u062f.\n<ul class=\"wp-block-list\">\n<li><strong>driver: nvidia:<\/strong> \u062f\u0631\u0627\u06cc\u0648\u0631 \u0645\u06cc\u0632\u0628\u0627\u0646\u0650 \u0645\u0648\u0631\u062f \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0631\u0627 \u0645\u0634\u062e\u0635 \u0645\u06cc\u200c\u06a9\u0646\u062f.<\/li>\n\n\n\n<li><strong>count: 1:<\/strong> \u06cc\u06a9 GPU \u062f\u0631\u062e\u0648\u0627\u0633\u062a \u0645\u06cc\u200c\u06a9\u0646\u062f.<\/li>\n\n\n\n<li><strong>capabilities: [gpu]:<\/strong> \u062a\u0636\u0645\u06cc\u0646 \u0645\u06cc\u200c\u06a9\u0646\u062f \u06a9\u0627\u0646\u062a\u06cc\u0646\u0631 \u0642\u0627\u0628\u0644\u06cc\u062a\u200c\u0647\u0627\u06cc \u0644\u0627\u0632\u0645 \u0628\u0631\u0627\u06cc \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 GPU \u0631\u0627 \u062f\u0627\u0634\u062a\u0647 \u0628\u0627\u0634\u062f.<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">\u0627\u062c\u0631\u0627\u06cc \u0645\u062d\u06cc\u0637 AI\/ML<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">\u062d\u0627\u0644\u0627 \u06a9\u0647 \u0641\u0627\u06cc\u0644\u200c\u0647\u0627\u06cc \u062e\u0648\u062f \u0631\u0627 \u062f\u0631 \u062c\u0627\u06cc \u062e\u0648\u062f \u062f\u0627\u0631\u06cc\u062f\u060c \u0622\u0645\u0627\u062f\u0647 \u0633\u0627\u062e\u062a \u0648 \u0627\u062c\u0631\u0627\u06cc \u0633\u0631\u0648\u06cc\u0633\u200c\u0647\u0627 \u0647\u0633\u062a\u06cc\u062f.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u0627\u0632 \u062f\u0627\u06cc\u0631\u06a9\u062a\u0648\u0631\u06cc ai-project \u062e\u0648\u062f\u060c \u062f\u0633\u062a\u0648\u0631 docker compose up \u0631\u0627 \u0627\u062c\u0631\u0627 \u06a9\u0646\u06cc\u062f. \u0628\u0627\u0631 \u0627\u0648\u0644 \u0628\u0627\u06cc\u062f \u0641\u0644\u06af &#8211;build \u0631\u0627 \u0627\u0636\u0627\u0641\u0647 \u06a9\u0646\u06cc\u062f \u062a\u0627 \u0628\u0647 Compose \u0628\u06af\u0648\u06cc\u06cc\u062f \u0627\u06cc\u0645\u06cc\u062c \u0633\u0641\u0627\u0631\u0634\u06cc jupyter \u0634\u0645\u0627 \u0631\u0627 \u0628\u0633\u0627\u0632\u062f.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>docker compose up -d --build<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Compose \u0627\u0628\u062a\u062f\u0627 \u0627\u06cc\u0645\u06cc\u062c jupyter \u0631\u0627 \u0645\u06cc\u200c\u0633\u0627\u0632\u062f (\u06a9\u0647 \u0645\u0645\u06a9\u0646 \u0627\u0633\u062a \u0686\u0646\u062f \u062f\u0642\u06cc\u0642\u0647 \u0637\u0648\u0644 \u0628\u06a9\u0634\u062f\u061b \u0686\u0648\u0646 TensorFlow \u0631\u0627 \u062f\u0627\u0646\u0644\u0648\u062f \u0645\u06cc\u200c\u06a9\u0646\u062f)\u060c \u0633\u067e\u0633 \u0627\u06cc\u0645\u06cc\u062c postgres \u0631\u0627 \u062f\u0631\u06cc\u0627\u0641\u062a \u06a9\u0631\u062f\u0647 \u0648 \u062f\u0631 \u0646\u0647\u0627\u06cc\u062a \u0647\u0631 \u062f\u0648 \u06a9\u0627\u0646\u062a\u06cc\u0646\u0631 \u0631\u0627 \u0631\u0627\u0647\u200c\u0627\u0646\u062f\u0627\u0632\u06cc \u0645\u06cc\u200c\u06a9\u0646\u062f.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u062e\u0631\u0648\u062c\u06cc:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>&#91;+] Building 5.8s (9\/9) FINISHED\n =&gt; &#91;internal] load build definition from Dockerfile\n...\n&#91;+] Running 3\/3\n \u2714 Network ai-project_ai_net        Created\n \u2714 Container ai_postgres_db         Started\n \u2714 Container ai_jupyter_lab         Started<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\u062d\u0627\u0644\u0627 \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u06cc\u062f \u0628\u0627 \u0645\u0631\u0627\u062c\u0639\u0647 \u0628\u0647 <a href=\"http:\/\/localhost:8888\">http:\/\/localhost:8888<\/a> (\u06cc\u0627 your_server_ip:8888) \u062f\u0631 \u0645\u0631\u0648\u0631\u06af\u0631\u060c \u0628\u0647 \u0631\u0627\u0628\u0637 JupyterLab \u062f\u0633\u062a\u0631\u0633\u06cc \u067e\u06cc\u062f\u0627 \u06a9\u0646\u06cc\u062f. \u0627\u0632 \u0634\u0645\u0627 \u06cc\u06a9 \u062a\u0648\u06a9\u0646 \u062e\u0648\u0627\u0633\u062a\u0647 \u0645\u06cc\u200c\u0634\u0648\u062f \u06a9\u0647 \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u06cc\u062f \u0622\u0646 \u0631\u0627 \u0627\u0632 \u0644\u0627\u06af\u200c\u0647\u0627\u06cc \u06a9\u0627\u0646\u062a\u06cc\u0646\u0631 \u0628\u06af\u06cc\u0631\u06cc\u062f:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>docker compose logs jupyter<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\u0628\u0647\u200c\u062f\u0646\u0628\u0627\u0644 \u062e\u0637\u06cc \u0645\u0634\u0627\u0628\u0647 <a href=\"http:\/\/127.0.0.1:8888\/lab?token=a1b2c3d4e5f6\">http:\/\/127.0.0.1:8888\/lab?token=a1b2c3d4e5f6<\/a>&#8230; \u0628\u06af\u0631\u062f\u06cc\u062f.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u062f\u0627\u062e\u0644 \u06cc\u06a9 \u0646\u0648\u062a\u200c\u0628\u0648\u06a9 Jupyter\u060c \u062d\u0627\u0644\u0627 \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u06cc\u062f \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u0646\u0627\u0645 \u0647\u0627\u0633\u062a db \u0648 \u0627\u0637\u0644\u0627\u0639\u0627\u062a\u06cc \u06a9\u0647 \u0627\u0631\u0627\u0626\u0647 \u06a9\u0631\u062f\u0647\u200c\u0627\u06cc\u062f\u060c \u0628\u0647 \u067e\u0627\u06cc\u06af\u0627\u0647 \u062f\u0627\u062f\u0647 \u062e\u0648\u062f \u0645\u062a\u0635\u0644 \u0634\u0648\u06cc\u062f. \u0645\u062d\u06cc\u0637 \u0634\u0645\u0627 \u0647\u0645\u0686\u0646\u06cc\u0646 \u0628\u0631\u0627\u06cc \u0622\u0645\u0648\u0632\u0634 \u0645\u062f\u0644\u200c\u0647\u0627 \u0628\u0647 GPU \u0645\u06cc\u0632\u0628\u0627\u0646 \u062f\u0633\u062a\u0631\u0633\u06cc \u062f\u0627\u0631\u062f.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">\u0645\u0642\u06cc\u0627\u0633\u200c\u062f\u0647\u06cc \u0633\u0631\u0648\u06cc\u0633\u200c\u0647\u0627 \u0648 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u0634\u0628\u06a9\u0647\u200c\u0647\u0627\u06cc \u0633\u0641\u0627\u0631\u0634\u06cc<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Docker Compose \u0634\u0627\u0645\u0644 \u0642\u0627\u0628\u0644\u06cc\u062a\u200c\u0647\u0627\u06cc\u06cc \u0628\u0631\u0627\u06cc \u0645\u0642\u06cc\u0627\u0633\u200c\u062f\u0647\u06cc \u0633\u0631\u0648\u06cc\u0633\u200c\u0647\u0627 \u0648 \u0645\u062f\u06cc\u0631\u06cc\u062a \u0634\u0628\u06a9\u0647\u200c\u0647\u0627\u06cc\u06cc \u0627\u0633\u062a \u06a9\u0647 \u0633\u0631\u0648\u06cc\u0633\u200c\u0647\u0627 \u0631\u0648\u06cc \u0622\u0646\u200c\u0647\u0627 \u0628\u0627 \u0647\u0645 \u0627\u0631\u062a\u0628\u0627\u0637 \u0628\u0631\u0642\u0631\u0627\u0631 \u0645\u06cc\u200c\u06a9\u0646\u0646\u062f.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">\u0645\u0642\u06cc\u0627\u0633\u200c\u062f\u0647\u06cc \u0633\u0631\u0648\u06cc\u0633 \u0628\u0627 \u0631\u067e\u0644\u06cc\u06a9\u0627<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">\u062a\u0635\u0648\u0631 \u06a9\u0646\u06cc\u062f \u0648\u0628\u200c\u0633\u0631\u0648\u0631 Nginx \u0634\u0645\u0627 \u0627\u0632 \u0645\u0631\u062d\u0644\u0647 \u06f2 \u062a\u0631\u0627\u0641\u06cc\u06a9 \u0632\u06cc\u0627\u062f\u06cc \u062f\u0631\u06cc\u0627\u0641\u062a \u0645\u06cc\u200c\u06a9\u0646\u062f. \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u06cc\u062f \u0633\u0631\u0648\u06cc\u0633 web \u0631\u0627 \u0645\u0642\u06cc\u0627\u0633 \u062f\u0647\u06cc\u062f \u062a\u0627 \u0686\u0646\u062f\u06cc\u0646 \u0646\u0645\u0648\u0646\u0647 \u06a9\u0627\u0646\u062a\u06cc\u0646\u0631 \u0627\u062c\u0631\u0627 \u0634\u0648\u062f. Docker Compose \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u062f \u0627\u06cc\u0646 \u06a9\u0627\u0631 \u0631\u0627 \u0628\u0647\u200c\u0635\u0648\u0631\u062a \u062e\u0648\u062f\u06a9\u0627\u0631 \u0645\u062f\u06cc\u0631\u06cc\u062a \u06a9\u0646\u062f.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u062f\u0648 \u0631\u0648\u0634 \u0627\u0635\u0644\u06cc \u0628\u0631\u0627\u06cc \u0645\u0642\u06cc\u0627\u0633\u200c\u062f\u0647\u06cc \u06cc\u06a9 \u0633\u0631\u0648\u06cc\u0633 \u0648\u062c\u0648\u062f \u062f\u0627\u0631\u062f.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">\u06f1. \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u06a9\u0644\u06cc\u062f replicas (\u0631\u0648\u0634 \u062a\u0631\u062c\u06cc\u062d\u06cc \u062f\u0631 v2)<\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">\u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u06cc\u062f \u062a\u0639\u062f\u0627\u062f \u062f\u0644\u062e\u0648\u0627\u0647 \u0646\u0645\u0648\u0646\u0647\u200c\u0647\u0627 \u0631\u0627 \u0645\u0633\u062a\u0642\u06cc\u0645\u0627\u064b \u062f\u0631 \u0641\u0627\u06cc\u0644 docker-compose.yml \u062e\u0648\u062f \u0628\u0627 \u06a9\u0644\u06cc\u062f\u0647\u0627\u06cc deploy \u0648 replicas \u062a\u0639\u0631\u06cc\u0641 \u06a9\u0646\u06cc\u062f. \u0627\u06cc\u0646 \u0642\u0627\u0628\u0644\u06cc\u062a \u062f\u0631 \u0627\u0635\u0644 \u0628\u062e\u0634\u06cc \u0627\u0632 Docker Swarm \u0628\u0648\u062f\u060c \u0627\u0645\u0627 \u0627\u06a9\u0646\u0648\u0646 \u0628\u0631\u0627\u06cc \u0627\u0633\u062a\u0642\u0631\u0627\u0631\u0647\u0627\u06cc \u0627\u0633\u062a\u0627\u0646\u062f\u0627\u0631\u062f Compose \u0647\u0645 \u062f\u0631 \u062f\u0633\u062a\u0631\u0633 \u0627\u0633\u062a.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u0641\u0627\u06cc\u0644 docker-compose.yml \u0645\u0631\u0628\u0648\u0637 \u0628\u0647 Nginx \u062e\u0648\u062f \u0631\u0627 \u0627\u0632 \u0645\u0631\u062d\u0644\u0647 \u06f2 \u0628\u0647 \u0627\u06cc\u0646 \u0634\u06a9\u0644 \u062a\u063a\u06cc\u06cc\u0631 \u062f\u0647\u06cc\u062f:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong><code>docker-compose.yml<\/code><\/strong><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>services:\n  web:\n    image: hub.cr.parmincloud.ir\/library\/nginx:alpine\n    ports:\n      - \"8000:80\"\n    volumes:\n      - .\/app:\/usr\/share\/nginx\/html\n    deploy:\n      replicas: 3<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\u0648\u0642\u062a\u06cc docker compose up -d \u0631\u0627 \u0627\u062c\u0631\u0627 \u06a9\u0646\u06cc\u062f\u060c Compose \u0633\u0647 \u06a9\u0627\u0646\u062a\u06cc\u0646\u0631 web \u0645\u06cc\u200c\u0633\u0627\u0632\u062f. \u0627\u0645\u0627 \u06cc\u06a9 \u0645\u0634\u06a9\u0644 \u062e\u0648\u0627\u0647\u06cc\u062f \u062f\u0627\u0634\u062a: \u0647\u0631 \u0633\u0647 \u06a9\u0627\u0646\u062a\u06cc\u0646\u0631 \u0633\u0639\u06cc \u0645\u06cc\u200c\u06a9\u0646\u0646\u062f \u0628\u0647 \u067e\u0648\u0631\u062a 8000 \u0645\u06cc\u0632\u0628\u0627\u0646 \u0645\u062a\u0635\u0644 (Bind) \u0634\u0648\u0646\u062f. \u0627\u06cc\u0646 \u0645\u0648\u0636\u0648\u0639 \u0628\u0627\u0639\u062b \u0628\u0631\u0648\u0632 \u062e\u0637\u0627\u06cc \u00abport is already allocated\u00bb \u0628\u0631\u0627\u06cc \u06a9\u0627\u0646\u062a\u06cc\u0646\u0631\u0647\u0627\u06cc \u062f\u0648\u0645 \u0648 \u0633\u0648\u0645 \u0645\u06cc\u200c\u0634\u0648\u062f. \u0628\u0631\u0627\u06cc \u0631\u0641\u0639 \u0627\u06cc\u0646 \u0645\u0634\u06a9\u0644 \u062f\u0631 \u06cc\u06a9 \u0631\u0627\u0647\u200c\u0627\u0646\u062f\u0627\u0632\u06cc production\u060c \u0628\u0627\u06cc\u062f \u0646\u06af\u0627\u0634\u062a ports \u0631\u0627 \u0627\u0632 \u0633\u0631\u0648\u06cc\u0633 web \u062d\u0630\u0641 \u06a9\u0646\u06cc\u062f. \u0628\u0647 \u0627\u06cc\u0646 \u062a\u0631\u062a\u06cc\u0628\u060c \u06a9\u0627\u0646\u062a\u06cc\u0646\u0631\u0647\u0627\u06cc web \u0641\u0642\u0637 \u062f\u0627\u062e\u0644 \u0634\u0628\u06a9\u0647 Docker \u062f\u0631 \u062f\u0633\u062a\u0631\u0633 \u062e\u0648\u0627\u0647\u0646\u062f \u0628\u0648\u062f. \u06cc\u06a9 \u0633\u0631\u0648\u06cc\u0633 \u0644\u0648\u062f \u0628\u0627\u0644\u0627\u0646\u0633\u0631 \u062c\u062f\u0627\u06af\u0627\u0646\u0647\u060c \u062a\u0646\u0647\u0627 \u0633\u0631\u0648\u06cc\u0633\u06cc \u062e\u0648\u0627\u0647\u062f \u0628\u0648\u062f \u06a9\u0647 \u067e\u0648\u0631\u062a \u0639\u0645\u0648\u0645\u06cc \u062f\u0627\u0631\u062f \u0648 \u0633\u067e\u0633 \u062a\u0631\u0627\u0641\u06cc\u06a9 \u0631\u0627 \u0628\u06cc\u0646 \u0633\u0647 \u0631\u067e\u0644\u06cc\u06a9\u0627\u06cc web \u062a\u0648\u0632\u06cc\u0639 \u0645\u06cc\u200c\u06a9\u0646\u062f.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u06cc\u06a9 \u0646\u0645\u0648\u0646\u0647 \u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc \u0628\u0647 \u0627\u06cc\u0646 \u0634\u06a9\u0644 \u062e\u0648\u0627\u0647\u062f \u0628\u0648\u062f (\u0627\u06cc\u0646 \u06cc\u06a9 \u0645\u062b\u0627\u0644 \u067e\u06cc\u0634\u0631\u0641\u062a\u0647 \u0627\u0633\u062a):<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong><code>docker-compose.yml<\/code> \u2014 \u062d\u0627\u0644\u062a \u062f\u0631\u0633\u062a \u0628\u0631\u0627\u06cc replicas<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>services:\n  web:\n    image: hub.cr.parmincloud.ir\/library\/nginx:alpine\n    # \u0627\u06cc\u0646\u062c\u0627 \u0646\u06af\u0627\u0634\u062a 'ports' \u0648\u062c\u0648\u062f \u0646\u062f\u0627\u0631\u062f.\n    # \u0633\u0631\u0648\u06cc\u0633 \u0641\u0642\u0637 \u062f\u0627\u062e\u0644 \u0634\u0628\u06a9\u0647 'web-net' \u062f\u0631 \u062f\u0633\u062a\u0631\u0633 \u0627\u0633\u062a.\n    volumes:\n      - .\/app:\/usr\/share\/nginx\/html\n    deploy:\n      replicas: 3\n    networks:\n      - web-net\n\n  load_balancer:\n    image: hub.cr.parmincloud.ir\/library\/nginx:latest\n    ports:\n      - \"80:80\" # \u0644\u0648\u062f \u0628\u0627\u0644\u0627\u0646\u0633\u0631 \u062a\u0646\u0647\u0627 \u0633\u0631\u0648\u06cc\u0633\u06cc \u0627\u0633\u062a \u06a9\u0647 \u067e\u0648\u0631\u062a \u0639\u0645\u0648\u0645\u06cc \u062f\u0627\u0631\u062f.\n    volumes:\n      - .\/nginx.conf:\/etc\/nginx\/nginx.conf # \u06cc\u06a9 \u0641\u0627\u06cc\u0644 \u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc \u06a9\u0647 \u0628\u0627\u0631 \u0631\u0627 \u0628\u06cc\u0646 \u0633\u0631\u0648\u06cc\u0633\u200c\u0647\u0627\u06cc 'web' \u062a\u0648\u0632\u06cc\u0639 \u0645\u06cc\u200c\u06a9\u0646\u062f.\n    networks:\n      - web-net\n    depends_on:\n      - web\n\nnetworks:\n  web-net:<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\u062f\u0631 \u0627\u06cc\u0646 \u0631\u0627\u0647\u200c\u0627\u0646\u062f\u0627\u0632\u06cc\u060c load_balancer \u0631\u0648\u06cc \u067e\u0648\u0631\u062a 80 \u06af\u0648\u0634 \u0645\u06cc\u200c\u062f\u0647\u062f \u0648 \u062f\u0631\u062e\u0648\u0627\u0633\u062a\u200c\u0647\u0627 \u0631\u0627 \u0628\u0647\u200c\u0635\u0648\u0631\u062a \u062f\u0627\u062e\u0644\u06cc \u0628\u0647 web_1\u060c web_2 \u0648 web_3 \u0647\u062f\u0627\u06cc\u062a \u0645\u06cc\u200c\u06a9\u0646\u062f.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u06a9\u0644\u06cc\u062f replicas \u0628\u06cc\u0634\u062a\u0631\u06cc\u0646 \u06a9\u0627\u0631\u0628\u0631\u062f \u0631\u0627 \u0632\u0645\u0627\u0646\u06cc \u062f\u0627\u0631\u062f \u06a9\u0647 \u0628\u0627 \u06cc\u06a9 \u067e\u0631\u0648\u06a9\u0633\u06cc \u0645\u0639\u06a9\u0648\u0633 (Reverse Proxy) \u0645\u0627\u0646\u0646\u062f Traefik \u06cc\u0627 \u06cc\u06a9 \u0646\u0645\u0648\u0646\u0647 \u062f\u06cc\u06af\u0631 \u0627\u0632 Nginx \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0634\u0648\u062f \u06a9\u0647 \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u062f \u062f\u0631\u062e\u0648\u0627\u0633\u062a\u200c\u0647\u0627 \u0631\u0627 \u0628\u06cc\u0646 \u0631\u067e\u0644\u06cc\u06a9\u0627\u0647\u0627 \u062f\u0627\u062e\u0644 \u0634\u0628\u06a9\u0647 Docker \u0645\u062a\u0648\u0627\u0632\u0646 \u06a9\u0646\u062f\u061b \u0628\u062f\u0648\u0646 \u0622\u0646\u06a9\u0647 \u0647\u0631 \u0631\u067e\u0644\u06cc\u06a9\u0627 \u0646\u06cc\u0627\u0632 \u0628\u0647 \u062f\u0631 \u0627\u062e\u062a\u06cc\u0627\u0631 \u06af\u0630\u0627\u0634\u062a\u0646 \u067e\u0648\u0631\u062a\u06cc \u0631\u0648\u06cc \u0645\u06cc\u0632\u0628\u0627\u0646 \u062f\u0627\u0634\u062a\u0647 \u0628\u0627\u0634\u062f.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">\u06f2. \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u0641\u0644\u06af &#8211;scale<\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">\u06cc\u06a9 \u0631\u0648\u0634 \u0631\u0627\u06cc\u062c \u062f\u06cc\u06af\u0631 \u0628\u0631\u0627\u06cc \u0645\u0642\u06cc\u0627\u0633\u200c\u062f\u0647\u06cc\u060c \u0641\u0644\u06af &#8211;scale \u0627\u0633\u062a\u061b \u0645\u06cc\u0631\u0627\u062b\u06cc \u0627\u0632 Compose v1. \u0627\u06cc\u0646 \u0641\u0644\u06af \u062f\u0631 \u0632\u0645\u0627\u0646 \u0627\u062c\u0631\u0627 \u0627\u0639\u0645\u0627\u0644 \u0634\u062f\u0647 \u0648 \u0647\u0631 \u06a9\u0644\u06cc\u062f replicas \u0631\u0627 \u0628\u0627\u0632\u0646\u0648\u06cc\u0633\u06cc (Override) \u0645\u06cc\u200c\u06a9\u0646\u062f.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u0628\u0627 \u0627\u06cc\u0646 \u062d\u0627\u0644\u060c \u0628\u0627\u06cc\u062f \u0628\u0627 \u062a\u0639\u0631\u06cc\u0641 \u067e\u0648\u0631\u062a\u200c\u0647\u0627 \u062f\u0642\u062a \u06a9\u0646\u06cc\u062f. \u0627\u06af\u0631 \u0633\u0631\u0648\u06cc\u0633 \u0634\u0645\u0627 \u06cc\u06a9 \u0646\u06af\u0627\u0634\u062a \u067e\u0648\u0631\u062a \u062b\u0627\u0628\u062a \u0645\u06cc\u0632\u0628\u0627\u0646 \u062a\u0639\u0631\u06cc\u0641 \u06a9\u0631\u062f\u0647 \u0628\u0627\u0634\u062f (\u0645\u062b\u0644\u0627\u064b &#8220;8000:80&#8221;)\u060c \u0627\u062c\u0631\u0627\u06cc docker compose up &#8211;scale \u0628\u0631\u0627\u06cc \u06a9\u0627\u0646\u062a\u06cc\u0646\u0631\u0647\u0627\u06cc \u062f\u0648\u0645 \u0648 \u0633\u0648\u0645 \u062e\u0637\u0627 \u0627\u06cc\u062c\u0627\u062f \u0645\u06cc\u200c\u06a9\u0646\u062f\u061b \u0686\u0648\u0646 \u0647\u0645\u0647 \u0633\u0639\u06cc \u0645\u06cc\u200c\u06a9\u0646\u0646\u062f \u0628\u0647 \u0647\u0645\u0627\u0646 \u067e\u0648\u0631\u062a \u0645\u06cc\u0632\u0628\u0627\u0646 \u0645\u062a\u0635\u0644 \u0634\u0648\u0646\u062f.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u0628\u0631\u0627\u06cc \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 &#8211;scale \u0628\u0631\u0627\u06cc \u0633\u0631\u0648\u06cc\u0633\u200c\u0647\u0627\u06cc\u06cc \u06a9\u0647 \u067e\u0648\u0631\u062a \u062f\u0627\u0631\u0646\u062f\u060c \u0646\u0628\u0627\u06cc\u062f \u0627\u0632 \u0646\u06af\u0627\u0634\u062a \u067e\u0648\u0631\u062a \u062b\u0627\u0628\u062a \u0645\u06cc\u0632\u0628\u0627\u0646 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u06cc\u062f.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>\u06af\u0632\u06cc\u0646\u0647 \u06f1: \u0646\u06af\u0627\u0634\u062a \u0628\u0647 \u067e\u0648\u0631\u062a\u200c\u0647\u0627\u06cc \u062a\u0635\u0627\u062f\u0641\u06cc \u0645\u06cc\u0632\u0628\u0627\u0646 (\u0645\u0646\u0627\u0633\u0628 \u0628\u0631\u0627\u06cc \u062a\u0648\u0633\u0639\u0647)<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u06cc\u062f \u0641\u0627\u06cc\u0644 docker-compose.yml \u062e\u0648\u062f \u0631\u0627 \u0637\u0648\u0631\u06cc \u062a\u063a\u06cc\u06cc\u0631 \u062f\u0647\u06cc\u062f \u06a9\u0647 \u0641\u0642\u0637 \u067e\u0648\u0631\u062a \u06a9\u0627\u0646\u062a\u06cc\u0646\u0631 \u0631\u0627 \u0645\u0634\u062e\u0635 \u06a9\u0646\u062f. \u0627\u06cc\u0646 \u06a9\u0627\u0631 \u0628\u0647 Docker \u0645\u06cc\u200c\u06af\u0648\u06cc\u062f \u067e\u0648\u0631\u062a 80 \u0647\u0631 \u06a9\u0627\u0646\u062a\u06cc\u0646\u0631 \u0631\u0627 \u0628\u0647 \u06cc\u06a9 \u067e\u0648\u0631\u062a \u062a\u0635\u0627\u062f\u0641\u06cc \u0648 \u0622\u0632\u0627\u062f \u0631\u0648\u06cc \u0645\u0627\u0634\u06cc\u0646 \u0645\u06cc\u0632\u0628\u0627\u0646 \u0634\u0645\u0627 \u0646\u06af\u0627\u0634\u062a \u06a9\u0646\u062f.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong><code>docker-compose.yml<\/code> \u2014 \u062d\u0627\u0644\u062a \u062f\u0631\u0633\u062a \u0628\u0631\u0627\u06cc &#8211;scale<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>services:\n  web:\n    image: hub.cr.parmincloud.ir\/library\/nginx:alpine\n    ports:\n      - \"80\" # \u0628\u062f\u0648\u0646 \u067e\u0648\u0631\u062a \u062b\u0627\u0628\u062a \u0645\u06cc\u0632\u0628\u0627\u0646\n    volumes:\n      - .\/app:\/usr\/share\/nginx\/html<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\u062d\u0627\u0644\u0627 \u0648\u0642\u062a\u06cc \u062f\u0633\u062a\u0648\u0631 \u0645\u0642\u06cc\u0627\u0633\u200c\u062f\u0647\u06cc \u0631\u0627 \u0627\u062c\u0631\u0627 \u06a9\u0646\u06cc\u062f:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>docker compose up -d --scale web=3<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\u0628\u0631\u0627\u06cc \u062f\u06cc\u062f\u0646 \u0646\u062a\u06cc\u062c\u0647\u060c docker compose ps \u0631\u0627 \u0627\u062c\u0631\u0627 \u06a9\u0646\u06cc\u062f. \u0647\u0631 \u06a9\u0627\u0646\u062a\u06cc\u0646\u0631 \u0631\u0648\u06cc \u06cc\u06a9 \u067e\u0648\u0631\u062a \u0645\u06cc\u0632\u0628\u0627\u0646\u0650 \u0645\u062a\u0641\u0627\u0648\u062a \u0648 \u062a\u0635\u0627\u062f\u0641\u06cc\u0650 \u0627\u062e\u062a\u0635\u0627\u0635\u200c\u06cc\u0627\u0641\u062a\u0647 \u062f\u0631 \u062d\u0627\u0644 \u0627\u062c\u0631\u0627 \u062e\u0648\u0627\u0647\u062f \u0628\u0648\u062f:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u062e\u0631\u0648\u062c\u06cc:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"> <code>     Name                     Command               State          Ports        \n----------------------------------------------------------------------------------\ncompose-demo_web_1   \/docker-entrypoint.sh ngin ...   Up      0.0.0.0:49154-&gt;80\/tcp\ncompose-demo-web_2   \/docker-entrypoint.sh ngin ...   Up      0.0.0.0:49155-&gt;80\/tcp\ncompose-demo-web_3   \/docker-entrypoint.sh ngin ...   Up      0.0.0.0:49156-&gt;80\/tcp<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>\u06af\u0632\u06cc\u0646\u0647 \u06f2: \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u067e\u0631\u0648\u06a9\u0633\u06cc \u0645\u0639\u06a9\u0648\u0633 (\u0645\u0646\u0627\u0633\u0628 \u0628\u0631\u0627\u06cc production)<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u0631\u0627\u0647\u200c\u062d\u0644 \u062f\u06cc\u06af\u0631\u060c \u0647\u0645\u0627\u0646\u200c\u0637\u0648\u0631 \u06a9\u0647 \u062f\u0631 \u0628\u062e\u0634 replicas \u0627\u0634\u0627\u0631\u0647 \u0634\u062f\u060c \u062d\u0630\u0641 \u06a9\u0627\u0645\u0644 \u062f\u0633\u062a\u0648\u0631 ports \u0627\u0632 \u0633\u0631\u0648\u06cc\u0633 web \u0627\u0633\u062a. \u0633\u067e\u0633 \u0627\u0632 \u06cc\u06a9 \u06a9\u0627\u0646\u062a\u06cc\u0646\u0631 \u0644\u0648\u062f \u0628\u0627\u0644\u0627\u0646\u0633\u0631 \u062c\u062f\u0627\u06af\u0627\u0646\u0647 (\u06a9\u0647 \u062a\u0646\u0647\u0627 \u067e\u0648\u0631\u062a \u0639\u0645\u0648\u0645\u06cc \u0631\u0627 \u062f\u0627\u0631\u062f) \u0628\u0631\u0627\u06cc \u0645\u062f\u06cc\u0631\u06cc\u062a \u0648 \u062a\u0648\u0632\u06cc\u0639 \u062a\u0631\u0627\u0641\u06cc\u06a9 \u0628\u06cc\u0646 \u0631\u067e\u0644\u06cc\u06a9\u0627\u0647\u0627\u06cc \u0645\u0642\u06cc\u0627\u0633\u200c\u0634\u062f\u0647 \u062f\u0627\u062e\u0644 \u0634\u0628\u06a9\u0647 Docker \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u06cc\u200c\u06a9\u0646\u06cc\u062f.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u0628\u0631\u0627\u06cc \u062a\u0648\u0642\u0641 \u0648 \u062d\u0630\u0641 \u0647\u0631 \u0633\u0647 \u06a9\u0627\u0646\u062a\u06cc\u0646\u0631\u060c \u062f\u0633\u062a\u0648\u0631 \u0647\u0645\u0627\u0646 \u062f\u0633\u062a\u0648\u0631 \u0642\u0628\u0644\u06cc \u0628\u0627\u0642\u06cc \u0645\u06cc\u200c\u0645\u0627\u0646\u062f:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>docker compose down<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">\u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc \u0634\u0628\u06a9\u0647 \u0633\u0641\u0627\u0631\u0634\u06cc<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">\u0628\u0647\u200c\u0635\u0648\u0631\u062a \u067e\u06cc\u0634\u200c\u0641\u0631\u0636\u060c Docker Compose \u0628\u0631\u0627\u06cc \u0627\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646 \u0634\u0645\u0627 \u06cc\u06a9 \u0634\u0628\u06a9\u0647 bridge \u0648\u0627\u062d\u062f \u0645\u06cc\u200c\u0633\u0627\u0632\u062f. \u0647\u0631 \u0633\u0631\u0648\u06cc\u0633 \u0645\u0648\u062c\u0648\u062f \u062f\u0631 \u0641\u0627\u06cc\u0644 \u0628\u0647 \u0622\u0646 \u0645\u062a\u0635\u0644 \u0627\u0633\u062a\u061b \u0648 \u062f\u0642\u06cc\u0642\u0627\u064b \u0628\u0647 \u0647\u0645\u06cc\u0646 \u062f\u0644\u06cc\u0644 \u0628\u0648\u062f \u06a9\u0647 \u06a9\u0627\u0646\u062a\u06cc\u0646\u0631 wordpress \u062a\u0648\u0627\u0646\u0633\u062a \u06a9\u0627\u0646\u062a\u06cc\u0646\u0631 db \u0631\u0627 \u0641\u0642\u0637 \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u0646\u0627\u0645 \u0633\u0631\u0648\u06cc\u0633 \u0622\u0646 (db) \u067e\u06cc\u062f\u0627 \u06a9\u0646\u062f.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u0628\u0627 \u0627\u06cc\u0646 \u062d\u0627\u0644\u060c \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u06cc\u062f \u0628\u0631\u0627\u06cc \u0627\u06cc\u0632\u0648\u0644\u0627\u0633\u06cc\u0648\u0646 \u0648 \u06a9\u0646\u062a\u0631\u0644 \u0628\u0647\u062a\u0631\u060c \u0634\u0628\u06a9\u0647\u200c\u0647\u0627\u06cc \u0633\u0641\u0627\u0631\u0634\u06cc \u062e\u0648\u062f\u062a\u0627\u0646 \u0631\u0627 \u062a\u0639\u0631\u06cc\u0641 \u06a9\u0646\u06cc\u062f.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u0628\u06cc\u0627\u06cc\u06cc\u062f \u0645\u062b\u0627\u0644 \u0648\u0631\u062f\u067e\u0631\u0633 \u0631\u0627 \u0637\u0648\u0631\u06cc \u062a\u063a\u06cc\u06cc\u0631 \u062f\u0647\u06cc\u0645 \u06a9\u0647 \u0627\u0632 \u06cc\u06a9 \u0634\u0628\u06a9\u0647 bridge \u0633\u0641\u0627\u0631\u0634\u06cc \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u062f.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong><code>docker-compose.yml<\/code><\/strong><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>services:\n  db:\n    image: hub.cr.parmincloud.ir\/library\/mysql:8.0\n    ...\n    networks:\n      - app_net\n\n  wordpress:\n    image: hub.cr.parmincloud.ir\/library\/wordpress:latest\n    ...\n    ports:\n      - \"8001:80\"\n    depends_on:\n      - db\n    networks:\n      - app_net\n\nvolumes:\n  db_data:\n\nnetworks:\n  app_net:\n    driver: bridge<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\u0622\u0646\u0686\u0647 \u0627\u0636\u0627\u0641\u0647 \u06a9\u0631\u062f\u06cc\u0645:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>networks (\u062f\u0631 \u0633\u0637\u062d \u0628\u0627\u0644\u0627):<\/strong> \u0634\u0628\u06a9\u0647 \u062c\u062f\u06cc\u062f\u06cc \u0628\u0627 \u0646\u0627\u0645 app_net \u062a\u0639\u0631\u06cc\u0641 \u0645\u06cc\u200c\u06a9\u0646\u062f \u0648 \u0645\u0634\u062e\u0635 \u0645\u06cc\u200c\u06a9\u0646\u062f \u06a9\u0647 \u0627\u0632 \u062f\u0631\u0627\u06cc\u0648\u0631 \u0627\u0633\u062a\u0627\u0646\u062f\u0627\u0631\u062f bridge \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0634\u0648\u062f.<\/li>\n\n\n\n<li><strong>networks (\u062f\u0631 \u0633\u0637\u062d \u0633\u0631\u0648\u06cc\u0633):<\/strong> \u0632\u06cc\u0631 \u0647\u0631 \u062f\u0648 \u0633\u0631\u0648\u06cc\u0633 db \u0648 wordpress\u060c \u0627\u06cc\u0646 \u06a9\u0644\u06cc\u062f \u0622\u0646\u200c\u0647\u0627 \u0631\u0627 \u0628\u0647 \u0634\u0628\u06a9\u0647 app_net \u0645\u0627 \u0645\u062a\u0635\u0644 \u0645\u06cc\u200c\u06a9\u0646\u062f.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">\u0627\u06af\u0631 \u0633\u0631\u0648\u06cc\u0633 \u0633\u0648\u0645\u06cc \u062f\u0627\u0634\u062a\u06cc\u062f (\u0645\u062b\u0644\u0627\u064b \u06cc\u06a9 \u0627\u0628\u0632\u0627\u0631 \u062a\u062d\u0644\u06cc\u0644) \u06a9\u0647 \u0622\u0646 \u0631\u0627 \u0628\u0647 app_net \u0645\u062a\u0635\u0644 \u0646\u0645\u06cc\u200c\u06a9\u0631\u062f\u06cc\u062f\u060c \u0622\u0646 \u0633\u0631\u0648\u06cc\u0633 \u06a9\u0627\u0645\u0644\u0627\u064b \u0627\u06cc\u0632\u0648\u0644\u0647 \u0628\u0648\u062f \u0648 \u0642\u0627\u062f\u0631 \u0628\u0647 \u0627\u0631\u062a\u0628\u0627\u0637 \u0628\u0627 \u06a9\u0627\u0646\u062a\u06cc\u0646\u0631\u0647\u0627\u06cc db \u06cc\u0627 wordpress \u0646\u0628\u0648\u062f.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u0628\u0631\u0627\u06cc \u06a9\u0644\u0627\u0633\u062a\u0631\u06cc\u0646\u06af \u0686\u0646\u062f\u0645\u06cc\u0632\u0628\u0627\u0646\u06cc \u0628\u0627 Docker Swarm\u060c \u062f\u0631\u0627\u06cc\u0648\u0631 \u0631\u0627 \u0627\u0632 bridge \u0628\u0647 overlay \u062a\u063a\u06cc\u06cc\u0631 \u0645\u06cc\u200c\u062f\u0647\u06cc\u062f. \u062f\u0631\u0627\u06cc\u0648\u0631 bridge \u0628\u0631\u0627\u06cc \u0627\u0631\u062a\u0628\u0627\u0637 \u0628\u06cc\u0646 \u06a9\u0627\u0646\u062a\u06cc\u0646\u0631\u0647\u0627 \u0631\u0648\u06cc \u06cc\u06a9 \u0645\u06cc\u0632\u0628\u0627\u0646 \u0648\u0627\u062d\u062f \u0627\u0633\u062a \u06a9\u0647 \u062d\u0627\u0644\u062a \u0627\u0633\u062a\u0627\u0646\u062f\u0627\u0631\u062f \u0628\u06cc\u0634\u062a\u0631 \u0645\u0648\u0627\u0631\u062f \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 Docker Compose \u0628\u0647 \u0634\u0645\u0627\u0631 \u0645\u06cc\u200c\u0631\u0648\u062f.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">\u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u0641\u0627\u06cc\u0644\u200c\u0647\u0627\u06cc \u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc \u0645\u0627\u0698\u0648\u0644\u0627\u0631<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">\u0628\u0627 \u0631\u0634\u062f \u0627\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646\u200c\u0647\u0627\u06cc \u0634\u0645\u0627\u060c \u0641\u0627\u06cc\u0644 docker-compose.yml \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u062f \u0628\u0632\u0631\u06af \u0648 \u062f\u0634\u0648\u0627\u0631 \u0628\u0631\u0627\u06cc \u0645\u062f\u06cc\u0631\u06cc\u062a \u0634\u0648\u062f. Docker Compose \u0627\u0632 \u062f\u0633\u062a\u0648\u0631 include \u067e\u0634\u062a\u06cc\u0628\u0627\u0646\u06cc \u0645\u06cc\u200c\u06a9\u0646\u062f \u06a9\u0647 \u0628\u0647 \u0634\u0645\u0627 \u0627\u062c\u0627\u0632\u0647 \u0645\u06cc\u200c\u062f\u0647\u062f \u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc \u062e\u0648\u062f \u0631\u0627 \u0628\u06cc\u0646 \u0686\u0646\u062f\u06cc\u0646 \u0641\u0627\u06cc\u0644 \u062a\u0642\u0633\u06cc\u0645 \u06a9\u0646\u06cc\u062f.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u062a\u0635\u0648\u0631 \u06a9\u0646\u06cc\u062f \u0645\u06cc\u200c\u062e\u0648\u0627\u0647\u06cc\u062f \u062a\u0639\u0631\u06cc\u0641\u200c\u0647\u0627\u06cc \u0648\u0631\u062f\u067e\u0631\u0633 \u0648 \u067e\u0627\u06cc\u06af\u0627\u0647 \u062f\u0627\u062f\u0647 \u062e\u0648\u062f \u0631\u0627 \u0627\u0632 \u0647\u0645 \u062c\u062f\u0627 \u06a9\u0646\u06cc\u062f \u0648 \u0634\u0627\u06cc\u062f \u0647\u0645 \u06cc\u06a9 docker-compose.override.yml \u0645\u0634\u062a\u0631\u06a9 \u0628\u0631\u0627\u06cc \u062a\u0646\u0638\u06cc\u0645\u0627\u062a \u0645\u062e\u0635\u0648\u0635 \u062a\u0648\u0633\u0639\u0647 \u062f\u0627\u0634\u062a\u0647 \u0628\u0627\u0634\u06cc\u062f (\u0645\u062b\u0644 \u0628\u0627\u06cc\u0646\u062f \u06a9\u0631\u062f\u0646 \u06cc\u06a9 \u067e\u0648\u0631\u062a \u0631\u0648\u06cc \u067e\u0627\u06cc\u06af\u0627\u0647 \u062f\u0627\u062f\u0647).<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u0633\u0627\u062e\u062a\u0627\u0631 \u062f\u0627\u06cc\u0631\u06a9\u062a\u0648\u0631\u06cc \u0634\u0645\u0627 \u0645\u0645\u06a9\u0646 \u0627\u0633\u062a \u0628\u0647 \u0627\u06cc\u0646 \u0634\u06a9\u0644 \u0628\u0627\u0634\u062f:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>compose-demo\/\n\u251c\u2500\u2500 docker-compose.yml\n\u251c\u2500\u2500 docker-compose.db.yml\n\u251c\u2500\u2500 docker-compose.web.yml<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\u0627\u06cc\u0646 \u0641\u0627\u06cc\u0644 \u0641\u0642\u0637 \u0633\u0631\u0648\u06cc\u0633 db \u0631\u0627 \u062a\u0639\u0631\u06cc\u0641 \u0645\u06cc\u200c\u06a9\u0646\u062f.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong><code>docker-compose.db.yml<\/code><\/strong><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>services:\n  db:\n    image: hub.cr.parmincloud.ir\/library\/mysql:8.0\n    container_name: mysql_db\n    volumes:\n      - db_data:\/var\/lib\/mysql\n    environment:\n      MYSQL_ROOT_PASSWORD: &lt;your_root_password_here&gt;\n      MYSQL_DATABASE: wordpress\n      MYSQL_USER: wordpress_user\n      MYSQL_PASSWORD: &lt;your_wordpress_password_here&gt;\n    restart: unless-stopped\n\nvolumes:\n  db_data:<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\u0627\u06cc\u0646 \u0641\u0627\u06cc\u0644 \u0641\u0642\u0637 \u0633\u0631\u0648\u06cc\u0633 wordpress \u0631\u0627 \u062a\u0639\u0631\u06cc\u0641 \u0645\u06cc\u200c\u06a9\u0646\u062f.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong><code>docker-compose.web.yml<\/code><\/strong><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>services:\n  wordpress:\n    image: hub.cr.parmincloud.ir\/library\/wordpress:latest\n    container_name: wordpress_app\n    ports:\n      - \"8001:80\"\n    environment:\n      WORDPRESS_DB_HOST: db:3306\n      WORDPRESS_DB_USER: wordpress_user\n      WORDPRESS_DB_PASSWORD: &lt;your_wordpress_password_here&gt;\n      WORDPRESS_DB_NAME: wordpress\n    volumes:\n      - .\/wp_content:\/var\/www\/html\/wp-content\n    depends_on:\n      - db\n    restart: unless-stopped<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\u062d\u0627\u0644\u0627 \u0641\u0627\u06cc\u0644 \u0627\u0635\u0644\u06cc docker-compose.yml \u0634\u0645\u0627 \u0628\u0633\u06cc\u0627\u0631 \u0633\u0627\u062f\u0647 \u0645\u06cc\u200c\u0634\u0648\u062f. \u0627\u06cc\u0646 \u0641\u0627\u06cc\u0644 \u0641\u0642\u0637 \u0627\u0632 include \u0628\u0631\u0627\u06cc \u0641\u0631\u0627\u062e\u0648\u0627\u0646\u06cc \u0641\u0627\u06cc\u0644\u200c\u0647\u0627\u06cc \u062f\u06cc\u06af\u0631 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u06cc\u200c\u06a9\u0646\u062f.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong><code>docker-compose.yml<\/code><\/strong><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>include:\n  - docker-compose.db.yml\n  - docker-compose.web.yml<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\u0648\u0642\u062a\u06cc docker compose up -d \u0631\u0627 \u0627\u062c\u0631\u0627 \u06a9\u0646\u06cc\u062f\u060c Compose \u0647\u0631 \u0633\u0647 \u0641\u0627\u06cc\u0644 \u0631\u0627 \u0645\u06cc\u200c\u062e\u0648\u0627\u0646\u062f\u060c \u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc\u200c\u0647\u0627 \u0631\u0627 \u0627\u062f\u063a\u0627\u0645 (Merge) \u06a9\u0631\u062f\u0647 \u0648 \u0633\u0631\u0648\u06cc\u0633\u200c\u0647\u0627\u06cc db \u0648 wordpress \u0631\u0627 \u062f\u0642\u06cc\u0642\u0627\u064b \u0645\u062b\u0644 \u0632\u0645\u0627\u0646\u06cc \u06a9\u0647 \u062f\u0631 \u06cc\u06a9 \u0641\u0627\u06cc\u0644 \u0648\u0627\u062d\u062f \u062a\u0639\u0631\u06cc\u0641 \u0634\u062f\u0647 \u0628\u0648\u062f\u0646\u062f\u060c \u0631\u0627\u0647\u200c\u0627\u0646\u062f\u0627\u0632\u06cc \u0645\u06cc\u200c\u06a9\u0646\u062f. \u0627\u06cc\u0646 \u0631\u0648\u06cc\u06a9\u0631\u062f\u060c \u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc \u0634\u0645\u0627 \u0631\u0627 \u0628\u0633\u06cc\u0627\u0631 \u0645\u0627\u0698\u0648\u0644\u0627\u0631\u062a\u0631 \u0648 \u0642\u0627\u0628\u0644\u200c\u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u062c\u062f\u062f \u0645\u06cc\u200c\u06a9\u0646\u062f.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>\u062a\u0648\u062c\u0647:<\/strong> \u062f\u0633\u062a\u0648\u0631 include: \u0628\u0647 Docker Compose \u0646\u0633\u062e\u0647 2.20 \u06cc\u0627 \u062c\u062f\u06cc\u062f\u062a\u0631 \u0646\u06cc\u0627\u0632 \u062f\u0627\u0631\u062f. \u0627\u06af\u0631 \u0633\u06cc\u0633\u062a\u0645 \u0634\u0645\u0627 \u0627\u0632 \u0646\u0633\u062e\u0647 \u0642\u062f\u06cc\u0645\u06cc\u200c\u062a\u0631\u06cc \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u06cc\u200c\u06a9\u0646\u062f\u060c \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u06cc\u062f \u0641\u0627\u06cc\u0644\u200c\u0647\u0627 \u0631\u0627 \u0628\u0627 \u062f\u0633\u062a\u0648\u0631 docker compose -f docker-compose.db.yml -f docker-compose.web.yml up \u062a\u0631\u06a9\u06cc\u0628 \u06a9\u0646\u06cc\u062f.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">\u0645\u0647\u0627\u062c\u0631\u062a \u0627\u0632 docker-compose (v1) \u0628\u0647 docker compose (v2)<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">\u062f\u0633\u062a\u0648\u0631 docker compose \u06a9\u0647 \u062f\u0631 \u0645\u0631\u062d\u0644\u0647 \u06f1 \u0646\u0635\u0628 \u06a9\u0631\u062f\u06cc\u062f\u060c \u00abCompose v2\u00bb \u0627\u0633\u062a\u061b \u06cc\u06a9 \u067e\u0644\u0627\u06af\u06cc\u0646 \u0645\u0628\u062a\u0646\u06cc \u0628\u0631 Go \u06a9\u0647 \u0645\u0633\u062a\u0642\u06cc\u0645\u0627\u064b \u062f\u0631 Docker CLI \u0627\u062f\u063a\u0627\u0645 \u0634\u062f\u0647 \u0627\u0633\u062a.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u0646\u0633\u062e\u0647 \u0627\u0635\u0644\u06cc \u06cc\u0639\u0646\u06cc \u00abCompose v1\u00bb\u060c \u06cc\u06a9 \u0627\u0628\u0632\u0627\u0631 \u0645\u062c\u0632\u0627\u06cc Python \u0628\u0648\u062f \u06a9\u0647 \u0628\u0627 docker-compose (\u0628\u0627 \u062e\u0637 \u062a\u06cc\u0631\u0647) \u0641\u0631\u0627\u062e\u0648\u0627\u0646\u06cc \u0645\u06cc\u200c\u0634\u062f. \u0627\u0632 \u062c\u0648\u0644\u0627\u06cc 2023\u060c Compose v1 \u062f\u06cc\u06af\u0631 \u067e\u0634\u062a\u06cc\u0628\u0627\u0646\u06cc \u0646\u0645\u06cc\u200c\u0634\u0648\u062f \u0648 \u0645\u0646\u0633\u0648\u062e \u0634\u062f\u0647 \u0627\u0633\u062a.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">\u062a\u063a\u06cc\u06cc\u0631\u0627\u062a \u06a9\u0644\u06cc\u062f\u06cc \u0648 \u0633\u0627\u0632\u06af\u0627\u0631\u06cc \u0628\u0647 \u0639\u0642\u0628<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>\u062f\u0633\u062a\u0648\u0631:<\/strong> \u0645\u0634\u062e\u0635\u200c\u062a\u0631\u06cc\u0646 \u062a\u063a\u06cc\u06cc\u0631\u060c \u062e\u0648\u062f \u062f\u0633\u062a\u0648\u0631 \u0627\u0633\u062a. \u062e\u0637 \u062a\u06cc\u0631\u0647 (docker-compose) \u062d\u0627\u0644\u0627 \u0628\u0647 \u06cc\u06a9 \u0641\u0627\u0635\u0644\u0647 (docker compose) \u062a\u0628\u062f\u06cc\u0644 \u0634\u062f\u0647 \u0627\u0633\u062a.<\/li>\n\n\n\n<li><strong>\u0646\u0635\u0628:<\/strong> v1 \u0628\u0627 pip \u0646\u0635\u0628 \u0645\u06cc\u200c\u0634\u062f. v2 \u0647\u0645\u0631\u0627\u0647 Docker Desktop \u0639\u0631\u0636\u0647 \u0645\u06cc\u200c\u0634\u0648\u062f \u06cc\u0627 \u0645\u062b\u0644 \u06a9\u0627\u0631\u06cc \u06a9\u0647 \u062f\u0631 \u0645\u0631\u062d\u0644\u0647 \u06f1 \u0627\u0646\u062c\u0627\u0645 \u062f\u0627\u062f\u06cc\u062f\u060c \u0628\u0647\u200c\u0639\u0646\u0648\u0627\u0646 \u067e\u0644\u0627\u06af\u06cc\u0646 CLI \u0646\u0635\u0628 \u0645\u06cc\u200c\u0634\u0648\u062f.<\/li>\n\n\n\n<li><strong>\u0641\u0627\u06cc\u0644\u200c\u0647\u0627\u06cc YAML:<\/strong> \u0641\u0627\u06cc\u0644\u200c\u0647\u0627\u06cc docker-compose.yml \u0634\u0645\u0627 \u062a\u0642\u0631\u06cc\u0628\u0627\u064b \u0628\u0647\u200c\u0637\u0648\u0631 \u06f1\u06f0\u06f0\u066a \u0628\u0627 \u0646\u0633\u062e\u0647 \u0642\u0628\u0644 \u0633\u0627\u0632\u06af\u0627\u0631\u0646\u062f. Compose v2 \u0628\u0647\u200c\u0637\u0648\u0631 \u06a9\u0627\u0645\u0644 \u0627\u0632 \u0646\u0633\u062e\u0647\u200c\u0647\u0627\u06cc \u0641\u0627\u06cc\u0644 3.x \u067e\u0634\u062a\u06cc\u0628\u0627\u0646\u06cc \u0645\u06cc\u200c\u06a9\u0646\u062f. \u0628\u0631\u0627\u06cc \u0645\u0647\u0627\u062c\u0631\u062a \u0646\u06cc\u0627\u0632\u06cc \u0628\u0647 \u062a\u063a\u06cc\u06cc\u0631 \u0641\u0627\u06cc\u0644\u200c\u0647\u0627\u06cc YAML \u062e\u0648\u062f \u0646\u062f\u0627\u0631\u06cc\u062f\u061b \u0641\u0642\u0637 \u062f\u0633\u062a\u0648\u0631\u0627\u062a \u0631\u0627 \u062a\u063a\u06cc\u06cc\u0631 \u062f\u0647\u06cc\u062f.<\/li>\n\n\n\n<li><strong>\u0641\u0644\u06af &#8211;project-name:<\/strong> \u0641\u0644\u06af -p \u0647\u0645\u0686\u0646\u0627\u0646 \u06a9\u0627\u0631 \u0645\u06cc\u200c\u06a9\u0646\u062f\u060c \u0627\u0645\u0627 \u0641\u0644\u06af \u06a9\u0627\u0645\u0644 \u0622\u0646 \u062d\u0627\u0644\u0627 &#8211;project-name \u0627\u0633\u062a\u060c \u0646\u0647 &#8211;project_name.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">\u0631\u0627\u0647\u0646\u0645\u0627\u06cc \u0645\u0647\u0627\u062c\u0631\u062a \u062f\u0633\u062a\u0648\u0631\u0627\u062a<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">\u0628\u06cc\u0634\u062a\u0631 \u062f\u0633\u062a\u0648\u0631\u0627\u062a \u06cc\u06a9\u0633\u0627\u0646\u200c\u0627\u0646\u062f\u061b \u0641\u0642\u0637 \u062e\u0637 \u062a\u06cc\u0631\u0647 \u062d\u0630\u0641 \u0634\u062f\u0647 \u0627\u0633\u062a. \u0627\u06cc\u0646 \u062c\u062f\u0648\u0644 \u062f\u0633\u062a\u0648\u0631\u0627\u062a \u0631\u0627\u06cc\u062c v1 \u0631\u0627 \u0628\u0627 \u0645\u0639\u0627\u062f\u0644\u200c\u0647\u0627\u06cc v2 \u0622\u0646\u200c\u0647\u0627 \u0645\u0642\u0627\u06cc\u0633\u0647 \u0645\u06cc\u200c\u06a9\u0646\u062f:<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>\u062f\u0633\u062a\u0648\u0631 docker-compose (v1)<\/th><th>\u062f\u0633\u062a\u0648\u0631 docker compose (v2)<\/th><th>\u0646\u06a9\u0627\u062a<\/th><\/tr><\/thead><tbody><tr><td>docker-compose up -d<\/td><td>docker compose up -d<\/td><td>\u0628\u062f\u0648\u0646 \u062a\u063a\u06cc\u06cc\u0631 \u062f\u0631 \u0633\u06cc\u0646\u062a\u06a9\u0633<\/td><\/tr><tr><td>docker-compose down<\/td><td>docker compose down<\/td><td>\u0628\u062f\u0648\u0646 \u062a\u063a\u06cc\u06cc\u0631 \u062f\u0631 \u0633\u06cc\u0646\u062a\u06a9\u0633<\/td><\/tr><tr><td>docker-compose ps<\/td><td>docker compose ps<\/td><td>\u0628\u062f\u0648\u0646 \u062a\u063a\u06cc\u06cc\u0631 \u062f\u0631 \u0633\u06cc\u0646\u062a\u06a9\u0633<\/td><\/tr><tr><td>docker-compose logs<\/td><td>docker compose logs<\/td><td>\u0628\u062f\u0648\u0646 \u062a\u063a\u06cc\u06cc\u0631 \u062f\u0631 \u0633\u06cc\u0646\u062a\u06a9\u0633<\/td><\/tr><tr><td>docker-compose stop<\/td><td>docker compose stop<\/td><td>\u0628\u062f\u0648\u0646 \u062a\u063a\u06cc\u06cc\u0631 \u062f\u0631 \u0633\u06cc\u0646\u062a\u06a9\u0633<\/td><\/tr><tr><td>docker-compose build<\/td><td>docker compose build<\/td><td>\u0628\u062f\u0648\u0646 \u062a\u063a\u06cc\u06cc\u0631 \u062f\u0631 \u0633\u06cc\u0646\u062a\u06a9\u0633<\/td><\/tr><tr><td>docker-compose exec web bash<\/td><td>docker compose exec web bash<\/td><td>\u0628\u062f\u0648\u0646 \u062a\u063a\u06cc\u06cc\u0631 \u062f\u0631 \u0633\u06cc\u0646\u062a\u06a9\u0633<\/td><\/tr><tr><td>docker-compose run web bash<\/td><td>docker compose run web bash<\/td><td>\u062f\u0633\u062a\u0648\u0631 run \u06cc\u06a9 \u06a9\u0627\u0646\u062a\u06cc\u0646\u0631 \u062c\u062f\u06cc\u062f \u0645\u06cc\u200c\u0633\u0627\u0632\u062f\u061b exec \u062f\u0627\u062e\u0644 \u06cc\u06a9 \u06a9\u0627\u0646\u062a\u06cc\u0646\u0631 \u0645\u0648\u062c\u0648\u062f \u0627\u062c\u0631\u0627 \u0645\u06cc\u200c\u0634\u0648\u062f<\/td><\/tr><tr><td>docker-compose up &#8211;scale web=3<\/td><td>docker compose up &#8211;scale web=3<\/td><td>\u0641\u0644\u06af &#8211;scale \u0647\u0645\u0686\u0646\u0627\u0646 \u062f\u0631 v2 \u067e\u0634\u062a\u06cc\u0628\u0627\u0646\u06cc \u0645\u06cc\u200c\u0634\u0648\u062f<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">\u0647\u0645\u0627\u0646\u200c\u0637\u0648\u0631 \u06a9\u0647 \u0645\u06cc\u200c\u0628\u06cc\u0646\u06cc\u062f\u060c \u0628\u0631\u0627\u06cc \u0628\u06cc\u0634\u062a\u0631 \u06a9\u0627\u0631\u0647\u0627\u06cc \u0631\u0648\u0632\u0645\u0631\u0647\u060c \u062a\u0646\u0647\u0627 \u062a\u063a\u06cc\u06cc\u0631 docker-compose \u2192 docker compose \u0627\u0633\u062a. \u0627\u06af\u0631 \u0627\u0632 \u0627\u0633\u06a9\u0631\u06cc\u067e\u062a \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u06cc\u200c\u06a9\u0646\u06cc\u062f\u060c \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u06cc\u062f \u0622\u0646\u200c\u0647\u0627 \u0631\u0627 \u0628\u0627 \u062d\u0630\u0641 \u0633\u0627\u062f\u0647 \u062e\u0637 \u062a\u06cc\u0631\u0647 \u0628\u0647\u200c\u0631\u0648\u0632\u0631\u0633\u0627\u0646\u06cc \u06a9\u0646\u06cc\u062f.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u0627\u06af\u0631 \u0647\u0646\u0648\u0632 docker-compose \u0642\u062f\u06cc\u0645\u06cc v1 \u0631\u0627 \u0646\u0635\u0628 \u062f\u0627\u0631\u06cc\u062f\u060c \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u06cc\u062f \u0628\u0631\u0627\u06cc \u062c\u0644\u0648\u06af\u06cc\u0631\u06cc \u0627\u0632 \u0633\u0631\u062f\u0631\u06af\u0645\u06cc \u0622\u0646 \u0631\u0627 \u062d\u0630\u0641 \u06a9\u0646\u06cc\u062f:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo pip3 uninstall docker-compose<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\u06cc\u0627 \u0627\u06af\u0631 \u0628\u0627 apt \u0646\u0635\u0628 \u0634\u062f\u0647 \u0628\u0648\u062f:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo apt remove docker-compose<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">\u0639\u06cc\u0628\u200c\u06cc\u0627\u0628\u06cc \u0645\u0634\u06a9\u0644\u0627\u062a \u0631\u0627\u06cc\u062c Docker Compose<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">\u0647\u0646\u06af\u0627\u0645 \u06a9\u0627\u0631 \u0628\u0627 Docker Compose \u0645\u0645\u06a9\u0646 \u0627\u0633\u062a \u0628\u0627 \u0645\u0634\u06a9\u0644\u0627\u062a\u06cc \u0645\u0631\u0628\u0648\u0637 \u0628\u0647 \u0633\u06cc\u0646\u062a\u06a9\u0633 \u0641\u0627\u06cc\u0644\u060c \u062f\u0633\u062a\u0631\u0633\u06cc\u200c\u0647\u0627 \u06cc\u0627 \u062a\u062f\u0627\u062e\u0644\u200c\u0647\u0627\u06cc \u0632\u0645\u0627\u0646 \u0627\u062c\u0631\u0627\u06cc \u06a9\u0627\u0646\u062a\u06cc\u0646\u0631 \u0631\u0648\u0628\u0631\u0648 \u0634\u0648\u06cc\u062f. \u0628\u06cc\u0634\u062a\u0631 \u0645\u0634\u06a9\u0644\u0627\u062a \u0631\u0627 \u0645\u06cc\u200c\u062a\u0648\u0627\u0646 \u0628\u0627 \u0628\u0631\u0631\u0633\u06cc \u0645\u062a\u062f\u0648\u0627\u0644\u0627\u0646\u0647 \u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc\u060c \u062f\u0633\u062a\u0631\u0633\u06cc\u200c\u0647\u0627 \u0648 \u0644\u0627\u06af\u200c\u0647\u0627\u06cc \u06a9\u0627\u0646\u062a\u06cc\u0646\u0631 \u062a\u0634\u062e\u06cc\u0635 \u0648 \u0631\u0641\u0639 \u06a9\u0631\u062f.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u0628\u06cc\u0627\u06cc\u06cc\u062f \u0628\u0647 \u0628\u0631\u062e\u06cc \u0627\u0632 \u0631\u0627\u06cc\u062c\u200c\u062a\u0631\u06cc\u0646 \u062e\u0637\u0627\u0647\u0627 \u0648 \u0631\u0627\u0647\u200c\u062d\u0644\u200c\u0647\u0627\u06cc \u0622\u0646\u200c\u0647\u0627 \u0646\u06af\u0627\u0647 \u06a9\u0646\u06cc\u0645.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Permission Denied (\u0633\u0648\u06a9\u062a Docker)<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">\u0627\u06cc\u0646 \u06cc\u06a9\u06cc \u0627\u0632 \u0631\u0627\u06cc\u062c\u200c\u062a\u0631\u06cc\u0646 \u062e\u0637\u0627\u0647\u0627 \u0628\u0631\u0627\u06cc \u06a9\u0627\u0631\u0628\u0631\u0627\u0646 \u062c\u062f\u06cc\u062f Docker \u0627\u0633\u062a. \u062f\u0633\u062a\u0648\u0631 docker compose up \u0631\u0627 \u0627\u062c\u0631\u0627 \u0645\u06cc\u200c\u06a9\u0646\u06cc\u062f \u0648 \u067e\u06cc\u0627\u0645 \u062e\u0637\u0627\u06cc\u06cc \u062f\u0631\u0628\u0627\u0631\u0647 \u0633\u0648\u06a9\u062a \u062f\u06cc\u0645\u0646 Docker \u0645\u06cc\u200c\u0628\u06cc\u0646\u06cc\u062f.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u062e\u0631\u0648\u062c\u06cc:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>permission denied while trying to connect to the Docker daemon socket at unix:\/\/\/var\/run\/docker.sock<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>\u0645\u0634\u06a9\u0644:<\/strong> \u06a9\u0627\u0631\u0628\u0631 \u063a\u06cc\u0631 root \u0634\u0645\u0627 \u062f\u0633\u062a\u0631\u0633\u06cc \u0644\u0627\u0632\u0645 \u0628\u0631\u0627\u06cc \u0627\u0631\u062a\u0628\u0627\u0637 \u0628\u0627 \u062f\u06cc\u0645\u0646 Docker (\u06a9\u0647 \u0628\u0627 \u062f\u0633\u062a\u0631\u0633\u06cc root \u0627\u062c\u0631\u0627 \u0645\u06cc\u200c\u0634\u0648\u062f) \u0631\u0627 \u0646\u062f\u0627\u0631\u062f.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>\u0631\u0627\u0647\u200c\u062d\u0644:<\/strong> \u0628\u0627\u06cc\u062f \u06a9\u0627\u0631\u0628\u0631 \u062e\u0648\u062f \u0631\u0627 \u0628\u0647 \u06af\u0631\u0648\u0647 docker \u0627\u0636\u0627\u0641\u0647 \u06a9\u0646\u06cc\u062f\u061b \u06af\u0631\u0648\u0647\u06cc \u06a9\u0647 \u0647\u0646\u06af\u0627\u0645 \u0646\u0635\u0628 Docker \u0627\u06cc\u062c\u0627\u062f \u0634\u062f\u0647 \u0627\u0633\u062a.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u06a9\u0627\u0631\u0628\u0631 \u062e\u0648\u062f \u0631\u0627 \u0628\u0647 \u06af\u0631\u0648\u0647 docker \u0627\u0636\u0627\u0641\u0647 \u06a9\u0646\u06cc\u062f:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo usermod -aG docker ${USER}<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\u0628\u0631\u0627\u06cc \u0627\u0639\u0645\u0627\u0644 \u0639\u0636\u0648\u06cc\u062a \u062c\u062f\u06cc\u062f \u062f\u0631 \u06af\u0631\u0648\u0647\u060c \u0628\u0627\u06cc\u062f \u0627\u0632 \u0633\u06cc\u0633\u062a\u0645 \u062e\u0627\u0631\u062c \u0634\u062f\u0647 \u0648 \u062f\u0648\u0628\u0627\u0631\u0647 \u0648\u0627\u0631\u062f \u0634\u0648\u06cc\u062f.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u0647\u0645\u0686\u0646\u06cc\u0646 \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u06cc\u062f \u062a\u063a\u06cc\u06cc\u0631\u0627\u062a \u06af\u0631\u0648\u0647 \u0631\u0627 \u0628\u0631\u0627\u06cc \u0646\u0634\u0633\u062a \u0641\u0639\u0644\u06cc \u062a\u0631\u0645\u06cc\u0646\u0627\u0644 \u0628\u0627 \u0627\u06cc\u0646 \u062f\u0633\u062a\u0648\u0631 \u0641\u0639\u0627\u0644 \u06a9\u0646\u06cc\u062f:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>newgrp docker<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\u0627\u06cc\u0646 \u06a9\u0627\u0631 \u0628\u0627\u06cc\u062f \u0647\u0631\u06af\u0648\u0646\u0647 \u062e\u0637\u0627\u06cc \u062f\u0633\u062a\u0631\u0633\u06cc \u0645\u0631\u0628\u0648\u0637 \u0628\u0647 \u0633\u0648\u06a9\u062a Docker \u0631\u0627 \u0631\u0641\u0639 \u06a9\u0646\u062f.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">\u062e\u0637\u0627\u0647\u0627\u06cc \u0633\u06cc\u0646\u062a\u06a9\u0633 YAML \u0648 \u062a\u0648\u0631\u0641\u062a\u06af\u06cc<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Docker Compose \u0627\u062c\u0631\u0627 \u0646\u0645\u06cc\u200c\u0634\u0648\u062f \u0648 \u06af\u0632\u0627\u0631\u0634 \u0645\u06cc\u200c\u062f\u0647\u062f \u06a9\u0647 \u0641\u0627\u06cc\u0644 docker-compose.yml \u0634\u0645\u0627 \u0646\u0627\u0645\u0639\u062a\u0628\u0631 \u0627\u0633\u062a.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u062e\u0631\u0648\u062c\u06cc:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>ERROR: The Compose file '.\/docker-compose.yml' is invalid because:\nservices.web.ports contains an invalid type, it should be a list<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\u06cc\u0627:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>mapping values are not allowed in this context at line 5<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>\u0645\u0634\u06a9\u0644:<\/strong> \u0641\u0627\u06cc\u0644 docker-compose.yml \u0628\u0647 \u0633\u06cc\u0646\u062a\u06a9\u0633 \u0633\u062e\u062a\u200c\u06af\u06cc\u0631\u0627\u0646\u0647 YAML \u0645\u062a\u06a9\u06cc \u0627\u0633\u062a. \u0631\u0627\u06cc\u062c\u200c\u062a\u0631\u06cc\u0646 \u0627\u0634\u062a\u0628\u0627\u0647\u060c \u062a\u0648\u0631\u0641\u062a\u06af\u06cc \u0646\u0627\u062f\u0631\u0633\u062a \u0627\u0633\u062a. YAML \u0628\u0631\u0627\u06cc \u062a\u0639\u0631\u06cc\u0641 \u0633\u0627\u062e\u062a\u0627\u0631 \u0627\u0632 \u0641\u0627\u0635\u0644\u0647 (Space) \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u06cc\u200c\u06a9\u0646\u062f\u060c \u0646\u0647 Tab.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>\u0631\u0627\u0647\u200c\u062d\u0644:<\/strong> \u062a\u0648\u0631\u0641\u062a\u06af\u06cc \u0641\u0627\u06cc\u0644 docker-compose.yml \u062e\u0648\u062f \u0631\u0627 \u0628\u0627 \u062f\u0642\u062a \u0628\u0631\u0631\u0633\u06cc \u06a9\u0646\u06cc\u062f.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u0627\u0633\u062a\u0627\u0646\u062f\u0627\u0631\u062f\u060c \u062f\u0648 \u0641\u0627\u0635\u0644\u0647 \u0628\u0631\u0627\u06cc \u0647\u0631 \u0633\u0637\u062d \u062a\u0648\u0631\u0641\u062a\u06af\u06cc \u0627\u0633\u062a.<\/li>\n\n\n\n<li>\u0645\u0637\u0645\u0626\u0646 \u0634\u0648\u06cc\u062f \u0647\u0645\u0647 \u06a9\u0644\u06cc\u062f\u0647\u0627\u06cc \u0647\u0645\u200c\u0633\u0637\u062d (\u0645\u062b\u0644 version\u060c services \u0648 volumes) \u062f\u0631 \u06cc\u06a9 \u0633\u062a\u0648\u0646 \u0634\u0631\u0648\u0639 \u0645\u06cc\u200c\u0634\u0648\u0646\u062f.<\/li>\n\n\n\n<li>\u0645\u0637\u0645\u0626\u0646 \u0634\u0648\u06cc\u062f \u0647\u0645\u0647 \u0632\u06cc\u0631\u06a9\u0644\u06cc\u062f\u0647\u0627 (\u0645\u062b\u0644 image\u060c ports \u0648 volumes \u0632\u06cc\u0631 \u06cc\u06a9 \u0633\u0631\u0648\u06cc\u0633) \u062f\u0648 \u0641\u0627\u0635\u0644\u0647 \u0628\u06cc\u0634\u062a\u0631 \u0627\u0632 \u0633\u0631\u0648\u06cc\u0633 \u0648\u0627\u0644\u062f \u062e\u0648\u062f (\u0645\u062b\u0644\u0627\u064b web) \u062a\u0648\u0631\u0641\u062a\u06af\u06cc \u062f\u0627\u0631\u0646\u062f.<\/li>\n\n\n\n<li>\u0627\u0632 \u06cc\u06a9 \u0648\u06cc\u0631\u0627\u06cc\u0634\u06af\u0631 \u06a9\u062f \u0628\u0627 YAML Linter \u0628\u0631\u0627\u06cc \u0647\u0627\u06cc\u0644\u0627\u06cc\u062a \u062e\u0648\u062f\u06a9\u0627\u0631 \u062e\u0637\u0627\u0647\u0627\u06cc \u0633\u06cc\u0646\u062a\u06a9\u0633 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u06cc\u062f.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">\u062a\u062f\u0627\u062e\u0644 \u067e\u0648\u0631\u062a\u200c\u0647\u0627<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">\u0633\u0639\u06cc \u0645\u06cc\u200c\u06a9\u0646\u06cc\u062f \u0645\u062d\u06cc\u0637 \u062e\u0648\u062f \u0631\u0627 \u0631\u0627\u0647\u200c\u0627\u0646\u062f\u0627\u0632\u06cc \u06a9\u0646\u06cc\u062f\u060c \u0627\u0645\u0627 \u062f\u0633\u062a\u0648\u0631 \u0628\u0627 \u067e\u06cc\u0627\u0645 \u062e\u0637\u0627\u06cc \u00ab\u0622\u062f\u0631\u0633 \u062f\u0631 \u062d\u0627\u0644 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0633\u062a\u00bb \u0634\u06a9\u0633\u062a \u0645\u06cc\u200c\u062e\u0648\u0631\u062f.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u062e\u0631\u0648\u062c\u06cc:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Error starting userland proxy: listen tcp 0.0.0.0:8000: bind: address already in use<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>\u0645\u0634\u06a9\u0644:<\/strong> \u06cc\u06a9 \u0641\u0631\u0627\u06cc\u0646\u062f \u062f\u06cc\u06af\u0631 \u0631\u0648\u06cc \u0645\u0627\u0634\u06cc\u0646 \u0645\u06cc\u0632\u0628\u0627\u0646 \u0634\u0645\u0627 \u0627\u0632 \u0642\u0628\u0644 \u0631\u0648\u06cc \u067e\u0648\u0631\u062a\u06cc \u06a9\u0647 \u0633\u0639\u06cc \u062f\u0627\u0631\u06cc\u062f \u0646\u06af\u0627\u0634\u062a \u06a9\u0646\u06cc\u062f (\u062f\u0631 \u0627\u06cc\u0646 \u0645\u0648\u0631\u062f \u067e\u0648\u0631\u062a 8000) \u062f\u0631 \u062d\u0627\u0644 \u06af\u0648\u0634 \u062f\u0627\u062f\u0646 \u0627\u0633\u062a. \u0627\u06cc\u0646 \u0641\u0631\u0627\u06cc\u0646\u062f \u0627\u063a\u0644\u0628 \u06cc\u06a9 \u06a9\u0627\u0646\u062a\u06cc\u0646\u0631 Docker \u062f\u06cc\u06af\u0631 \u06cc\u0627 \u06cc\u06a9 \u0633\u0631\u0648\u0631 \u062a\u0648\u0633\u0639\u0647 \u0645\u062d\u0644\u06cc \u0627\u0633\u062a.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>\u0631\u0627\u0647\u200c\u062d\u0644:<\/strong> \u062f\u0648 \u06af\u0632\u06cc\u0646\u0647 \u062f\u0627\u0631\u06cc\u062f:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u0641\u0631\u0627\u06cc\u0646\u062f \u062f\u06cc\u06af\u0631 \u0631\u0627 \u0645\u062a\u0648\u0642\u0641 \u06a9\u0646\u06cc\u062f. \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u06cc\u062f \u0641\u0631\u0627\u06cc\u0646\u062f\u0650 \u062f\u0631 \u062d\u0627\u0644 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u067e\u0648\u0631\u062a \u0631\u0627 \u0628\u0627 \u0627\u06cc\u0646 \u062f\u0633\u062a\u0648\u0631 \u067e\u06cc\u062f\u0627 \u06a9\u0646\u06cc\u062f:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo lsof -i :8000<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\u0627\u06af\u0631 \u06cc\u06a9 \u06a9\u0627\u0646\u062a\u06cc\u0646\u0631 Docker \u062f\u06cc\u06af\u0631 \u0627\u0633\u062a\u060c \u0622\u0646 \u0631\u0627 \u0628\u0627 docker stop \u0645\u062a\u0648\u0642\u0641 \u06a9\u0646\u06cc\u062f.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u067e\u0648\u0631\u062a \u0645\u06cc\u0632\u0628\u0627\u0646 \u0631\u0627 \u062f\u0631 \u0641\u0627\u06cc\u0644 docker-compose.yml \u062e\u0648\u062f \u062a\u063a\u06cc\u06cc\u0631 \u062f\u0647\u06cc\u062f. \u0627\u06cc\u0646 \u0627\u063a\u0644\u0628 \u0633\u0627\u062f\u0647\u200c\u062a\u0631\u06cc\u0646 \u0631\u0627\u0647\u200c\u062d\u0644 \u0627\u0633\u062a. \u0646\u06af\u0627\u0634\u062a ports \u0631\u0627 \u0627\u0632 &#8220;8000:80&#8221; \u0628\u0647 \u06cc\u06a9 \u067e\u0648\u0631\u062a \u0645\u062a\u0641\u0627\u0648\u062a\u060c \u0645\u062b\u0644\u0627\u064b &#8220;8001:80&#8221; \u062a\u063a\u06cc\u06cc\u0631 \u062f\u0647\u06cc\u062f.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong><code>docker-compose.yml<\/code><\/strong><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>...\nports:\n  - \"8001:80\" # \u062a\u063a\u06cc\u06cc\u0631 \u0627\u0632 8000\n...<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">\u0634\u06a9\u0633\u062a \u0633\u0631\u0648\u06cc\u0633 \u0628\u0627 \u062e\u0637\u0627\u06cc Connection Refused (depends_on)<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">\u062f\u0631 \u06cc\u06a9 \u0627\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646 \u0686\u0646\u062f\u0633\u0631\u0648\u06cc\u0633\u06cc (\u0645\u062b\u0644 \u0645\u062b\u0627\u0644 \u0648\u0631\u062f\u067e\u0631\u0633 \u0648 MySQL)\u060c \u06a9\u0627\u0646\u062a\u06cc\u0646\u0631 wordpress \u0631\u0627\u0647\u200c\u0627\u0646\u062f\u0627\u0632\u06cc \u0645\u06cc\u200c\u0634\u0648\u062f\u060c \u0627\u0645\u0627 \u0644\u0627\u06af\u200c\u0647\u0627\u06cc \u0622\u0646 \u0647\u0646\u06af\u0627\u0645 \u062a\u0644\u0627\u0634 \u0628\u0631\u0627\u06cc \u0627\u062a\u0635\u0627\u0644 \u0628\u0647 \u0633\u0631\u0648\u06cc\u0633 db \u062e\u0637\u0627\u06cc Connection refused \u06cc\u0627 MySQL server has gone away \u0646\u0634\u0627\u0646 \u0645\u06cc\u200c\u062f\u0647\u0646\u062f.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>\u0645\u0634\u06a9\u0644:<\/strong> \u0634\u0645\u0627 \u0627\u0632 depends_on \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0631\u062f\u0647\u200c\u0627\u06cc\u062f\u060c \u0627\u0645\u0627 \u0627\u06cc\u0646 \u062f\u0633\u062a\u0648\u0631 \u0641\u0642\u0637 \u0628\u0631\u0627\u06cc \u0631\u0627\u0647\u200c\u0627\u0646\u062f\u0627\u0632\u06cc \u06a9\u0627\u0646\u062a\u06cc\u0646\u0631 db \u0635\u0628\u0631 \u0645\u06cc\u200c\u06a9\u0646\u062f\u061b \u0646\u0647 \u0628\u0631\u0627\u06cc \u0645\u0642\u062f\u0627\u0631\u062f\u0647\u06cc \u0627\u0648\u0644\u06cc\u0647 \u06a9\u0627\u0645\u0644 \u0627\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646 MySQL \u062f\u0627\u062e\u0644 \u06a9\u0627\u0646\u062a\u06cc\u0646\u0631 \u0648 \u0622\u0645\u0627\u062f\u0647 \u0634\u062f\u0646 \u0622\u0646 \u0628\u0631\u0627\u06cc \u067e\u0630\u06cc\u0631\u0634 \u0627\u062a\u0635\u0627\u0644\u200c\u0647\u0627.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>\u0631\u0627\u0647\u200c\u062d\u0644:<\/strong> \u0627\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646 (\u062f\u0631 \u0627\u06cc\u0646 \u0645\u0648\u0631\u062f \u0648\u0631\u062f\u067e\u0631\u0633) \u0628\u0627\u06cc\u062f \u0628\u0631\u0627\u06cc \u062a\u0644\u0627\u0634 \u0645\u062c\u062f\u062f \u0627\u062a\u0635\u0627\u0644 \u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc \u0634\u0648\u062f. \u0628\u06cc\u0634\u062a\u0631 \u0627\u06cc\u0645\u06cc\u062c\u200c\u0647\u0627\u06cc \u0645\u062f\u0631\u0646 \u0627\u06cc\u0646 \u0645\u0646\u0637\u0642 \u062a\u0644\u0627\u0634 \u0645\u062c\u062f\u062f \u0631\u0627 \u0628\u0647\u200c\u0635\u0648\u0631\u062a \u062f\u0627\u062e\u0644\u06cc \u062f\u0627\u0631\u0646\u062f. \u0628\u0631\u0627\u06cc \u0627\u06cc\u0645\u06cc\u062c\u200c\u0647\u0627\u06cc\u06cc \u06a9\u0647 \u0646\u062f\u0627\u0631\u0646\u062f\u060c \u0628\u0627\u06cc\u062f \u06cc\u06a9 healthcheck \u067e\u06cc\u0627\u062f\u0647\u200c\u0633\u0627\u0632\u06cc \u06a9\u0646\u06cc\u062f.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u06cc\u062f \u0628\u0647 \u0633\u0631\u0648\u06cc\u0633 db \u062e\u0648\u062f \u06cc\u06a9 healthcheck \u0627\u0636\u0627\u0641\u0647 \u06a9\u0646\u06cc\u062f. \u0633\u067e\u0633 depends_on \u0633\u0631\u0648\u06cc\u0633 wordpress \u0631\u0627 \u0645\u06cc\u200c\u062a\u0648\u0627\u0646 \u0637\u0648\u0631\u06cc \u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc \u06a9\u0631\u062f \u06a9\u0647 \u0628\u0631\u0627\u06cc \u00ab\u0633\u0627\u0644\u0645 \u0628\u0648\u062f\u0646\u00bb (Healthy) \u067e\u0627\u06cc\u06af\u0627\u0647 \u062f\u0627\u062f\u0647 \u0635\u0628\u0631 \u06a9\u0646\u062f\u060c \u0646\u0647 \u0641\u0642\u0637 \u00ab\u0631\u0627\u0647\u200c\u0627\u0646\u062f\u0627\u0632\u06cc \u0634\u062f\u0647 \u0628\u0648\u062f\u0646\u00bb \u0622\u0646.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u0646\u0645\u0648\u0646\u0647 healthcheck \u0628\u0631\u0627\u06cc MySQL:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong><code>docker-compose.yml<\/code><\/strong><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>services:\n  db:\n    image: hub.cr.parmincloud.ir\/library\/mysql:8.0\n    ...\n    healthcheck:\n      test: &#91;\"CMD\", \"mysqladmin\", \"ping\", \"-h\", \"localhost\", \"-u\", \"root\", \"-p&lt;your_root_password_here&gt;\"]\n      interval: 10s\n      timeout: 5s\n      retries: 5\n\n  wordpress:\n    image: hub.cr.parmincloud.ir\/library\/wordpress:latest\n    ...\n    depends_on:\n      db:\n        condition: service_healthy # \u062d\u0627\u0644\u0627 \u0628\u0631\u0627\u06cc \u0645\u0648\u0641\u0642\u06cc\u062a healthcheck \u0635\u0628\u0631 \u0645\u06cc\u200c\u06a9\u0646\u062f\n    ...<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">\u062e\u0637\u0627\u0647\u0627\u06cc \u0648\u0627\u0644\u06cc\u0648\u0645\u200c\u0647\u0627 \u0648 \u0628\u0627\u06cc\u0646\u062f \u0645\u0627\u0648\u0646\u062a\u200c\u0647\u0627<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">\u0645\u0645\u06a9\u0646 \u0627\u0633\u062a \u062f\u0631 \u0644\u0627\u06af\u200c\u0647\u0627\u06cc \u06a9\u0627\u0646\u062a\u06cc\u0646\u0631 \u062e\u0648\u062f \u0628\u0627 \u062e\u0637\u0627\u0647\u0627\u06cc \u062f\u0633\u062a\u0631\u0633\u06cc \u0631\u0648\u0628\u0631\u0648 \u0634\u0648\u06cc\u062f \u06cc\u0627 \u0645\u062a\u0648\u062c\u0647 \u0634\u0648\u06cc\u062f \u062f\u0627\u06cc\u0631\u06a9\u062a\u0648\u0631\u06cc \u062f\u0627\u062f\u0647 \u06a9\u0627\u0646\u062a\u06cc\u0646\u0631 \u062e\u0627\u0644\u06cc \u0627\u0633\u062a.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">\u062f\u0633\u062a\u0631\u0633\u06cc \u0641\u0627\u06cc\u0644\/\u062f\u0627\u06cc\u0631\u06a9\u062a\u0648\u0631\u06cc<\/h4>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>\u0645\u0634\u06a9\u0644:<\/strong> \u06a9\u0627\u0646\u062a\u06cc\u0646\u0631 \u0628\u0627 \u06cc\u06a9 \u06a9\u0627\u0631\u0628\u0631 \u0645\u0634\u062e\u0635 \u0627\u062c\u0631\u0627 \u0645\u06cc\u200c\u0634\u0648\u062f (\u0645\u062b\u0644\u0627\u064b www-data \u0628\u0627 \u0634\u0646\u0627\u0633\u0647 \u06a9\u0627\u0631\u0628\u0631\u06cc 33)\u060c \u0627\u0645\u0627 \u062f\u0627\u06cc\u0631\u06a9\u062a\u0648\u0631\u06cc \u0645\u06cc\u0632\u0628\u0627\u0646\u06cc \u06a9\u0647 \u0645\u0627\u0648\u0646\u062a \u06a9\u0631\u062f\u0647\u200c\u0627\u06cc\u062f \u0645\u062a\u0639\u0644\u0642 \u0628\u0647 \u06a9\u0627\u0631\u0628\u0631 \u0634\u0645\u0627\u0633\u062a (\u0645\u062b\u0644\u0627\u064b ubuntu \u0628\u0627 \u0634\u0646\u0627\u0633\u0647 1000). \u06a9\u0627\u0631\u0628\u0631 \u06a9\u0627\u0646\u062a\u06cc\u0646\u0631 \u062f\u0633\u062a\u0631\u0633\u06cc \u0646\u0648\u0634\u062a\u0646 \u062f\u0631 \u062f\u0627\u06cc\u0631\u06a9\u062a\u0648\u0631\u06cc \u0645\u06cc\u0632\u0628\u0627\u0646 \u0631\u0627 \u0646\u062f\u0627\u0631\u062f.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>\u0631\u0627\u0647\u200c\u062d\u0644:<\/strong> \u0645\u0627\u0644\u06a9\u06cc\u062a \u062f\u0627\u06cc\u0631\u06a9\u062a\u0648\u0631\u06cc \u0645\u06cc\u0632\u0628\u0627\u0646 \u0631\u0627 \u0637\u0648\u0631\u06cc \u062a\u063a\u06cc\u06cc\u0631 \u062f\u0647\u06cc\u062f \u06a9\u0647 \u0628\u0627 \u0634\u0646\u0627\u0633\u0647 \u06a9\u0627\u0631\u0628\u0631\u06cc \u062f\u0627\u062e\u0644 \u06a9\u0627\u0646\u062a\u06cc\u0646\u0631 \u0645\u0637\u0627\u0628\u0642\u062a \u062f\u0627\u0634\u062a\u0647 \u0628\u0627\u0634\u062f. \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u06cc\u062f \u0634\u0646\u0627\u0633\u0647 \u06a9\u0627\u0631\u0628\u0631 \u06a9\u0627\u0646\u062a\u06cc\u0646\u0631 \u0631\u0627 \u0628\u0627 \u0627\u062c\u0631\u0627\u06cc docker compose exec id \u067e\u06cc\u062f\u0627 \u06a9\u0646\u06cc\u062f. \u0645\u062b\u0644\u0627\u064b \u0627\u06af\u0631 \u0634\u0646\u0627\u0633\u0647 33 \u0628\u0627\u0634\u062f (\u0631\u0627\u06cc\u062c \u0628\u0631\u0627\u06cc www-data):<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo chown -R 33:33 .\/wp_content<\/code><\/pre>\n\n\n\n<h4 class=\"wp-block-heading\">\u0645\u0634\u06a9\u0644\u0627\u062a \u0645\u0633\u06cc\u0631 \u0646\u0633\u0628\u06cc<\/h4>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>\u0645\u0634\u06a9\u0644:<\/strong> \u0641\u0627\u06cc\u0644 docker-compose.yml \u0634\u0645\u0627 \u0627\u0632 \u06cc\u06a9 \u0645\u0633\u06cc\u0631 \u0646\u0633\u0628\u06cc \u0645\u062b\u0644 .\/app \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u06cc\u200c\u06a9\u0646\u062f\u060c \u0627\u0645\u0627 \u0641\u0627\u06cc\u0644 index.html \u0634\u0645\u0627 \u0633\u0631\u0648 \u0646\u0645\u06cc\u200c\u0634\u0648\u062f.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>\u0631\u0627\u0647\u200c\u062d\u0644:<\/strong> Docker Compose \u0645\u0633\u06cc\u0631\u0647\u0627\u06cc \u0646\u0633\u0628\u06cc \u0631\u0627 \u0646\u0633\u0628\u062a \u0628\u0647 \u062f\u0627\u06cc\u0631\u06a9\u062a\u0648\u0631\u06cc\u200c\u0627\u06cc \u06a9\u0647 \u062f\u0633\u062a\u0648\u0631 docker compose up \u0631\u0627 \u062f\u0631 \u0622\u0646 \u0627\u062c\u0631\u0627 \u0645\u06cc\u200c\u06a9\u0646\u06cc\u062f\u060c \u062a\u0641\u0633\u06cc\u0631 \u0645\u06cc\u200c\u06a9\u0646\u062f. \u0647\u0645\u06cc\u0634\u0647 \u062f\u0633\u062a\u0648\u0631\u0627\u062a Compose \u0631\u0627 \u0627\u0632 \u0647\u0645\u0627\u0646 \u062f\u0627\u06cc\u0631\u06a9\u062a\u0648\u0631\u06cc\u200c\u0627\u06cc \u0627\u062c\u0631\u0627 \u06a9\u0646\u06cc\u062f \u06a9\u0647 \u062d\u0627\u0648\u06cc \u0641\u0627\u06cc\u0644 docker-compose.yml \u0627\u0633\u062a.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">\u0634\u0628\u06a9\u0647 \u0648 \u06a9\u0634\u0641 \u0633\u0631\u0648\u06cc\u0633<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">\u0644\u0627\u06af\u200c\u0647\u0627\u06cc \u06a9\u0627\u0646\u062a\u06cc\u0646\u0646 \u0627\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646 \u0634\u0645\u0627 \u062e\u0637\u0627\u06cc Host not found \u06cc\u0627 Could not resolve host: db \u0631\u0627 \u0646\u0634\u0627\u0646 \u0645\u06cc\u200c\u062f\u0647\u0646\u062f.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>\u0645\u0634\u06a9\u0644:<\/strong> \u06a9\u0627\u0646\u062a\u06cc\u0646\u0631 wordpress \u0634\u0645\u0627 \u0646\u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u062f \u06a9\u0627\u0646\u062a\u06cc\u0646\u0631 db \u0631\u0627 \u0631\u0648\u06cc \u0634\u0628\u06a9\u0647 \u067e\u06cc\u062f\u0627 \u06a9\u0646\u062f.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>\u0631\u0627\u0647\u200c\u062d\u0644:<\/strong> \u0628\u0647\u200c\u0635\u0648\u0631\u062a \u067e\u06cc\u0634\u200c\u0641\u0631\u0636\u060c Docker Compose \u06cc\u06a9 \u0634\u0628\u06a9\u0647 \u0645\u06cc\u200c\u0633\u0627\u0632\u062f \u0648 \u0647\u0645\u0647 \u0633\u0631\u0648\u06cc\u0633\u200c\u0647\u0627 \u0631\u0627 \u0628\u0647 \u0622\u0646 \u0645\u062a\u0635\u0644 \u0645\u06cc\u200c\u06a9\u0646\u062f. \u0633\u0631\u0648\u06cc\u0633\u200c\u0647\u0627 \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u0646\u062f \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u0646\u0627\u0645 \u0633\u0631\u0648\u06cc\u0633 \u062e\u0648\u062f\u060c \u06cc\u06a9\u062f\u06cc\u06af\u0631 \u0631\u0627 \u067e\u06cc\u062f\u0627 \u06a9\u0646\u0646\u062f.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>\u0628\u0631\u0631\u0633\u06cc \u0646\u0627\u0645 \u0633\u0631\u0648\u06cc\u0633\u200c\u0647\u0627:<\/strong> \u0645\u0637\u0645\u0626\u0646 \u0634\u0648\u06cc\u062f \u0646\u0627\u0645 \u0647\u0627\u0633\u062a \u062f\u0631 \u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc \u0627\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646 \u0634\u0645\u0627 (\u0645\u062b\u0644\u0627\u064b \u0645\u062a\u063a\u06cc\u0631 \u0645\u062d\u06cc\u0637\u06cc WORDPRESS_DB_HOST) \u062f\u0642\u06cc\u0642\u0627\u064b \u0647\u0645\u0627\u0646 \u0646\u0627\u0645 \u0633\u0631\u0648\u06cc\u0633 \u062f\u0631 \u0641\u0627\u06cc\u0644 docker-compose.yml \u0634\u0645\u0627\u0633\u062a (\u0645\u062b\u0644\u0627\u064b db).<\/li>\n\n\n\n<li><strong>\u0628\u0631\u0631\u0633\u06cc \u0634\u0628\u06a9\u0647:<\/strong> \u0628\u0627 docker compose ps \u0646\u0627\u0645 \u067e\u0631\u0648\u0698\u0647 \u062e\u0648\u062f \u0631\u0627 \u067e\u06cc\u062f\u0627 \u06a9\u0646\u06cc\u062f (\u0645\u062b\u0644\u0627\u064b compose-demo). \u0633\u067e\u0633 \u0634\u0628\u06a9\u0647 \u067e\u06cc\u0634\u200c\u0641\u0631\u0636 \u0631\u0627 \u0628\u0631\u0631\u0633\u06cc \u06a9\u0646\u06cc\u062f:<\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>docker network inspect compose-demo_default<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\u062e\u0631\u0648\u062c\u06cc JSON \u0647\u0645\u0647 \u06a9\u0627\u0646\u062a\u06cc\u0646\u0631\u0647\u0627\u06cc \u0645\u062a\u0635\u0644 \u0628\u0647 \u0627\u06cc\u0646 \u0634\u0628\u06a9\u0647 \u0631\u0627 \u0641\u0647\u0631\u0633\u062a \u0645\u06cc\u200c\u06a9\u0646\u062f. \u0627\u06af\u0631 \u06cc\u06a9\u06cc \u0627\u0632 \u0633\u0631\u0648\u06cc\u0633\u200c\u0647\u0627\u06cc \u0634\u0645\u0627 \u062f\u0631 \u0622\u0646 \u063a\u0627\u06cc\u0628 \u0627\u0633\u062a\u060c \u0641\u0627\u06cc\u0644 docker-compose.yml \u0631\u0627 \u0627\u0632 \u0646\u0638\u0631 \u0647\u0631\u06af\u0648\u0646\u0647 \u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc \u0634\u0628\u06a9\u0647 \u0633\u0641\u0627\u0631\u0634\u06cc \u06a9\u0647 \u0645\u0645\u06a9\u0646 \u0627\u0633\u062a \u0622\u0646 \u0631\u0627 \u0627\u06cc\u0632\u0648\u0644\u0647 \u06a9\u0631\u062f\u0647 \u0628\u0627\u0634\u062f\u060c \u0628\u0631\u0631\u0633\u06cc \u06a9\u0646\u06cc\u062f.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">\u0639\u062f\u0645 \u062a\u0637\u0627\u0628\u0642 \u062f\u0633\u062a\u0648\u0631 (v1 \u062f\u0631 \u0628\u0631\u0627\u0628\u0631 v2)<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">docker-compose up (\u0628\u0627 \u062e\u0637 \u062a\u06cc\u0631\u0647) \u0631\u0627 \u062a\u0627\u06cc\u067e \u0645\u06cc\u200c\u06a9\u0646\u06cc\u062f \u0648 \u062e\u0637\u0627\u06cc \u00abcommand not found\u00bb \u0645\u06cc\u200c\u0628\u06cc\u0646\u06cc\u062f.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u062e\u0631\u0648\u062c\u06cc:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>docker-compose: command not found<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>\u0645\u0634\u06a9\u0644:<\/strong> \u062f\u0631 \u062d\u0627\u0644 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u062f\u0633\u062a\u0648\u0631 \u0645\u0631\u0628\u0648\u0637 \u0628\u0647 Compose v1 \u0647\u0633\u062a\u06cc\u062f\u061b \u0627\u0628\u0632\u0627\u0631 Python \u0645\u0646\u0633\u0648\u062e\u200c\u0634\u062f\u0647. \u0627\u06cc\u0646 \u0631\u0627\u0647\u0646\u0645\u0627 Compose v2 \u0631\u0627 \u0646\u0635\u0628 \u0645\u06cc\u200c\u06a9\u0646\u062f \u06a9\u0647 \u067e\u0644\u0627\u06af\u06cc\u0646\u06cc \u0627\u0633\u062a \u0645\u0633\u062a\u0642\u06cc\u0645\u0627\u064b \u062f\u0631 Docker CLI \u0627\u062f\u063a\u0627\u0645 \u0634\u062f\u0647 \u0627\u0633\u062a.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>\u0631\u0627\u0647\u200c\u062d\u0644:<\/strong> \u0627\u0632 \u062f\u0633\u062a\u0648\u0631 \u062f\u0631\u0633\u062a \u0628\u0627 \u062c\u0627\u06cc\u06af\u0632\u06cc\u0646\u06cc \u062e\u0637 \u062a\u06cc\u0631\u0647 (-) \u0628\u0627 \u0641\u0627\u0635\u0644\u0647 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u06cc\u062f.<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>docker-compose (v1)<\/th><th>docker compose (v2)<\/th><\/tr><\/thead><tbody><tr><td>docker-compose up<\/td><td>docker compose up<\/td><\/tr><tr><td>docker-compose down<\/td><td>docker compose down<\/td><\/tr><tr><td>docker-compose ps<\/td><td>docker compose ps<\/td><\/tr><tr><td>docker-compose logs<\/td><td>docker compose logs<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">\u0647\u0646\u06af\u0627\u0645 \u062f\u0646\u0628\u0627\u0644 \u06a9\u0631\u062f\u0646 \u0627\u06cc\u0646 \u0631\u0627\u0647\u0646\u0645\u0627\u060c \u0647\u0645\u06cc\u0634\u0647 \u0627\u0632 docker compose (\u0628\u0627 \u0641\u0627\u0635\u0644\u0647) \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u06cc\u062f.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">\u0633\u0648\u0627\u0644\u0627\u062a \u0645\u062a\u062f\u0627\u0648\u0644<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">\u06f1. Docker Compose \u0628\u0631\u0627\u06cc \u0686\u0647 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u06cc\u200c\u0634\u0648\u062f\u061f<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Docker Compose \u0627\u0628\u0632\u0627\u0631\u06cc \u0628\u0631\u0627\u06cc \u062a\u0639\u0631\u06cc\u0641 \u0648 \u0627\u062c\u0631\u0627\u06cc \u0627\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646\u200c\u0647\u0627\u06cc \u0686\u0646\u062f\u06a9\u0627\u0646\u062a\u06cc\u0646\u0631\u06cc Docker \u0627\u0633\u062a.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u0627\u06cc\u0646 \u0627\u0628\u0632\u0627\u0631 \u0627\u0632 \u06cc\u06a9 \u0641\u0627\u06cc\u0644 YAML \u0648\u0627\u062d\u062f (\u0628\u0647\u200c\u0635\u0648\u0631\u062a \u067e\u06cc\u0634\u200c\u0641\u0631\u0636 docker-compose.yml) \u0628\u0631\u0627\u06cc \u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc \u0647\u0645\u0647 \u0627\u062c\u0632\u0627\u06cc \u0627\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646 \u0634\u0645\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u06cc\u200c\u06a9\u0646\u062f \u06a9\u0647 \u0628\u0647 \u0622\u0646\u200c\u0647\u0627 \u0633\u0631\u0648\u06cc\u0633 \u06af\u0641\u062a\u0647 \u0645\u06cc\u200c\u0634\u0648\u062f. \u0627\u06cc\u0646 \u0641\u0627\u06cc\u0644 \u0647\u0645\u0686\u0646\u06cc\u0646 \u0634\u0628\u06a9\u0647\u200c\u0647\u0627\u06cc\u06cc \u0631\u0627 \u06a9\u0647 \u0628\u0647 \u0633\u0631\u0648\u06cc\u0633\u200c\u0647\u0627 \u0627\u062c\u0627\u0632\u0647 \u0627\u0631\u062a\u0628\u0627\u0637 \u0628\u0627 \u06cc\u06a9\u062f\u06cc\u06af\u0631 \u0645\u06cc\u200c\u062f\u0647\u0646\u062f \u0648 \u0648\u0627\u0644\u06cc\u0648\u0645\u200c\u0647\u0627\u06cc \u0645\u0648\u0631\u062f \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0628\u0631\u0627\u06cc \u062f\u0627\u062f\u0647\u200c\u0647\u0627\u06cc \u0645\u0627\u0646\u062f\u06af\u0627\u0631 \u0631\u0627 \u062a\u0639\u0631\u06cc\u0641 \u0645\u06cc\u200c\u06a9\u0646\u062f.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u0628\u0627 \u0627\u06cc\u0646 \u0641\u0627\u06cc\u0644 \u0648\u0627\u062d\u062f\u060c \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u06cc\u062f \u06a9\u0644 \u0627\u0633\u062a\u06a9 \u0627\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646 \u062e\u0648\u062f \u0631\u0627 \u0628\u0627 \u062f\u0633\u062a\u0648\u0631\u0627\u062a \u0633\u0627\u062f\u0647 \u0645\u062f\u06cc\u0631\u06cc\u062a \u06a9\u0646\u06cc\u062f:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>docker compose up \u06a9\u0644 \u0627\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646 \u0634\u0645\u0627 \u0631\u0627 \u0631\u0627\u0647\u200c\u0627\u0646\u062f\u0627\u0632\u06cc \u0648 \u0627\u062c\u0631\u0627 \u0645\u06cc\u200c\u06a9\u0646\u062f\u061b \u0634\u0627\u0645\u0644 \u0647\u0645\u0647 \u06a9\u0627\u0646\u062a\u06cc\u0646\u0631\u0647\u0627\u060c \u0634\u0628\u06a9\u0647\u200c\u0647\u0627 \u0648 \u0648\u0627\u0644\u06cc\u0648\u0645\u200c\u0647\u0627\u06cc \u0645\u0634\u062e\u0635\u200c\u0634\u062f\u0647.<\/li>\n\n\n\n<li>docker compose down \u0647\u0645\u0647 \u06a9\u0627\u0646\u062a\u06cc\u0646\u0631\u0647\u0627\u060c \u0634\u0628\u06a9\u0647\u200c\u0647\u0627 \u0648 \u0648\u0627\u0644\u06cc\u0648\u0645\u200c\u0647\u0627\u06cc\u06cc \u0631\u0627 \u06a9\u0647 \u0627\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646 \u0634\u0645\u0627 \u0627\u06cc\u062c\u0627\u062f \u06a9\u0631\u062f\u0647 \u0627\u0633\u062a\u060c \u0645\u062a\u0648\u0642\u0641 \u0648 \u062d\u0630\u0641 \u0645\u06cc\u200c\u06a9\u0646\u062f.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">\u0627\u06cc\u0646 \u0627\u0628\u0632\u0627\u0631 \u0628\u06cc\u0634\u062a\u0631\u06cc\u0646 \u06a9\u0627\u0631\u0628\u0631\u062f \u0631\u0627 \u0628\u0631\u0627\u06cc \u0645\u062f\u06cc\u0631\u06cc\u062a \u0627\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646\u200c\u0647\u0627\u06cc\u06cc \u062f\u0627\u0631\u062f \u06a9\u0647 \u0628\u0647 \u0686\u0646\u062f \u062c\u0632\u0621 \u0646\u06cc\u0627\u0632 \u062f\u0627\u0631\u0646\u062f\u061b \u0645\u0627\u0646\u0646\u062f \u0648\u0628\u200c\u0633\u0627\u06cc\u062a\u06cc \u06a9\u0647 \u0628\u0647 \u0648\u0628\u200c\u0633\u0631\u0648\u0631 (\u0645\u062b\u0644 Nginx)\u060c \u0628\u06a9\u200c\u0627\u0646\u062f \u0627\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646 (\u0645\u062b\u0644 \u0648\u0631\u062f\u067e\u0631\u0633) \u0648 \u067e\u0627\u06cc\u06af\u0627\u0647 \u062f\u0627\u062f\u0647 (\u0645\u062b\u0644 MySQL) \u0646\u06cc\u0627\u0632 \u062f\u0627\u0631\u062f.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">\u06f2. \u0686\u0637\u0648\u0631 Docker Compose \u0631\u0627 \u0631\u0648\u06cc \u0627\u0648\u0628\u0648\u0646\u062a\u0648 \u0646\u0635\u0628 \u06a9\u0646\u0645\u061f<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">\u0631\u0648\u0634 \u062a\u0648\u0635\u06cc\u0647\u200c\u0634\u062f\u0647\u060c \u0646\u0635\u0628 Docker Compose \u0628\u0647\u200c\u0639\u0646\u0648\u0627\u0646 \u067e\u0644\u0627\u06af\u06cc\u0646\u06cc \u0628\u0631\u0627\u06cc Docker CLI \u0627\u0633\u062a. \u0627\u06cc\u0646 \u06a9\u0627\u0631 \u0628\u0627 \u0646\u0635\u0628 \u067e\u06a9\u06cc\u062c docker-compose-plugin \u0627\u0632 \u0645\u062e\u0632\u0646 apt \u0645\u0631\u0628\u0648\u0637 \u0628\u0647 Docker \u0627\u0646\u062c\u0627\u0645 \u0645\u06cc\u200c\u0634\u0648\u062f.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u0627\u0628\u062a\u062f\u0627 \u0645\u0637\u0645\u0626\u0646 \u0634\u0648\u06cc\u062f \u0645\u062e\u0632\u0646 apt \u062f\u0627\u06a9\u0631 \u0631\u0627 \u0637\u0628\u0642 \u0645\u0631\u062d\u0644\u0647 \u06f1 \u0627\u06cc\u0646 \u0645\u0642\u0627\u0644\u0647 \u0631\u0648\u06cc \u0633\u06cc\u0633\u062a\u0645 \u0627\u0648\u0628\u0648\u0646\u062a\u0648\u06cc \u062e\u0648\u062f \u0631\u0627\u0647\u200c\u0627\u0646\u062f\u0627\u0632\u06cc \u06a9\u0631\u062f\u0647\u200c\u0627\u06cc\u062f.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u0641\u0647\u0631\u0633\u062a \u067e\u06a9\u06cc\u062c\u200c\u0647\u0627\u06cc \u062e\u0648\u062f \u0631\u0627 \u0628\u0647\u200c\u0631\u0648\u0632 \u06a9\u0646\u06cc\u062f:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo apt update<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\u067e\u0644\u0627\u06af\u06cc\u0646 Docker Compose \u0631\u0627 \u0646\u0635\u0628 \u06a9\u0646\u06cc\u062f:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo apt install docker-compose-plugin<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\u0646\u0635\u0628 \u0631\u0627 \u0628\u0627 \u0628\u0631\u0631\u0633\u06cc \u0646\u0633\u062e\u0647 \u062a\u0623\u06cc\u06cc\u062f \u06a9\u0646\u06cc\u062f. \u0627\u06cc\u0646 \u062f\u0633\u062a\u0648\u0631 \u0627\u0632 \u0641\u0627\u0635\u0644\u0647 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u06cc\u200c\u06a9\u0646\u062f\u060c \u0646\u0647 \u062e\u0637 \u062a\u06cc\u0631\u0647:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>docker compose version<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">\u06f3. \u0686\u0637\u0648\u0631 Docker Compose \u0631\u0627 \u0628\u0647 \u0622\u062e\u0631\u06cc\u0646 \u0646\u0633\u062e\u0647 \u0628\u0647\u200c\u0631\u0648\u0632\u0631\u0633\u0627\u0646\u06cc \u06a9\u0646\u0645\u061f<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">\u0627\u0632 \u0622\u0646\u062c\u0627 \u06a9\u0647 Docker Compose (v2) \u0628\u0647\u200c\u0639\u0646\u0648\u0627\u0646 \u06cc\u06a9 \u067e\u06a9\u06cc\u062c \u0633\u06cc\u0633\u062a\u0645\u06cc \u0628\u0627 apt \u0646\u0635\u0628 \u0645\u06cc\u200c\u0634\u0648\u062f\u060c \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u06cc\u062f \u0622\u0646 \u0631\u0627 \u0628\u0627 \u0641\u0631\u0627\u06cc\u0646\u062f \u0627\u0633\u062a\u0627\u0646\u062f\u0627\u0631\u062f \u0628\u0647\u200c\u0631\u0648\u0632\u0631\u0633\u0627\u0646\u06cc \u0646\u0631\u0645\u200c\u0627\u0641\u0632\u0627\u0631 \u0627\u0648\u0628\u0648\u0646\u062a\u0648 \u0627\u0631\u062a\u0642\u0627 \u062f\u0647\u06cc\u062f.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u0627\u06cc\u0646\u062f\u06a9\u0633 \u067e\u06a9\u06cc\u062c\u200c\u0647\u0627\u06cc \u0645\u062d\u0644\u06cc \u062e\u0648\u062f \u0631\u0627 \u0631\u0641\u0631\u0634 \u06a9\u0646\u06cc\u062f:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo apt update<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\u06cc\u06a9 \u0627\u0631\u062a\u0642\u0627\u06cc \u0633\u0631\u0627\u0633\u0631\u06cc \u0633\u06cc\u0633\u062a\u0645 \u0627\u062c\u0631\u0627 \u06a9\u0646\u06cc\u062f \u06a9\u0647 \u067e\u0644\u0627\u06af\u06cc\u0646 Compose \u0631\u0627 \u0647\u0645 \u062f\u0631 \u0628\u0631 \u0645\u06cc\u200c\u06af\u06cc\u0631\u062f:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo apt upgrade<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\u0627\u06af\u0631 \u0641\u0642\u0637 \u0645\u06cc\u200c\u062e\u0648\u0627\u0647\u06cc\u062f \u062e\u0648\u062f \u067e\u0644\u0627\u06af\u06cc\u0646 \u0631\u0627 \u0628\u0647\u200c\u0631\u0648\u0632 \u06a9\u0646\u06cc\u062f\u060c \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u06cc\u062f \u0627\u06cc\u0646 \u062f\u0633\u062a\u0648\u0631 \u0631\u0627 \u0627\u062c\u0631\u0627 \u06a9\u0646\u06cc\u062f:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo apt install --only-upgrade docker-compose-plugin<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">\u06f4. \u0622\u06cc\u0627 Docker Compose \u0631\u0627 \u0645\u06cc\u200c\u062a\u0648\u0627\u0646 \u062f\u0631 \u0645\u062d\u06cc\u0637\u200c\u0647\u0627\u06cc production \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0631\u062f\u061f<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">\u0628\u0644\u0647\u060c Docker Compose \u0628\u0647\u200c\u0637\u0648\u0631 \u0645\u06a9\u0631\u0631 \u062f\u0631 production \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u06cc\u200c\u0634\u0648\u062f\u061b \u0628\u0647\u200c\u062e\u0635\u0648\u0635 \u0628\u0631\u0627\u06cc \u0627\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646\u200c\u0647\u0627\u06cc\u06cc \u06a9\u0647 \u0631\u0648\u06cc \u06cc\u06a9 \u0645\u06cc\u0632\u0628\u0627\u0646 \u0648\u0627\u062d\u062f \u0627\u062c\u0631\u0627 \u0645\u06cc\u200c\u0634\u0648\u0646\u062f.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u0627\u06cc\u0646 \u0627\u0628\u0632\u0627\u0631 \u0631\u0627\u0647\u06cc \u0633\u0631\u0631\u0627\u0633\u062a \u0628\u0631\u0627\u06cc \u062a\u0639\u0631\u06cc\u0641\u060c \u0627\u0633\u062a\u0642\u0631\u0627\u0631 \u0648 \u0645\u062f\u06cc\u0631\u06cc\u062a \u0686\u0631\u062e\u0647 \u062d\u06cc\u0627\u062a \u0633\u0631\u0648\u06cc\u0633\u200c\u0647\u0627\u060c \u0634\u0628\u06a9\u0647\u200c\u0647\u0627 \u0648 \u0648\u0627\u0644\u06cc\u0648\u0645\u200c\u0647\u0627\u06cc \u0627\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646 \u0634\u0645\u0627 \u0641\u0631\u0627\u0647\u0645 \u0645\u06cc\u200c\u06a9\u0646\u062f. \u0628\u0631\u0627\u06cc \u0627\u0633\u062a\u0642\u0631\u0627\u0631 \u062a\u06a9\u200c\u0633\u0631\u0648\u0631\u0647\u060c \u0631\u0627\u0647\u200c\u062d\u0644\u06cc \u0628\u0633\u06cc\u0627\u0631 \u0645\u0624\u062b\u0631 \u0648 \u0633\u0627\u062f\u0647 \u0628\u0631\u0627\u06cc \u0645\u062f\u06cc\u0631\u06cc\u062a \u0628\u0647 \u0634\u0645\u0627\u0631 \u0645\u06cc\u200c\u0631\u0648\u062f.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u0628\u0631\u0627\u06cc \u0633\u0646\u0627\u0631\u06cc\u0648\u0647\u0627\u06cc \u067e\u06cc\u0686\u06cc\u062f\u0647\u200c\u062a\u0631\u06cc \u06a9\u0647 \u0646\u06cc\u0627\u0632 \u0628\u0647 \u0647\u0645\u0627\u0647\u0646\u06af\u06cc \u06a9\u0627\u0646\u062a\u06cc\u0646\u0631\u0647\u0627 \u0628\u06cc\u0646 \u0686\u0646\u062f\u06cc\u0646 \u0645\u06cc\u0632\u0628\u0627\u0646 (\u06a9\u0644\u0627\u0633\u062a\u0631) \u062f\u0627\u0631\u0646\u062f\u060c \u0627\u0628\u0632\u0627\u0631\u0647\u0627\u06cc \u062f\u06cc\u06af\u0631\u06cc \u0631\u0627\u06cc\u062c\u200c\u062a\u0631\u0646\u062f. \u0627\u06cc\u0646 \u0627\u0628\u0632\u0627\u0631\u0647\u0627 \u0634\u0627\u0645\u0644 Docker Swarm (\u06a9\u0647 \u0627\u0632 \u0633\u06cc\u0646\u062a\u06a9\u0633 \u0641\u0627\u06cc\u0644 Compose \u0645\u0634\u0627\u0628\u0647\u06cc \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u06cc\u200c\u06a9\u0646\u062f) \u0648 Kubernetes (\u0627\u0633\u062a\u0627\u0646\u062f\u0627\u0631\u062f \u0635\u0646\u0639\u062a \u0628\u0631\u0627\u06cc \u0627\u0631\u06a9\u0633\u062a\u0631\u0627\u0633\u06cc\u0648\u0646 \u06a9\u0627\u0646\u062a\u06cc\u0646\u0631 \u062f\u0631 \u0645\u0642\u06cc\u0627\u0633 \u0628\u0632\u0631\u06af) \u0645\u06cc\u200c\u0634\u0648\u0646\u062f.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">\u06f5. \u062a\u0641\u0627\u0648\u062a Docker \u0648 Docker Compose \u0686\u06cc\u0633\u062a\u061f<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">\u0627\u06cc\u0646 \u062c\u062f\u0648\u0644 \u062a\u0641\u0627\u0648\u062a\u200c\u0647\u0627\u06cc \u0627\u0635\u0644\u06cc \u0628\u06cc\u0646 Docker CLI \u0648 Docker Compose CLI \u0631\u0627 \u0646\u0634\u0627\u0646 \u0645\u06cc\u200c\u062f\u0647\u062f:<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>\u0648\u06cc\u0698\u06af\u06cc<\/th><th>docker (Docker Engine)<\/th><th>docker compose (\u067e\u0644\u0627\u06af\u06cc\u0646 Compose)<\/th><\/tr><\/thead><tbody><tr><td>\u062f\u0627\u0645\u0646\u0647<\/td><td>\u0645\u062f\u06cc\u0631\u06cc\u062a \u062a\u06a9\u200c\u062a\u06a9 \u0627\u0634\u06cc\u0627\u06cc Docker<\/td><td>\u0645\u062f\u06cc\u0631\u06cc\u062a \u06cc\u06a9 \u0627\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646 \u0686\u0646\u062f\u06a9\u0627\u0646\u062a\u06cc\u0646\u0631\u06cc \u06a9\u0627\u0645\u0644 \u0628\u0647\u200c\u0639\u0646\u0648\u0627\u0646 \u06cc\u06a9 \u0648\u0627\u062d\u062f \u0648\u0627\u062d\u062f<\/td><\/tr><tr><td>\u06a9\u0627\u0631\u0628\u0631\u062f \u0627\u0635\u0644\u06cc<\/td><td>\u0633\u0627\u062e\u062a \u0627\u06cc\u0645\u06cc\u062c\u200c\u0647\u0627 (docker build)\u060c \u0627\u062c\u0631\u0627\u06cc \u06a9\u0627\u0646\u062a\u06cc\u0646\u0631\u0647\u0627\u06cc \u0645\u0646\u0641\u0631\u062f (docker run)\u060c \u0645\u062f\u06cc\u0631\u06cc\u062a \u06a9\u0627\u0646\u062a\u06cc\u0646\u0631\u0647\u0627 (docker ps)\u060c \u0627\u06cc\u0645\u06cc\u062c\u200c\u0647\u0627\u060c \u0648\u0627\u0644\u06cc\u0648\u0645\u200c\u0647\u0627 \u0648 \u0634\u0628\u06a9\u0647\u200c\u0647\u0627<\/td><td>\u0627\u0631\u06a9\u0633\u062a\u0631\u0627\u0633\u06cc\u0648\u0646 \u0686\u0646\u062f\u06cc\u0646 \u0633\u0631\u0648\u06cc\u0633 \u062a\u0639\u0631\u06cc\u0641\u200c\u0634\u062f\u0647 \u062f\u0631 \u0641\u0627\u06cc\u0644 docker-compose.yml<\/td><\/tr><tr><td>\u062f\u0633\u062a\u0648\u0631\u0627\u062a<\/td><td>\u062f\u0633\u062a\u0648\u0631\u0627\u062a \u0633\u0637\u062d \u067e\u0627\u06cc\u06cc\u0646 \u0645\u062a\u0645\u0631\u06a9\u0632 \u0628\u0631 \u06cc\u06a9 \u0634\u06cc\u0621. \u0645\u062b\u0627\u0644: docker run -d -p 80:80 -v .\/:\/app nginx<\/td><td>\u062f\u0633\u062a\u0648\u0631\u0627\u062a \u0633\u0637\u062d \u0628\u0627\u0644\u0627 \u0628\u0631\u0627\u06cc \u06a9\u0644 \u0627\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646. \u0645\u062b\u0627\u0644: docker compose up<\/td><\/tr><tr><td>\u062a\u0645\u062b\u06cc\u0644<\/td><td>\u06cc\u06a9 \u0628\u0644\u0648\u06a9 \u0633\u0627\u062e\u062a\u0645\u0627\u0646\u06cc (\u06cc\u06a9 \u06a9\u0627\u0646\u062a\u06cc\u0646\u0631 \u0645\u0646\u0641\u0631\u062f)<\/td><td>\u0646\u0642\u0634\u0647 \u0633\u0627\u062e\u062a\u0645\u0627\u0646 \u0648 \u0645\u062f\u06cc\u0631 \u0633\u0627\u062e\u062a\u0650 \u06a9\u0644 \u0633\u0627\u062e\u062a\u0645\u0627\u0646 (\u0627\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646)<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">\u062e\u0644\u0627\u0635\u0647 \u0627\u06cc\u0646\u06a9\u0647 \u0627\u0632 docker \u0628\u0631\u0627\u06cc \u062a\u0639\u0627\u0645\u0644 \u0628\u0627 \u06cc\u06a9 \u06a9\u0627\u0646\u062a\u06cc\u0646\u0631 \u0645\u0646\u0641\u0631\u062f \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u06cc\u200c\u06a9\u0646\u06cc\u062f \u0648 \u0627\u0632 docker compose \u0628\u0631\u0627\u06cc \u0645\u062f\u06cc\u0631\u06cc\u062a \u06a9\u0644 \u0627\u0633\u062a\u06a9 \u0627\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646 \u062e\u0648\u062f (\u0645\u062b\u0644\u0627\u064b web\u060c app \u0648 db) \u0628\u0647\u200c\u0635\u0648\u0631\u062a \u0647\u0645\u200c\u0632\u0645\u0627\u0646.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">\u06f6. \u0686\u0637\u0648\u0631 \u0628\u0627 Docker Compose \u0686\u0646\u062f\u06cc\u0646 \u06a9\u0627\u0646\u062a\u06cc\u0646\u0631 \u0627\u062c\u0631\u0627 \u06a9\u0646\u0645\u061f<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">\u0627\u062c\u0631\u0627\u06cc \u0686\u0646\u062f\u06cc\u0646 \u06a9\u0627\u0646\u062a\u06cc\u0646\u0631 \u0628\u0627 \u062a\u0639\u0631\u06cc\u0641 \u0622\u0646\u200c\u0647\u0627 \u0628\u0647\u200c\u0639\u0646\u0648\u0627\u0646 \u0633\u0631\u0648\u06cc\u0633 \u062f\u0631 \u0641\u0627\u06cc\u0644 docker-compose.yml \u0627\u0646\u062c\u0627\u0645 \u0645\u06cc\u200c\u0634\u0648\u062f.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u0641\u0627\u06cc\u0644\u06cc \u0628\u0627 \u0646\u0627\u0645 docker-compose.yml \u0628\u0633\u0627\u0632\u06cc\u062f.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u062f\u0627\u062e\u0644 \u0627\u06cc\u0646 \u0641\u0627\u06cc\u0644\u060c \u0627\u0632 \u06a9\u0644\u06cc\u062f services: \u0628\u0631\u0627\u06cc \u062a\u0639\u0631\u06cc\u0641 \u0647\u0631 \u06a9\u0627\u0646\u062a\u06cc\u0646\u0631\u06cc \u06a9\u0647 \u0645\u06cc\u200c\u062e\u0648\u0627\u0647\u06cc\u062f \u0627\u062c\u0631\u0627 \u0634\u0648\u062f \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u06cc\u062f.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u0627\u06cc\u0646\u062c\u0627 \u06cc\u06a9 \u0645\u062b\u0627\u0644 \u0639\u0645\u0644\u06cc \u0622\u0648\u0631\u062f\u0647 \u0634\u062f\u0647 \u06a9\u0647 \u062f\u0648 \u06a9\u0627\u0646\u062a\u06cc\u0646\u0631 \u0631\u0627 \u062a\u0639\u0631\u06cc\u0641 \u0648 \u0627\u062c\u0631\u0627 \u0645\u06cc\u200c\u06a9\u0646\u062f: \u06cc\u06a9 \u0633\u0627\u06cc\u062a \u0648\u0631\u062f\u067e\u0631\u0633 \u0648 \u06cc\u06a9 \u067e\u0627\u06cc\u06af\u0627\u0647 \u062f\u0627\u062f\u0647 MySQL.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong><code>docker-compose.yml<\/code><\/strong><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>services:\n  db:\n    # \u0627\u06cc\u0646 \u0627\u0648\u0644\u06cc\u0646 \u0633\u0631\u0648\u06cc\u0633 (\u06a9\u0627\u0646\u062a\u06cc\u0646\u0631) \u0627\u0633\u062a\n    image: hub.cr.parmincloud.ir\/library\/mysql:8.0\n    environment:\n      MYSQL_ROOT_PASSWORD: &lt;your_password_here&gt;\n      MYSQL_DATABASE: wordpress\n    volumes:\n      - db_data:\/var\/lib\/mysql\n\n  wordpress:\n    # \u0627\u06cc\u0646 \u062f\u0648\u0645\u06cc\u0646 \u0633\u0631\u0648\u06cc\u0633 (\u06a9\u0627\u0646\u062a\u06cc\u0646\u0631) \u0627\u0633\u062a\n    image: hub.cr.parmincloud.ir\/library\/wordpress:latest\n    ports:\n      - \"8001:80\"\n    environment:\n      WORDPRESS_DB_HOST: db\n      WORDPRESS_DB_PASSWORD: &lt;your_password_here&gt;\n    depends_on:\n      - db\n\nvolumes:\n  db_data:<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\u0641\u0627\u06cc\u0644 \u0631\u0627 \u0630\u062e\u06cc\u0631\u0647 \u06a9\u0631\u062f\u0647 \u0648 \u062f\u0631 \u0647\u0645\u0627\u0646 \u062f\u0627\u06cc\u0631\u06a9\u062a\u0648\u0631\u06cc \u06cc\u06a9 \u062a\u0631\u0645\u06cc\u0646\u0627\u0644 \u0628\u0627\u0632 \u06a9\u0646\u06cc\u062f.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u0628\u0627 \u06cc\u06a9 \u062f\u0633\u062a\u0648\u0631\u060c \u0647\u0631 \u062f\u0648 \u06a9\u0627\u0646\u062a\u06cc\u0646\u0631 \u0631\u0627 \u0631\u0627\u0647\u200c\u0627\u0646\u062f\u0627\u0632\u06cc \u06a9\u0646\u06cc\u062f:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>docker compose up -d<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Docker Compose \u0641\u0627\u06cc\u0644 \u0631\u0627 \u0645\u06cc\u200c\u062e\u0648\u0627\u0646\u062f\u060c \u06cc\u06a9 \u0634\u0628\u06a9\u0647 \u0627\u0634\u062a\u0631\u0627\u06a9\u06cc \u0628\u0631\u0627\u06cc \u0633\u0631\u0648\u06cc\u0633\u200c\u0647\u0627 \u0645\u06cc\u200c\u0633\u0627\u0632\u062f\u060c \u0647\u0631 \u062f\u0648 \u0627\u06cc\u0645\u06cc\u062c mysql \u0648 wordpress \u0631\u0627 \u062f\u0631\u06cc\u0627\u0641\u062a \u06a9\u0631\u062f\u0647 \u0648 \u0628\u0631\u0627\u06cc \u0647\u0631 \u0633\u0631\u0648\u06cc\u0633 \u06cc\u06a9 \u06a9\u0627\u0646\u062a\u06cc\u0646\u0631 \u0631\u0627\u0647\u200c\u0627\u0646\u062f\u0627\u0632\u06cc \u0645\u06cc\u200c\u06a9\u0646\u062f.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">\u06f7. \u0686\u0631\u0627 \u0627\u0632 Docker Compose \u0628\u0631\u0627\u06cc \u062a\u0648\u0633\u0639\u0647 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u06cc\u0645\u061f<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Docker Compose \u0627\u0628\u0632\u0627\u0631\u06cc \u0627\u0633\u062a\u0627\u0646\u062f\u0627\u0631\u062f \u0628\u0631\u0627\u06cc \u0645\u062d\u06cc\u0637\u200c\u0647\u0627\u06cc \u062a\u0648\u0633\u0639\u0647 \u0627\u0633\u062a\u061b \u0686\u0631\u0627 \u06a9\u0647 \u0686\u0646\u062f\u06cc\u0646 \u0645\u0634\u06a9\u0644 \u0631\u0627\u06cc\u062c \u0631\u0627 \u062d\u0644 \u0645\u06cc\u200c\u06a9\u0646\u062f.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>\u0645\u062d\u06cc\u0637\u200c\u0647\u0627\u06cc \u06cc\u06a9\u0633\u0627\u0646:<\/strong> \u062a\u0636\u0645\u06cc\u0646 \u0645\u06cc\u200c\u06a9\u0646\u062f \u0647\u0631 \u062a\u0648\u0633\u0639\u0647\u200c\u062f\u0647\u0646\u062f\u0647 \u062f\u0631 \u06cc\u06a9 \u062a\u06cc\u0645\u060c \u062f\u0642\u06cc\u0642\u0627\u064b \u0647\u0645\u0627\u0646 \u0633\u0631\u0648\u06cc\u0633\u200c\u0647\u0627 (\u067e\u0627\u06cc\u06af\u0627\u0647 \u062f\u0627\u062f\u0647\u060c \u06a9\u0634\u060c \u0648\u0628\u200c\u0633\u0631\u0648\u0631) \u0631\u0627 \u0628\u0627 \u0647\u0645\u0627\u0646 \u0646\u0633\u062e\u0647\u200c\u0647\u0627 \u0648 \u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc\u200c\u0647\u0627 \u0627\u062c\u0631\u0627 \u06a9\u0646\u062f. \u0627\u06cc\u0646 \u0645\u0648\u0636\u0648\u0639 \u062f\u0631 \u0641\u0627\u06cc\u0644 docker-compose.yml \u062a\u0639\u0631\u06cc\u0641 \u0645\u06cc\u200c\u0634\u0648\u062f \u06a9\u0647 \u062f\u0631 \u06a9\u0646\u062a\u0631\u0644 \u0646\u0633\u062e\u0647 (Version Control) \u062b\u0628\u062a \u0645\u06cc\u200c\u0634\u0648\u062f. \u0645\u0634\u06a9\u0644 \u00ab\u0631\u0648\u06cc \u0633\u06cc\u0633\u062a\u0645 \u0645\u0646 \u06a9\u0627\u0631 \u0645\u06cc\u200c\u06a9\u0646\u0647\u00bb \u0631\u0627 \u0627\u0632 \u0628\u06cc\u0646 \u0645\u06cc\u200c\u0628\u0631\u062f.<\/li>\n\n\n\n<li><strong>\u0633\u0627\u062f\u06af\u06cc:<\/strong> \u062c\u0627\u06cc\u06af\u0632\u06cc\u0646 \u0627\u0633\u06a9\u0631\u06cc\u067e\u062a\u200c\u0647\u0627\u06cc \u067e\u06cc\u0686\u06cc\u062f\u0647 \u0631\u0627\u0647\u200c\u0627\u0646\u062f\u0627\u0632\u06cc \u0648 \u062f\u0633\u062a\u0648\u0631\u0627\u062a \u0637\u0648\u0644\u0627\u0646\u06cc docker run \u0645\u06cc\u200c\u0634\u0648\u062f. \u06cc\u06a9 \u062a\u0648\u0633\u0639\u0647\u200c\u062f\u0647\u0646\u062f\u0647 \u0641\u0642\u0637 \u0628\u0627\u06cc\u062f docker compose up \u0631\u0627 \u0628\u0631\u0627\u06cc \u0634\u0631\u0648\u0639 \u06a9\u0644 \u0627\u0633\u062a\u06a9 \u0627\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646 \u0648 docker compose down \u0631\u0627 \u0628\u0631\u0627\u06cc \u062a\u0648\u0642\u0641 \u0622\u0646 \u0627\u062c\u0631\u0627 \u06a9\u0646\u062f.<\/li>\n\n\n\n<li><strong>\u0627\u06cc\u0632\u0648\u0644\u0627\u0633\u06cc\u0648\u0646 \u0633\u0631\u0648\u06cc\u0633:<\/strong> \u062a\u0648\u0633\u0639\u0647\u200c\u062f\u0647\u0646\u062f\u06af\u0627\u0646 \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u0646\u062f \u0631\u0648\u06cc \u06cc\u06a9 \u0645\u0627\u0634\u06cc\u0646\u060c \u0631\u0648\u06cc \u0686\u0646\u062f\u06cc\u0646 \u067e\u0631\u0648\u0698\u0647 \u0628\u062f\u0648\u0646 \u062a\u062f\u0627\u062e\u0644 \u0648\u0627\u0628\u0633\u062a\u06af\u06cc\u200c\u0647\u0627 \u06a9\u0627\u0631 \u06a9\u0646\u0646\u062f. \u067e\u0631\u0648\u0698\u0647 A \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u062f \u0627\u0632 PostgreSQL 9.6 \u0648 \u067e\u0631\u0648\u0698\u0647 B \u0627\u0632 PostgreSQL 14 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u062f\u061b \u0686\u0648\u0646 \u0647\u0631 \u067e\u0627\u06cc\u06af\u0627\u0647 \u062f\u0627\u062f\u0647 \u062f\u0631 \u06cc\u06a9 \u06a9\u0627\u0646\u062a\u06cc\u0646\u0631 \u0627\u06cc\u0632\u0648\u0644\u0647 \u0648 \u0645\u062f\u06cc\u0631\u06cc\u062a\u200c\u0634\u062f\u0647 \u062a\u0648\u0633\u0637 \u0641\u0627\u06cc\u0644 Compose \u062e\u0648\u062f\u0634 \u0627\u062c\u0631\u0627 \u0645\u06cc\u200c\u0634\u0648\u062f.<\/li>\n\n\n\n<li><strong>\u062a\u0633\u062a \u06cc\u06a9\u067e\u0627\u0631\u0686\u06af\u06cc \u0622\u0633\u0627\u0646:<\/strong> \u0627\u0632 \u0622\u0646\u062c\u0627 \u06a9\u0647 Compose \u0647\u0645\u0647 \u0648\u0627\u0628\u0633\u062a\u06af\u06cc\u200c\u0647\u0627\u06cc \u06cc\u06a9 \u0627\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646 \u0631\u0627 \u0628\u0627 \u0647\u0645 \u0631\u0627\u0647\u200c\u0627\u0646\u062f\u0627\u0632\u06cc \u0645\u06cc\u200c\u06a9\u0646\u062f\u060c \u06cc\u06a9 \u0645\u062d\u06cc\u0637 \u0645\u062d\u0644\u06cc \u0639\u0627\u0644\u06cc \u0628\u0631\u0627\u06cc \u0627\u062c\u0631\u0627\u06cc \u062a\u0633\u062a\u200c\u0647\u0627\u06cc \u06cc\u06a9\u067e\u0627\u0631\u0686\u06af\u06cc (Integration Test) \u06a9\u0647 \u0646\u062d\u0648\u0647 \u062a\u0639\u0627\u0645\u0644 \u0633\u0631\u0648\u06cc\u0633\u200c\u0647\u0627 \u0628\u0627 \u06cc\u06a9\u062f\u06cc\u06af\u0631 \u0631\u0627 \u0628\u0631\u0631\u0633\u06cc \u0645\u06cc\u200c\u06a9\u0646\u0646\u062f\u060c \u0627\u06cc\u062c\u0627\u062f \u0645\u06cc\u200c\u06a9\u0646\u062f.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">\u06f8. \u0622\u06cc\u0627 \u0644\u0627\u0632\u0645 \u0627\u0633\u062a \u0641\u06cc\u0644\u062f version: \u0631\u0627 \u062f\u0631 \u0641\u0627\u06cc\u0644 docker-compose.yml \u062e\u0648\u062f \u0642\u0631\u0627\u0631 \u062f\u0647\u0645\u061f<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">\u062e\u06cc\u0631. \u0641\u06cc\u0644\u062f version \u062f\u0631 \u0633\u0637\u062d \u0628\u0627\u0644\u0627 (\u0645\u062b\u0644\u0627\u064b version: &#8220;3.8&#8221;) \u062f\u06cc\u06af\u0631 \u0644\u0627\u0632\u0645 \u0646\u06cc\u0633\u062a \u0648 Docker Compose v2 \u0622\u0646 \u0631\u0627 \u0646\u0627\u062f\u06cc\u062f\u0647 \u0645\u06cc\u200c\u06af\u06cc\u0631\u062f. \u0628\u06cc\u0634\u062a\u0631 \u067e\u0631\u0648\u0698\u0647\u200c\u0647\u0627\u06cc \u0645\u062f\u0631\u0646 \u0627\u06cc\u0646 \u0641\u06cc\u0644\u062f \u0631\u0627 \u062d\u0630\u0641 \u0645\u06cc\u200c\u06a9\u0646\u0646\u062f \u0648 \u0647\u0645\u0627\u0646\u200c\u0637\u0648\u0631 \u06a9\u0647 \u062f\u0631 \u0645\u0631\u062d\u0644\u0647 \u06f2 \u062f\u06cc\u062f\u06cc\u062f\u060c Compose \u0628\u0647\u200c\u0635\u0648\u0631\u062a \u062e\u0648\u062f\u06a9\u0627\u0631 \u0646\u0633\u062e\u0647 \u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc \u0631\u0627 \u062a\u0634\u062e\u06cc\u0635 \u0645\u06cc\u200c\u062f\u0647\u062f. \u062a\u0646\u0647\u0627 \u0632\u0645\u0627\u0646\u06cc \u06a9\u0647 \u0628\u0647 \u0633\u0627\u0632\u06af\u0627\u0631\u06cc \u0628\u0627 \u0627\u0628\u0632\u0627\u0631\u0647\u0627\u06cc \u0642\u062f\u06cc\u0645\u06cc \u0646\u06cc\u0627\u0632 \u062f\u0627\u0631\u06cc\u062f\u060c \u0644\u0627\u0632\u0645 \u0627\u0633\u062a \u0645\u0642\u062f\u0627\u0631 \u0622\u0646 \u0631\u0627 \u0645\u0634\u062e\u0635 \u06a9\u0646\u06cc\u062f.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">\u062c\u0645\u0639\u200c\u0628\u0646\u062f\u06cc<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">\u062f\u0631 \u0627\u06cc\u0646 \u0645\u0642\u0627\u0644\u0647\u060c Docker Compose \u0631\u0627 \u0631\u0648\u06cc \u0627\u0648\u0628\u0648\u0646\u062a\u0648 \u0646\u0635\u0628 \u06a9\u0631\u062f\u06cc\u062f\u060c \u06cc\u06a9 \u0645\u062d\u06cc\u0637 \u06a9\u0627\u0646\u062a\u06cc\u0646\u0631\u06cc \u0633\u0627\u062f\u0647 \u0628\u0627 Nginx \u0631\u0627\u0647\u200c\u0627\u0646\u062f\u0627\u0632\u06cc \u06a9\u0631\u062f\u06cc\u062f \u0648 \u0633\u067e\u0633 \u06cc\u06a9 \u0627\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646 \u0686\u0646\u062f\u0633\u0631\u0648\u06cc\u0633\u06cc \u0634\u0627\u0645\u0644 \u0648\u0631\u062f\u067e\u0631\u0633 \u0648 MySQL \u0633\u0627\u062e\u062a\u06cc\u062f. \u0647\u0645\u0686\u0646\u06cc\u0646 \u06cc\u06a9 \u0645\u062d\u06cc\u0637 \u062a\u0648\u0633\u0639\u0647 AI\/ML \u0628\u0627 JupyterLab\u060c PostgreSQL \u0648 \u062f\u0633\u062a\u0631\u0633\u06cc GPU \u067e\u06cc\u0627\u062f\u0647\u200c\u0633\u0627\u0632\u06cc \u06a9\u0631\u062f\u06cc\u062f \u0648 \u0628\u0627 \u0645\u0641\u0627\u0647\u06cc\u0645 \u067e\u06cc\u0634\u0631\u0641\u062a\u0647\u200c\u0627\u06cc \u0645\u0627\u0646\u0646\u062f \u0645\u0642\u06cc\u0627\u0633\u200c\u062f\u0647\u06cc \u0633\u0631\u0648\u06cc\u0633\u200c\u0647\u0627\u060c \u0634\u0628\u06a9\u0647\u200c\u0647\u0627\u06cc \u0633\u0641\u0627\u0631\u0634\u06cc\u060c \u0641\u0627\u06cc\u0644\u200c\u0647\u0627\u06cc \u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc \u0645\u0627\u0698\u0648\u0644\u0627\u0631 \u0628\u0627 \u062f\u0633\u062a\u0648\u0631 include \u0648 \u0645\u0647\u0627\u062c\u0631\u062a \u0627\u0632 \u0646\u0633\u062e\u0647 v1 \u0628\u0647 v2 \u0622\u0634\u0646\u0627 \u0634\u062f\u06cc\u062f. \u062f\u0631 \u067e\u0627\u06cc\u0627\u0646 \u0646\u06cc\u0632 \u0631\u0627\u0647\u200c\u062d\u0644 \u0645\u0634\u06a9\u0644\u0627\u062a \u0631\u0627\u06cc\u062c\u06cc \u0645\u0627\u0646\u0646\u062f \u062e\u0637\u0627\u0647\u0627\u06cc \u062f\u0633\u062a\u0631\u0633\u06cc\u060c \u062a\u062f\u0627\u062e\u0644 \u067e\u0648\u0631\u062a\u200c\u0647\u0627 \u0648 \u0634\u06a9\u0633\u062a \u0631\u0627\u0647\u200c\u0627\u0646\u062f\u0627\u0632\u06cc \u0633\u0631\u0648\u06cc\u0633\u200c\u0647\u0627 \u062f\u0631 \u0627\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646\u200c\u0647\u0627\u06cc \u0686\u0646\u062f\u0633\u0631\u0648\u06cc\u0633\u06cc \u0631\u0627 \u06cc\u0627\u062f \u06af\u0631\u0641\u062a\u06cc\u062f. \u0628\u0627 Docker Compose \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u06cc\u062f \u06a9\u0644 \u0627\u0633\u062a\u06a9 \u0627\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646 \u062e\u0648\u062f \u0631\u0627 \u0628\u0627 \u06cc\u06a9 \u0641\u0627\u06cc\u0644 YAML \u0648 \u0686\u0646\u062f \u062f\u0633\u062a\u0648\u0631 \u0633\u0627\u062f\u0647\u060c \u062a\u0639\u0631\u06cc\u0641\u060c \u0627\u062c\u0631\u0627 \u0648 \u0645\u062f\u06cc\u0631\u06cc\u062a \u06a9\u0646\u06cc\u062f.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u0645\u0642\u062f\u0645\u0647 Docker \u0641\u0631\u0627\u06cc\u0646\u062f \u0645\u062f\u06cc\u0631\u06cc\u062a \u067e\u0631\u0648\u0633\u0647\u200c\u0647\u0627\u06cc \u0627\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646 \u0631\u0627 \u062f\u0631 \u06a9\u0627\u0646\u062a\u06cc\u0646\u0631\u0647\u0627 \u0633\u0627\u062f\u0647 \u0645\u06cc\u200c\u06a9\u0646\u062f. \u0627\u06af\u0631\u0686\u0647 \u06a9\u0627\u0646\u062a\u06cc\u0646\u0631\u0647\u0627 \u0627\u0632 \u0628\u0631\u062e\u06cc \u062c\u0647\u0627\u062a \u0634\u0628\u06cc\u0647 \u0645\u0627\u0634\u06cc\u0646\u200c\u0647\u0627\u06cc \u0645\u062c\u0627\u0632\u06cc \u0647\u0633\u062a\u0646\u062f\u060c \u0627\u0645\u0627 \u0633\u0628\u06a9\u200c\u062a\u0631 \u0628\u0648\u062f\u0647 \u0648 \u0645\u0646\u0627\u0628\u0639 \u06a9\u0645\u062a\u0631\u06cc \u0645\u0635\u0631\u0641 \u0645\u06cc\u200c\u06a9\u0646\u0646\u062f. \u0647\u0645\u06cc\u0646 \u0645\u0648\u0636\u0648\u0639 \u0628\u0647 \u062a\u0648\u0633\u0639\u0647\u200c\u062f\u0647\u0646\u062f\u06af\u0627\u0646 \u0627\u062c\u0627\u0632\u0647 \u0645\u06cc\u200c\u062f\u0647\u062f \u0645\u062d\u06cc\u0637 \u06cc\u06a9 \u0627\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646 \u0631\u0627 \u0628\u0647 \u0686\u0646\u062f \u0633\u0631\u0648\u06cc\u0633 \u0627\u06cc\u0632\u0648\u0644\u0647 \u062a\u0642\u0633\u06cc\u0645 \u06a9\u0646\u0646\u062f. \u0628\u0631\u0627\u06cc \u0627\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646\u200c\u0647\u0627\u06cc\u06cc \u06a9\u0647 \u0628\u0647 \u0686\u0646\u062f \u0633\u0631\u0648\u06cc\u0633 \u0648\u0627\u0628\u0633\u062a\u0647\u200c\u0627\u0646\u062f\u060c \u0647\u0645\u0627\u0647\u0646\u06af\u200c\u06a9\u0631\u062f\u0646 \u0647\u0645\u0647 \u06a9\u0627\u0646\u062a\u06cc\u0646\u0631\u0647\u0627 \u0628\u0631\u0627\u06cc &hellip;<\/p>\n","protected":false},"author":9,"featured_media":7112,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[258,142,131],"tags":[],"class_list":["post-7111","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-ubuntu","category-142","category-131"],"_links":{"self":[{"href":"https:\/\/parmin.cloud\/blog\/wp-json\/wp\/v2\/posts\/7111","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/parmin.cloud\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/parmin.cloud\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/parmin.cloud\/blog\/wp-json\/wp\/v2\/users\/9"}],"replies":[{"embeddable":true,"href":"https:\/\/parmin.cloud\/blog\/wp-json\/wp\/v2\/comments?post=7111"}],"version-history":[{"count":1,"href":"https:\/\/parmin.cloud\/blog\/wp-json\/wp\/v2\/posts\/7111\/revisions"}],"predecessor-version":[{"id":7113,"href":"https:\/\/parmin.cloud\/blog\/wp-json\/wp\/v2\/posts\/7111\/revisions\/7113"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/parmin.cloud\/blog\/wp-json\/wp\/v2\/media\/7112"}],"wp:attachment":[{"href":"https:\/\/parmin.cloud\/blog\/wp-json\/wp\/v2\/media?parent=7111"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/parmin.cloud\/blog\/wp-json\/wp\/v2\/categories?post=7111"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/parmin.cloud\/blog\/wp-json\/wp\/v2\/tags?post=7111"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}