{"id":2929,"date":"2026-04-24T21:54:31","date_gmt":"2026-04-24T21:54:31","guid":{"rendered":"https:\/\/maram.iq\/blogs\/?p=2929"},"modified":"2026-04-25T13:31:37","modified_gmt":"2026-04-25T10:31:37","slug":"docker-%d8%a7%d9%84%d8%ad%d8%a7%d9%88%d9%8a%d8%a7%d8%aa-%d8%a7%d9%84%d8%af%d9%84%d9%8a%d9%84-%d8%a7%d9%84%d8%b4%d8%a7%d9%85%d9%84-%d8%a7%d9%84%d8%b5%d9%81%d8%b1-%d8%a7%d9%84%d8%a5%d9%86%d8%aa%d8%a7","status":"publish","type":"post","link":"https:\/\/maram.iq\/blogs\/docker-%d8%a7%d9%84%d8%ad%d8%a7%d9%88%d9%8a%d8%a7%d8%aa-%d8%a7%d9%84%d8%af%d9%84%d9%8a%d9%84-%d8%a7%d9%84%d8%b4%d8%a7%d9%85%d9%84-%d8%a7%d9%84%d8%b5%d9%81%d8%b1-%d8%a7%d9%84%d8%a5%d9%86%d8%aa%d8%a7\/","title":{"rendered":"Docker \u0648 \u0627\u0644\u062d\u0627\u0648\u064a\u0627\u062a: \u0627\u0644\u062f\u0644\u064a\u0644 \u0627\u0644\u0634\u0627\u0645\u0644 \u0645\u0646 \u0627\u0644\u0635\u0641\u0631 \u062d\u062a\u0649 \u0627\u0644\u0625\u0646\u062a\u0627\u062c"},"content":{"rendered":"\n<p>Docker \u0648 \u0627\u0644\u062d\u0627\u0648\u064a\u0627\u062a \u0623\u0635\u0628\u062d\u0627 \u0645\u0646 \u0627\u0644\u0623\u062f\u0648\u0627\u062a \u0627\u0644\u0623\u0633\u0627\u0633\u064a\u0629 \u0641\u064a \u0639\u0627\u0644\u0645 \u0625\u062f\u0627\u0631\u0629 \u0627\u0644\u0633\u064a\u0631\u0641\u0631\u0627\u062a \u0648\u062a\u0637\u0648\u064a\u0631 \u0627\u0644\u062a\u0637\u0628\u064a\u0642\u0627\u062a \u0641\u064a 2026. \u0633\u0648\u0627\u0621 \u0643\u0646\u062a \u0645\u0637\u0648\u0631 \u0648\u064a\u0628 \u0623\u0648 \u0645\u062f\u064a\u0631 \u0633\u064a\u0631\u0641\u0631\u0627\u062a \u0641\u0625\u0646 Docker \u064a\u064f\u063a\u064a\u0651\u0631 \u0637\u0631\u064a\u0642\u0629 \u062a\u0634\u063a\u064a\u0644 \u0648\u0646\u0634\u0631 \u0627\u0644\u062a\u0637\u0628\u064a\u0642\u0627\u062a \u0628\u0634\u0643\u0644 \u062c\u0630\u0631\u064a. \u0628\u062f\u0644\u0627\u064b \u0645\u0646 \u062a\u062b\u0628\u064a\u062a \u0643\u0644 \u0634\u064a\u0621 \u0645\u0628\u0627\u0634\u0631\u0629 \u0639\u0644\u0649 \u0627\u0644\u0633\u064a\u0631\u0641\u0631 \u064a\u0645\u0643\u0646\u0643 \u062a\u0634\u063a\u064a\u0644 \u062a\u0637\u0628\u064a\u0642\u0627\u062a\u0643 \u0641\u064a \u062d\u0627\u0648\u064a\u0627\u062a \u0645\u0639\u0632\u0648\u0644\u0629 \u0648\u062e\u0641\u064a\u0641\u0629 \u0648\u0642\u0627\u0628\u0644\u0629 \u0644\u0644\u0646\u0642\u0644 \u0628\u064a\u0646 \u0623\u064a \u0628\u064a\u0626\u0629. \u0641\u064a \u0647\u0630\u0627 \u0627\u0644\u062f\u0644\u064a\u0644 \u0627\u0644\u0634\u0627\u0645\u0644 \u0633\u0646\u0634\u0631\u062d Docker \u0645\u0646 \u0627\u0644\u0635\u0641\u0631 \u0648\u062d\u062a\u0649 \u0627\u0644\u0627\u0633\u062a\u062e\u062f\u0627\u0645 \u0641\u064a \u0628\u064a\u0626\u0629 \u0627\u0644\u0625\u0646\u062a\u0627\u062c.<\/p>\n\n\n\n<div class=\"table-of-contents\" style=\"background:#f8fafc;border:1px solid #e2e8f0;border-radius:12px;padding:1.5rem;margin:1.5rem 0;\"><p style=\"font-weight:700;font-size:1.05rem;margin-bottom:.75rem;\">\u0645\u062d\u062a\u0648\u064a\u0627\u062a \u0627\u0644\u0645\u0642\u0627\u0644<\/p><ul style=\"list-style:none;padding:0;margin:0;\"><li style=\"padding:.25rem 0;\"><a href=\"#section-1\" style=\"color:#4f46e5;text-decoration:none;\">&#8592; Docker \u0648 \u0627\u0644\u062d\u0627\u0648\u064a\u0627\u062a: \u062f\u0644\u064a\u0644\u0643 \u0627\u0644\u0634\u0627\u0645\u0644<\/a><\/li><li style=\"padding:.25rem 0;\"><a href=\"#section-2\" style=\"color:#4f46e5;text-decoration:none;\">&#8592; \u0645\u0627 \u0647\u0648 Docker \u0648\u0643\u064a\u0641 \u064a\u0639\u0645\u0644\u061f<\/a><\/li><li style=\"padding:.25rem 0;\"><a href=\"#section-3\" style=\"color:#4f46e5;text-decoration:none;\">&#8592; \u0627\u0644\u0641\u0631\u0642 \u0628\u064a\u0646 Docker \u0648\u0627\u0644\u0623\u062c\u0647\u0632\u0629 \u0627\u0644\u0627\u0641\u062a\u0631\u0627\u0636\u064a\u0629<\/a><\/li><li style=\"padding:.25rem 0;\"><a href=\"#section-4\" style=\"color:#4f46e5;text-decoration:none;\">&#8592; \u0627\u0644\u0645\u0641\u0627\u0647\u064a\u0645 \u0627\u0644\u0623\u0633\u0627\u0633\u064a\u0629 \u0641\u064a Docker<\/a><\/li><li style=\"padding:.25rem 0;\"><a href=\"#section-5\" style=\"color:#4f46e5;text-decoration:none;\">&#8592; \u062a\u062b\u0628\u064a\u062a Docker \u0639\u0644\u0649 \u0627\u0644\u0633\u064a\u0631\u0641\u0631<\/a><\/li><li style=\"padding:.25rem 0;\"><a href=\"#section-6\" style=\"color:#4f46e5;text-decoration:none;\">&#8592; \u0623\u0648\u0627\u0645\u0631 Docker \u0627\u0644\u0623\u0633\u0627\u0633\u064a\u0629<\/a><\/li><li style=\"padding:.25rem 0;\"><a href=\"#section-7\" style=\"color:#4f46e5;text-decoration:none;\">&#8592; \u0643\u062a\u0627\u0628\u0629 Dockerfile \u0627\u062d\u062a\u0631\u0627\u0641\u064a<\/a><\/li><li style=\"padding:.25rem 0;\"><a href=\"#section-8\" style=\"color:#4f46e5;text-decoration:none;\">&#8592; Docker Compose \u0644\u0625\u062f\u0627\u0631\u0629 \u0639\u062f\u0629 \u062d\u0627\u0648\u064a\u0627\u062a<\/a><\/li><li style=\"padding:.25rem 0;\"><a href=\"#section-9\" style=\"color:#4f46e5;text-decoration:none;\">&#8592; \u062a\u0634\u063a\u064a\u0644 WordPress \u0628\u0627\u0633\u062a\u062e\u062f\u0627\u0645 Docker<\/a><\/li><li style=\"padding:.25rem 0;\"><a href=\"#section-10\" style=\"color:#4f46e5;text-decoration:none;\">&#8592; \u0623\u0641\u0636\u0644 \u0627\u0644\u0645\u0645\u0627\u0631\u0633\u0627\u062a \u0644\u0623\u0645\u0627\u0646 Docker<\/a><\/li><li style=\"padding:.25rem 0;\"><a href=\"#section-11\" style=\"color:#4f46e5;text-decoration:none;\">&#8592; Docker \u0641\u064a \u0628\u064a\u0626\u0629 \u0627\u0644\u0625\u0646\u062a\u0627\u062c<\/a><\/li><li style=\"padding:.25rem 0;\"><a href=\"#section-12\" style=\"color:#4f46e5;text-decoration:none;\">&#8592; \u0627\u0644\u062e\u0644\u0627\u0635\u0629<\/a><\/li><\/ul><\/div>\n\n\n\n<div style=\"background:linear-gradient(135deg,#0f172a,#1e40af);color:#fff;padding:2.5rem;border-radius:16px;margin-bottom:2rem;text-align:center\">\n<p style=\"font-size:3rem;margin:0 0 .5rem\">&#x1F433;<\/p>\n<h2 style=\"color:#fff!important;font-size:1.5rem;margin:0 0 .5rem\" id=\"section-1\">Docker \u0648 \u0627\u0644\u062d\u0627\u0648\u064a\u0627\u062a: \u062f\u0644\u064a\u0644\u0643 \u0627\u0644\u0634\u0627\u0645\u0644<\/h2>\n<p style=\"margin:0\">\u062a\u0639\u0644\u0651\u0645 \u0643\u064a\u0641 \u062a\u0633\u062a\u062e\u062f\u0645 Docker \u0644\u062a\u0634\u063a\u064a\u0644 \u062a\u0637\u0628\u064a\u0642\u0627\u062a\u0643 \u0628\u0627\u062d\u062a\u0631\u0627\u0641\u064a\u0629 \u0648\u0633\u0631\u0639\u0629<\/p>\n<\/div>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"section-2\">\u0645\u0627 \u0647\u0648 Docker \u0648\u0643\u064a\u0641 \u064a\u0639\u0645\u0644\u061f<\/h2>\n\n\n\n<p>Docker \u0647\u0648 \u0645\u0646\u0635\u0629 \u0645\u0641\u062a\u0648\u062d\u0629 \u0627\u0644\u0645\u0635\u062f\u0631 \u062a\u062a\u064a\u062d \u0644\u0643 \u062a\u0634\u063a\u064a\u0644 \u0627\u0644\u062a\u0637\u0628\u064a\u0642\u0627\u062a \u062f\u0627\u062e\u0644 \u062d\u0627\u0648\u064a\u0627\u062a (Containers) \u0645\u0639\u0632\u0648\u0644\u0629. \u0627\u0644\u062d\u0627\u0648\u064a\u0629 \u0647\u064a \u0628\u064a\u0626\u0629 \u062e\u0641\u064a\u0641\u0629 \u062a\u062d\u062a\u0648\u064a \u0639\u0644\u0649 \u0627\u0644\u062a\u0637\u0628\u064a\u0642 \u0648\u062c\u0645\u064a\u0639 \u0627\u0644\u0645\u0643\u062a\u0628\u0627\u062a \u0648\u0627\u0644\u0625\u0639\u062f\u0627\u062f\u0627\u062a \u0627\u0644\u062a\u064a \u064a\u062d\u062a\u0627\u062c\u0647\u0627 \u0644\u0644\u0639\u0645\u0644 \u0628\u062f\u0648\u0646 \u0627\u0644\u062a\u0623\u062b\u064a\u0631 \u0639\u0644\u0649 \u0627\u0644\u0646\u0638\u0627\u0645 \u0627\u0644\u0623\u0633\u0627\u0633\u064a \u0623\u0648 \u0627\u0644\u062a\u0637\u0628\u064a\u0642\u0627\u062a \u0627\u0644\u0623\u062e\u0631\u0649.<\/p>\n\n\n\n<p>\u062a\u062e\u064a\u0651\u0644 \u0623\u0646 \u0644\u062f\u064a\u0643 \u062a\u0637\u0628\u064a\u0642 \u064a\u062d\u062a\u0627\u062c PHP 8.2 \u0648\u062a\u0637\u0628\u064a\u0642 \u0622\u062e\u0631 \u064a\u062d\u062a\u0627\u062c PHP 7.4 \u0639\u0644\u0649 \u0646\u0641\u0633 \u0627\u0644\u0633\u064a\u0631\u0641\u0631. \u0628\u062f\u0648\u0646 Docker \u0633\u062a\u0648\u0627\u062c\u0647 \u062a\u0639\u0627\u0631\u0636\u0627\u062a. \u0645\u0639 Docker \u0643\u0644 \u062a\u0637\u0628\u064a\u0642 \u064a\u0639\u0645\u0644 \u0641\u064a \u062d\u0627\u0648\u064a\u062a\u0647 \u0627\u0644\u062e\u0627\u0635\u0629 \u0628\u0625\u0635\u062f\u0627\u0631 PHP \u0627\u0644\u0645\u0646\u0627\u0633\u0628 \u0644\u0647 \u0628\u062f\u0648\u0646 \u0623\u064a \u062a\u0639\u0627\u0631\u0636.<\/p>\n\n\n\n<p>Docker \u064a\u0639\u0645\u0644 \u0645\u0646 \u062e\u0644\u0627\u0644 \u062b\u0644\u0627\u062b \u0645\u0631\u0627\u062d\u0644:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Build:<\/strong> \u0628\u0646\u0627\u0621 \u0635\u0648\u0631\u0629 (Image) \u062a\u062d\u062a\u0648\u064a \u0639\u0644\u0649 \u0627\u0644\u062a\u0637\u0628\u064a\u0642 \u0648\u0645\u062a\u0637\u0644\u0628\u0627\u062a\u0647<\/li>\n\n\n\n<li><strong>Ship:<\/strong> \u0645\u0634\u0627\u0631\u0643\u0629 \u0627\u0644\u0635\u0648\u0631\u0629 \u0639\u0628\u0631 Docker Hub \u0623\u0648 Registry \u062e\u0627\u0635<\/li>\n\n\n\n<li><strong>Run:<\/strong> \u062a\u0634\u063a\u064a\u0644 \u0627\u0644\u0635\u0648\u0631\u0629 \u0643\u062d\u0627\u0648\u064a\u0629 \u0639\u0644\u0649 \u0623\u064a \u0633\u064a\u0631\u0641\u0631<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"section-3\">\u0627\u0644\u0641\u0631\u0642 \u0628\u064a\u0646 Docker \u0648\u0627\u0644\u0623\u062c\u0647\u0632\u0629 \u0627\u0644\u0627\u0641\u062a\u0631\u0627\u0636\u064a\u0629 (VMs)<\/h2>\n\n\n\n<p>\u0643\u062b\u064a\u0631 \u0645\u0646 \u0627\u0644\u0645\u0628\u062a\u062f\u0626\u064a\u0646 \u064a\u062e\u0644\u0637\u0648\u0646 \u0628\u064a\u0646 Docker \u0648\u0627\u0644\u0623\u062c\u0647\u0632\u0629 \u0627\u0644\u0627\u0641\u062a\u0631\u0627\u0636\u064a\u0629. \u0627\u0644\u0641\u0631\u0642 \u0627\u0644\u062c\u0648\u0647\u0631\u064a:<\/p>\n\n\n\n<p><strong>\u0627\u0644\u0623\u062c\u0647\u0632\u0629 \u0627\u0644\u0627\u0641\u062a\u0631\u0627\u0636\u064a\u0629 (VMs):<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u062a\u062d\u062a\u0648\u064a \u0639\u0644\u0649 \u0646\u0638\u0627\u0645 \u062a\u0634\u063a\u064a\u0644 \u0643\u0627\u0645\u0644 \u0644\u0643\u0644 \u062c\u0647\u0627\u0632 \u0627\u0641\u062a\u0631\u0627\u0636\u064a<\/li>\n\n\n\n<li>\u062a\u0633\u062a\u0647\u0644\u0643 \u0645\u0648\u0627\u0631\u062f \u0643\u0628\u064a\u0631\u0629 (RAM \u0648 CPU \u0648\u0645\u0633\u0627\u062d\u0629)<\/li>\n\n\n\n<li>\u0628\u0637\u064a\u0626\u0629 \u0641\u064a \u0627\u0644\u0625\u0642\u0644\u0627\u0639 (\u062f\u0642\u0627\u0626\u0642)<\/li>\n\n\n\n<li>\u0639\u0632\u0644 \u0643\u0627\u0645\u0644 \u0639\u0644\u0649 \u0645\u0633\u062a\u0648\u0649 Hardware<\/li>\n<\/ul>\n\n\n\n<p><strong>\u062d\u0627\u0648\u064a\u0627\u062a Docker:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u062a\u0634\u0627\u0631\u0643 \u0646\u0648\u0627\u0629 (Kernel) \u0646\u0638\u0627\u0645 \u0627\u0644\u062a\u0634\u063a\u064a\u0644 \u0627\u0644\u0623\u0633\u0627\u0633\u064a<\/li>\n\n\n\n<li>\u062e\u0641\u064a\u0641\u0629 \u062c\u062f\u0627\u064b (\u0645\u064a\u063a\u0627\u0628\u0627\u064a\u062a\u0627\u062a \u0628\u062f\u0644\u0627\u064b \u0645\u0646 \u062c\u064a\u063a\u0627\u0628\u0627\u064a\u062a\u0627\u062a)<\/li>\n\n\n\n<li>\u062a\u0642\u0644\u0639 \u0641\u064a \u062b\u0648\u0627\u0646\u064d<\/li>\n\n\n\n<li>\u0639\u0632\u0644 \u0639\u0644\u0649 \u0645\u0633\u062a\u0648\u0649 \u0627\u0644\u0639\u0645\u0644\u064a\u0627\u062a (Process-level isolation)<\/li>\n\n\n\n<li>\u064a\u0645\u0643\u0646 \u062a\u0634\u063a\u064a\u0644 \u0639\u0634\u0631\u0627\u062a \u0627\u0644\u062d\u0627\u0648\u064a\u0627\u062a \u0639\u0644\u0649 \u0646\u0641\u0633 \u0627\u0644\u0633\u064a\u0631\u0641\u0631<\/li>\n<\/ul>\n\n\n\n<p>\u0645\u062b\u0627\u0644 \u0639\u0645\u0644\u064a: \u0633\u064a\u0631\u0641\u0631 VPS \u0628\u0640 4GB RAM \u064a\u0645\u0643\u0646\u0647 \u062a\u0634\u063a\u064a\u0644 2-3 \u0623\u062c\u0647\u0632\u0629 \u0627\u0641\u062a\u0631\u0627\u0636\u064a\u0629 \u0644\u0643\u0646 \u064a\u0645\u0643\u0646\u0647 \u062a\u0634\u063a\u064a\u0644 20-30 \u062d\u0627\u0648\u064a\u0629 Docker \u0628\u0633\u0647\u0648\u0644\u0629.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"section-4\">\u0627\u0644\u0645\u0641\u0627\u0647\u064a\u0645 \u0627\u0644\u0623\u0633\u0627\u0633\u064a\u0629 \u0641\u064a Docker<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">Image (\u0627\u0644\u0635\u0648\u0631\u0629)<\/h3>\n\n\n\n<p>\u0642\u0627\u0644\u0628 \u0644\u0644\u0642\u0631\u0627\u0621\u0629 \u0641\u0642\u0637 \u064a\u062d\u062a\u0648\u064a \u0639\u0644\u0649 \u0646\u0638\u0627\u0645 \u0627\u0644\u062a\u0634\u063a\u064a\u0644 \u0648\u0627\u0644\u062a\u0637\u0628\u064a\u0642 \u0648\u0645\u062a\u0637\u0644\u0628\u0627\u062a\u0647. \u062a\u064f\u0628\u0646\u0649 \u0645\u0646 \u0645\u0644\u0641 Dockerfile \u0648\u062a\u064f\u062e\u0632\u0651\u0646 \u0641\u064a Registry.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Container (\u0627\u0644\u062d\u0627\u0648\u064a\u0629)<\/h3>\n\n\n\n<p>\u0646\u0633\u062e\u0629 \u0642\u0627\u0628\u0644\u0629 \u0644\u0644\u062a\u0634\u063a\u064a\u0644 \u0645\u0646 \u0627\u0644\u0635\u0648\u0631\u0629. \u064a\u0645\u0643\u0646\u0643 \u062a\u0634\u063a\u064a\u0644 \u0639\u062f\u0629 \u062d\u0627\u0648\u064a\u0627\u062a \u0645\u0646 \u0646\u0641\u0633 \u0627\u0644\u0635\u0648\u0631\u0629. \u0627\u0644\u062d\u0627\u0648\u064a\u0629 \u0644\u0647\u0627 \u062f\u0648\u0631\u0629 \u062d\u064a\u0627\u0629: \u0625\u0646\u0634\u0627\u0621 \u0648\u062a\u0634\u063a\u064a\u0644 \u0648\u0625\u064a\u0642\u0627\u0641 \u0648\u062d\u0630\u0641.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Volume (\u0648\u062d\u062f\u0629 \u0627\u0644\u062a\u062e\u0632\u064a\u0646)<\/h3>\n\n\n\n<p>\u0645\u0643\u0627\u0646 \u0644\u062a\u062e\u0632\u064a\u0646 \u0627\u0644\u0628\u064a\u0627\u0646\u0627\u062a \u0628\u0634\u0643\u0644 \u062f\u0627\u0626\u0645. \u0628\u062f\u0648\u0646 Volume \u062a\u064f\u0641\u0642\u062f \u0627\u0644\u0628\u064a\u0627\u0646\u0627\u062a \u0639\u0646\u062f \u062d\u0630\u0641 \u0627\u0644\u062d\u0627\u0648\u064a\u0629. Volumes \u062a\u0628\u0642\u0649 \u062d\u062a\u0649 \u0628\u0639\u062f \u062d\u0630\u0641 \u0627\u0644\u062d\u0627\u0648\u064a\u0629.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Network (\u0627\u0644\u0634\u0628\u0643\u0629)<\/h3>\n\n\n\n<p>Docker \u064a\u064f\u0646\u0634\u0626 \u0634\u0628\u0643\u0627\u062a \u0627\u0641\u062a\u0631\u0627\u0636\u064a\u0629 \u062a\u0633\u0645\u062d \u0644\u0644\u062d\u0627\u0648\u064a\u0627\u062a \u0628\u0627\u0644\u062a\u0648\u0627\u0635\u0644 \u0645\u0639 \u0628\u0639\u0636\u0647\u0627. \u064a\u0645\u0643\u0646\u0643 \u0625\u0646\u0634\u0627\u0621 \u0634\u0628\u0643\u0627\u062a \u0645\u0639\u0632\u0648\u0644\u0629 \u0644\u0643\u0644 \u0645\u0634\u0631\u0648\u0639.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Docker Hub<\/h3>\n\n\n\n<p>\u0645\u0633\u062a\u0648\u062f\u0639 \u0639\u0627\u0645 \u0644\u0644\u0635\u0648\u0631 \u0627\u0644\u062c\u0627\u0647\u0632\u0629. \u064a\u062d\u062a\u0648\u064a \u0639\u0644\u0649 \u0622\u0644\u0627\u0641 \u0627\u0644\u0635\u0648\u0631 \u0627\u0644\u0631\u0633\u0645\u064a\u0629 \u0645\u062b\u0644 nginx \u0648mysql \u0648php \u0648wordpress \u0648gitlab \u0648\u063a\u064a\u0631\u0647\u0627.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"section-5\">\u062a\u062b\u0628\u064a\u062a Docker \u0639\u0644\u0649 \u0627\u0644\u0633\u064a\u0631\u0641\u0631<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">\u0639\u0644\u0649 Ubuntu 22.04 \/ 24.04<\/h3>\n\n\n\n<pre class=\"wp-block-code\"><code># \u0625\u0632\u0627\u0644\u0629 \u0623\u064a \u0646\u0633\u062e\u0629 \u0642\u062f\u064a\u0645\u0629\nsudo apt remove docker docker-engine docker.io containerd runc\n\n# \u062a\u062b\u0628\u064a\u062a \u0627\u0644\u0645\u062a\u0637\u0644\u0628\u0627\u062a\nsudo apt update\nsudo apt install ca-certificates curl gnupg lsb-release -y\n\n# \u0625\u0636\u0627\u0641\u0629 \u0645\u0641\u062a\u0627\u062d Docker \u0627\u0644\u0631\u0633\u0645\u064a\nsudo install -m 0755 -d \/etc\/apt\/keyrings\ncurl -fsSL https:\/\/download.docker.com\/linux\/ubuntu\/gpg | sudo gpg --dearmor -o \/etc\/apt\/keyrings\/docker.gpg\nsudo chmod a+r \/etc\/apt\/keyrings\/docker.gpg\n\n# \u0625\u0636\u0627\u0641\u0629 \u0645\u0633\u062a\u0648\u062f\u0639 Docker\necho \"deb &#91;arch=$(dpkg --print-architecture) signed-by=\/etc\/apt\/keyrings\/docker.gpg] https:\/\/download.docker.com\/linux\/ubuntu $(lsb_release -cs) stable\" | sudo tee \/etc\/apt\/sources.list.d\/docker.list &gt; \/dev\/null\n\n# \u062a\u062b\u0628\u064a\u062a Docker\nsudo apt update\nsudo apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin -y\n\n# \u062a\u0634\u063a\u064a\u0644 Docker \u0648\u062a\u0641\u0639\u064a\u0644\u0647 \u0639\u0646\u062f \u0627\u0644\u0625\u0642\u0644\u0627\u0639\nsudo systemctl start docker\nsudo systemctl enable docker\n\n# \u0625\u0636\u0627\u0641\u0629 \u0627\u0644\u0645\u0633\u062a\u062e\u062f\u0645 \u0644\u0645\u062c\u0645\u0648\u0639\u0629 docker (\u0644\u062a\u062c\u0646\u0628 \u0627\u0633\u062a\u062e\u062f\u0627\u0645 sudo)\nsudo usermod -aG docker $USER<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">\u0639\u0644\u0649 AlmaLinux \/ CentOS<\/h3>\n\n\n\n<pre class=\"wp-block-code\"><code># \u0625\u0636\u0627\u0641\u0629 \u0645\u0633\u062a\u0648\u062f\u0639 Docker\nsudo dnf config-manager --add-repo https:\/\/download.docker.com\/linux\/centos\/docker-ce.repo\n\n# \u062a\u062b\u0628\u064a\u062a Docker\nsudo dnf install docker-ce docker-ce-cli containerd.io docker-compose-plugin -y\n\n# \u062a\u0634\u063a\u064a\u0644 Docker\nsudo systemctl start docker &amp;&amp; sudo systemctl enable docker<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code># \u0627\u0644\u062a\u062d\u0642\u0642 \u0645\u0646 \u0627\u0644\u062a\u062b\u0628\u064a\u062a\ndocker --version\ndocker compose version\ndocker run hello-world<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"section-6\">\u0623\u0648\u0627\u0645\u0631 Docker \u0627\u0644\u0623\u0633\u0627\u0633\u064a\u0629<\/h2>\n\n\n\n<pre class=\"wp-block-code\"><code># === \u0625\u062f\u0627\u0631\u0629 \u0627\u0644\u0635\u0648\u0631 ===\ndocker pull nginx                    # \u062a\u062d\u0645\u064a\u0644 \u0635\u0648\u0631\u0629 \u0645\u0646 Docker Hub\ndocker images                        # \u0639\u0631\u0636 \u0627\u0644\u0635\u0648\u0631 \u0627\u0644\u0645\u062d\u0644\u064a\u0629\ndocker rmi nginx                     # \u062d\u0630\u0641 \u0635\u0648\u0631\u0629\ndocker build -t myapp:1.0 .          # \u0628\u0646\u0627\u0621 \u0635\u0648\u0631\u0629 \u0645\u0646 Dockerfile\n\n# === \u0625\u062f\u0627\u0631\u0629 \u0627\u0644\u062d\u0627\u0648\u064a\u0627\u062a ===\ndocker run -d --name web nginx       # \u062a\u0634\u063a\u064a\u0644 \u062d\u0627\u0648\u064a\u0629 \u0641\u064a \u0627\u0644\u062e\u0644\u0641\u064a\u0629\ndocker run -d -p 8080:80 nginx       # \u062a\u0634\u063a\u064a\u0644 \u0645\u0639 \u0631\u0628\u0637 \u0627\u0644\u0645\u0646\u0641\u0630\ndocker ps                            # \u0639\u0631\u0636 \u0627\u0644\u062d\u0627\u0648\u064a\u0627\u062a \u0627\u0644\u0639\u0627\u0645\u0644\u0629\ndocker ps -a                         # \u0639\u0631\u0636 \u062c\u0645\u064a\u0639 \u0627\u0644\u062d\u0627\u0648\u064a\u0627\u062a\ndocker stop web                      # \u0625\u064a\u0642\u0627\u0641 \u062d\u0627\u0648\u064a\u0629\ndocker start web                     # \u062a\u0634\u063a\u064a\u0644 \u062d\u0627\u0648\u064a\u0629 \u0645\u062a\u0648\u0642\u0641\u0629\ndocker restart web                   # \u0625\u0639\u0627\u062f\u0629 \u062a\u0634\u063a\u064a\u0644\ndocker rm web                        # \u062d\u0630\u0641 \u062d\u0627\u0648\u064a\u0629\ndocker logs web                      # \u0639\u0631\u0636 \u0633\u062c\u0644\u0627\u062a \u0627\u0644\u062d\u0627\u0648\u064a\u0629\ndocker logs -f web                   # \u0645\u062a\u0627\u0628\u0639\u0629 \u0627\u0644\u0633\u062c\u0644\u0627\u062a \u0645\u0628\u0627\u0634\u0631\u0629\ndocker exec -it web bash             # \u0627\u0644\u062f\u062e\u0648\u0644 \u062f\u0627\u062e\u0644 \u0627\u0644\u062d\u0627\u0648\u064a\u0629\n\n# === \u0625\u062f\u0627\u0631\u0629 Volumes ===\ndocker volume create mydata          # \u0625\u0646\u0634\u0627\u0621 volume\ndocker volume ls                     # \u0639\u0631\u0636 volumes\ndocker run -v mydata:\/data nginx     # \u0631\u0628\u0637 volume \u0628\u062d\u0627\u0648\u064a\u0629\n\n# === \u0625\u062f\u0627\u0631\u0629 \u0627\u0644\u0634\u0628\u0643\u0627\u062a ===\ndocker network create mynet          # \u0625\u0646\u0634\u0627\u0621 \u0634\u0628\u0643\u0629\ndocker network ls                    # \u0639\u0631\u0636 \u0627\u0644\u0634\u0628\u0643\u0627\u062a\ndocker run --network mynet nginx     # \u062a\u0634\u063a\u064a\u0644 \u062d\u0627\u0648\u064a\u0629 \u0641\u064a \u0634\u0628\u0643\u0629 \u0645\u062d\u062f\u062f\u0629\n\n# === \u0627\u0644\u062a\u0646\u0638\u064a\u0641 ===\ndocker system prune -a               # \u062d\u0630\u0641 \u0643\u0644 \u0634\u064a\u0621 \u063a\u064a\u0631 \u0645\u0633\u062a\u062e\u062f\u0645\ndocker container prune               # \u062d\u0630\u0641 \u0627\u0644\u062d\u0627\u0648\u064a\u0627\u062a \u0627\u0644\u0645\u062a\u0648\u0642\u0641\u0629<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"section-7\">\u0643\u062a\u0627\u0628\u0629 Dockerfile \u0627\u062d\u062a\u0631\u0627\u0641\u064a<\/h2>\n\n\n\n<p>Dockerfile \u0647\u0648 \u0645\u0644\u0641 \u0646\u0635\u064a \u064a\u062d\u062a\u0648\u064a \u0639\u0644\u0649 \u062a\u0639\u0644\u064a\u0645\u0627\u062a \u0628\u0646\u0627\u0621 \u0635\u0648\u0631\u0629 Docker. \u0625\u0644\u064a\u0643 \u0645\u062b\u0627\u0644 \u0644\u062a\u0637\u0628\u064a\u0642 PHP:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code># \u0627\u0633\u062a\u062e\u062f\u0627\u0645 \u0635\u0648\u0631\u0629 PHP \u0627\u0644\u0631\u0633\u0645\u064a\u0629 \u0643\u0642\u0627\u0639\u062f\u0629\nFROM php:8.2-fpm-alpine\n\n# \u062a\u062b\u0628\u064a\u062a \u0627\u0644\u0625\u0636\u0627\u0641\u0627\u062a \u0627\u0644\u0645\u0637\u0644\u0648\u0628\u0629\nRUN apk add --no-cache \n    libpng-dev libjpeg-turbo-dev freetype-dev \n    &amp;&amp; docker-php-ext-configure gd --with-freetype --with-jpeg \n    &amp;&amp; docker-php-ext-install gd pdo pdo_mysql mysqli opcache\n\n# \u0646\u0633\u062e \u0625\u0639\u062f\u0627\u062f\u0627\u062a PHP \u0627\u0644\u0645\u062e\u0635\u0635\u0629\nCOPY php.ini \/usr\/local\/etc\/php\/conf.d\/custom.ini\n\n# \u062a\u062d\u062f\u064a\u062f \u0645\u062c\u0644\u062f \u0627\u0644\u0639\u0645\u0644\nWORKDIR \/var\/www\/html\n\n# \u0646\u0633\u062e \u0645\u0644\u0641\u0627\u062a \u0627\u0644\u062a\u0637\u0628\u064a\u0642\nCOPY --chown=www-data:www-data . .\n\n# \u062a\u0639\u0631\u064a\u0636 \u0627\u0644\u0645\u0646\u0641\u0630\nEXPOSE 9000\n\n# \u0627\u0644\u0623\u0645\u0631 \u0627\u0644\u0627\u0641\u062a\u0631\u0627\u0636\u064a\nCMD &#91;\"php-fpm\"]<\/code><\/pre>\n\n\n\n<p>\u0646\u0635\u0627\u0626\u062d \u0644\u0643\u062a\u0627\u0628\u0629 Dockerfile \u0627\u062d\u062a\u0631\u0627\u0641\u064a:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u0627\u0633\u062a\u062e\u062f\u0645 \u0635\u0648\u0631 Alpine (\u0623\u0635\u063a\u0631 \u062d\u062c\u0645\u0627\u064b \u0648\u0623\u0643\u062b\u0631 \u0623\u0645\u0627\u0646\u0627\u064b)<\/li>\n\n\n\n<li>\u0627\u062f\u0645\u062c \u0623\u0648\u0627\u0645\u0631 RUN \u0641\u064a \u0637\u0628\u0642\u0629 \u0648\u0627\u062d\u062f\u0629 \u0644\u062a\u0642\u0644\u064a\u0644 \u062d\u062c\u0645 \u0627\u0644\u0635\u0648\u0631\u0629<\/li>\n\n\n\n<li>\u0627\u0633\u062a\u062e\u062f\u0645 <code>.dockerignore<\/code> \u0644\u0627\u0633\u062a\u062b\u0646\u0627\u0621 \u0627\u0644\u0645\u0644\u0641\u0627\u062a \u063a\u064a\u0631 \u0627\u0644\u0636\u0631\u0648\u0631\u064a\u0629<\/li>\n\n\n\n<li>\u0636\u0639 \u0627\u0644\u062a\u0639\u0644\u064a\u0645\u0627\u062a \u0627\u0644\u062a\u064a \u062a\u062a\u063a\u064a\u0631 \u0643\u062b\u064a\u0631\u0627\u064b \u0641\u064a \u0627\u0644\u0646\u0647\u0627\u064a\u0629 \u0644\u0644\u0627\u0633\u062a\u0641\u0627\u062f\u0629 \u0645\u0646 \u0627\u0644\u0643\u0627\u0634<\/li>\n\n\n\n<li>\u0644\u0627 \u062a\u064f\u0634\u063a\u0651\u0644 \u0627\u0644\u062a\u0637\u0628\u064a\u0642 \u0628\u0635\u0644\u0627\u062d\u064a\u0627\u062a root \u062f\u0627\u062e\u0644 \u0627\u0644\u062d\u0627\u0648\u064a\u0629<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"section-8\">Docker Compose \u0644\u0625\u062f\u0627\u0631\u0629 \u0639\u062f\u0629 \u062d\u0627\u0648\u064a\u0627\u062a<\/h2>\n\n\n\n<p>Docker Compose \u064a\u062a\u064a\u062d \u0644\u0643 \u062a\u0639\u0631\u064a\u0641 \u0648\u062a\u0634\u063a\u064a\u0644 \u0639\u062f\u0629 \u062d\u0627\u0648\u064a\u0627\u062a \u0645\u0639\u0627\u064b \u0628\u0645\u0644\u0641 YAML \u0648\u0627\u062d\u062f. \u0645\u062b\u0627\u0644\u064a \u0644\u0644\u062a\u0637\u0628\u064a\u0642\u0627\u062a \u0627\u0644\u062a\u064a \u062a\u062d\u062a\u0627\u062c \u0623\u0643\u062b\u0631 \u0645\u0646 \u062e\u062f\u0645\u0629 (\u0645\u062b\u0644 \u0648\u064a\u0628 \u0633\u064a\u0631\u0641\u0631 + \u0642\u0627\u0639\u062f\u0629 \u0628\u064a\u0627\u0646\u0627\u062a + \u0643\u0627\u0634):<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code># docker-compose.yml\nversion: '3.8'\n\nservices:\n  # \u0633\u064a\u0631\u0641\u0631 Nginx\n  web:\n    image: nginx:alpine\n    ports:\n      - \"80:80\"\n      - \"443:443\"\n    volumes:\n      - .\/nginx.conf:\/etc\/nginx\/conf.d\/default.conf\n      - app-data:\/var\/www\/html\n    depends_on:\n      - php\n    restart: unless-stopped\n\n  # PHP-FPM\n  php:\n    build: .\n    volumes:\n      - app-data:\/var\/www\/html\n    depends_on:\n      - db\n    restart: unless-stopped\n\n  # \u0642\u0627\u0639\u062f\u0629 \u0627\u0644\u0628\u064a\u0627\u0646\u0627\u062a\n  db:\n    image: mysql:8.0\n    environment:\n      MYSQL_ROOT_PASSWORD: StrongRootPass123!\n      MYSQL_DATABASE: myapp\n      MYSQL_USER: appuser\n      MYSQL_PASSWORD: AppPass456!\n    volumes:\n      - db-data:\/var\/lib\/mysql\n    restart: unless-stopped\n\n  # Redis \u0644\u0644\u0643\u0627\u0634\n  redis:\n    image: redis:alpine\n    restart: unless-stopped\n\nvolumes:\n  app-data:\n  db-data:<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code># \u0623\u0648\u0627\u0645\u0631 Docker Compose\ndocker compose up -d              # \u062a\u0634\u063a\u064a\u0644 \u062c\u0645\u064a\u0639 \u0627\u0644\u062e\u062f\u0645\u0627\u062a\ndocker compose down               # \u0625\u064a\u0642\u0627\u0641 \u0648\u062d\u0630\u0641 \u0627\u0644\u062d\u0627\u0648\u064a\u0627\u062a\ndocker compose ps                 # \u0639\u0631\u0636 \u062d\u0627\u0644\u0629 \u0627\u0644\u062e\u062f\u0645\u0627\u062a\ndocker compose logs -f            # \u0645\u062a\u0627\u0628\u0639\u0629 \u0627\u0644\u0633\u062c\u0644\u0627\u062a\ndocker compose restart php        # \u0625\u0639\u0627\u062f\u0629 \u062a\u0634\u063a\u064a\u0644 \u062e\u062f\u0645\u0629 \u0645\u062d\u062f\u062f\u0629\ndocker compose exec php bash      # \u0627\u0644\u062f\u062e\u0648\u0644 \u0644\u062d\u0627\u0648\u064a\u0629 \u0645\u062d\u062f\u062f\u0629\ndocker compose pull               # \u062a\u062d\u062f\u064a\u062b \u0627\u0644\u0635\u0648\u0631<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"section-9\">\u062a\u0634\u063a\u064a\u0644 WordPress \u0628\u0627\u0633\u062a\u062e\u062f\u0627\u0645 Docker<\/h2>\n\n\n\n<p>\u0625\u0644\u064a\u0643 \u0645\u0644\u0641 Docker Compose \u0643\u0627\u0645\u0644 \u0644\u062a\u0634\u063a\u064a\u0644 \u0648\u0648\u0631\u062f\u0628\u0631\u064a\u0633 \u0645\u0639 MySQL \u0648Nginx:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code># docker-compose.yml \u0644\u0648\u0648\u0631\u062f\u0628\u0631\u064a\u0633\nversion: '3.8'\n\nservices:\n  wordpress:\n    image: wordpress:php8.2-fpm-alpine\n    environment:\n      WORDPRESS_DB_HOST: db:3306\n      WORDPRESS_DB_USER: wpuser\n      WORDPRESS_DB_PASSWORD: WpSecurePass2026!\n      WORDPRESS_DB_NAME: wordpress\n    volumes:\n      - wp-data:\/var\/www\/html\n    depends_on:\n      - db\n    restart: unless-stopped\n\n  db:\n    image: mysql:8.0\n    environment:\n      MYSQL_ROOT_PASSWORD: RootPass2026!\n      MYSQL_DATABASE: wordpress\n      MYSQL_USER: wpuser\n      MYSQL_PASSWORD: WpSecurePass2026!\n    volumes:\n      - db-data:\/var\/lib\/mysql\n    restart: unless-stopped\n\n  nginx:\n    image: nginx:alpine\n    ports:\n      - \"80:80\"\n    volumes:\n      - wp-data:\/var\/www\/html\n      - .\/nginx-wp.conf:\/etc\/nginx\/conf.d\/default.conf\n    depends_on:\n      - wordpress\n    restart: unless-stopped\n\nvolumes:\n  wp-data:\n  db-data:<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code># \u062a\u0634\u063a\u064a\u0644 \u0648\u0648\u0631\u062f\u0628\u0631\u064a\u0633\ndocker compose up -d\n\n# \u0627\u0644\u062a\u062d\u0642\u0642 \u0645\u0646 \u0639\u0645\u0644 \u0627\u0644\u062e\u062f\u0645\u0627\u062a\ndocker compose ps\n\n# \u0639\u0631\u0636 \u0633\u062c\u0644\u0627\u062a \u0648\u0648\u0631\u062f\u0628\u0631\u064a\u0633\ndocker compose logs -f wordpress\n\n# \u0646\u0633\u062e \u0627\u062d\u062a\u064a\u0627\u0637\u064a \u0644\u0642\u0627\u0639\u062f\u0629 \u0627\u0644\u0628\u064a\u0627\u0646\u0627\u062a\ndocker compose exec db mysqldump -u wpuser -pWpSecurePass2026! wordpress &gt; backup.sql<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"section-10\">\u0623\u0641\u0636\u0644 \u0627\u0644\u0645\u0645\u0627\u0631\u0633\u0627\u062a \u0644\u0623\u0645\u0627\u0646 Docker<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>\u0644\u0627 \u062a\u0633\u062a\u062e\u062f\u0645 root:<\/strong> \u0634\u063a\u0651\u0644 \u0627\u0644\u062a\u0637\u0628\u064a\u0642 \u0628\u0645\u0633\u062a\u062e\u062f\u0645 \u0639\u0627\u062f\u064a \u062f\u0627\u062e\u0644 \u0627\u0644\u062d\u0627\u0648\u064a\u0629 \u0628\u0627\u0633\u062a\u062e\u062f\u0627\u0645 <code>USER<\/code> \u0641\u064a Dockerfile<\/li>\n\n\n\n<li><strong>\u0627\u0633\u062a\u062e\u062f\u0645 \u0635\u0648\u0631 \u0631\u0633\u0645\u064a\u0629:<\/strong> \u062a\u062c\u0646\u0628 \u0627\u0644\u0635\u0648\u0631 \u063a\u064a\u0631 \u0627\u0644\u0645\u0648\u062b\u0648\u0642\u0629 \u0645\u0646 Docker Hub<\/li>\n\n\n\n<li><strong>\u062d\u062f\u0651\u062b \u0627\u0644\u0635\u0648\u0631 \u0628\u0627\u0633\u062a\u0645\u0631\u0627\u0631:<\/strong> \u0627\u0628\u0642\u0650 \u0627\u0644\u0635\u0648\u0631 \u0645\u062d\u062f\u0651\u062b\u0629 \u0644\u0633\u062f \u0627\u0644\u062b\u063a\u0631\u0627\u062a \u0627\u0644\u0623\u0645\u0646\u064a\u0629<\/li>\n\n\n\n<li><strong>\u0644\u0627 \u062a\u064f\u062e\u0632\u0651\u0646 \u0623\u0633\u0631\u0627\u0631 \u0641\u064a \u0627\u0644\u0635\u0648\u0631\u0629:<\/strong> \u0627\u0633\u062a\u062e\u062f\u0645 Docker Secrets \u0623\u0648 \u0645\u062a\u063a\u064a\u0631\u0627\u062a \u0627\u0644\u0628\u064a\u0626\u0629<\/li>\n\n\n\n<li><strong>\u062d\u062f\u0651\u062f \u0627\u0644\u0645\u0648\u0627\u0631\u062f:<\/strong> \u0636\u0639 \u062d\u062f\u0648\u062f \u0644\u0644\u0640 CPU \u0648\u0627\u0644\u0640 RAM \u0644\u0643\u0644 \u062d\u0627\u0648\u064a\u0629<\/li>\n\n\n\n<li><strong>\u0627\u0633\u062a\u062e\u062f\u0645 \u0634\u0628\u0643\u0627\u062a \u0645\u0639\u0632\u0648\u0644\u0629:<\/strong> \u0644\u0627 \u062a\u0639\u0631\u0651\u0636 \u062e\u062f\u0645\u0627\u062a \u062f\u0627\u062e\u0644\u064a\u0629 (\u0645\u062b\u0644 \u0642\u0627\u0639\u062f\u0629 \u0627\u0644\u0628\u064a\u0627\u0646\u0627\u062a) \u0644\u0644\u062e\u0627\u0631\u062c<\/li>\n\n\n\n<li><strong>\u0641\u0639\u0651\u0644 logging:<\/strong> \u0631\u0627\u0642\u0628 \u0633\u062c\u0644\u0627\u062a \u0627\u0644\u062d\u0627\u0648\u064a\u0627\u062a \u0628\u0634\u0643\u0644 \u062f\u0648\u0631\u064a<\/li>\n\n\n\n<li><strong>\u0627\u0641\u062d\u0635 \u0627\u0644\u0635\u0648\u0631:<\/strong> \u0627\u0633\u062a\u062e\u062f\u0645 \u0623\u062f\u0648\u0627\u062a \u0645\u062b\u0644 <code>docker scout<\/code> \u0644\u0643\u0634\u0641 \u0627\u0644\u062b\u063a\u0631\u0627\u062a<\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code># \u062a\u062d\u062f\u064a\u062f \u0645\u0648\u0627\u0631\u062f \u0627\u0644\u062d\u0627\u0648\u064a\u0629\ndocker run -d --name web \n  --memory=\"512m\" \n  --cpus=\"1.0\" \n  nginx\n\n# \u0641\u062d\u0635 \u0627\u0644\u0635\u0648\u0631\u0629 \u0644\u0644\u062b\u063a\u0631\u0627\u062a\ndocker scout cves nginx:alpine\n\n# \u0639\u062f\u0645 \u062a\u0634\u063a\u064a\u0644 \u0628\u0635\u0644\u0627\u062d\u064a\u0627\u062a root\ndocker run -d --user 1000:1000 nginx<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"section-11\">Docker \u0641\u064a \u0628\u064a\u0626\u0629 \u0627\u0644\u0625\u0646\u062a\u0627\u062c (Production)<\/h2>\n\n\n\n<p>\u0644\u0627\u0633\u062a\u062e\u062f\u0627\u0645 Docker \u0641\u064a \u0628\u064a\u0626\u0629 \u0627\u0644\u0625\u0646\u062a\u0627\u062c \u0628\u0634\u0643\u0644 \u0627\u062d\u062a\u0631\u0627\u0641\u064a:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>\u0627\u0633\u062a\u062e\u062f\u0645 Docker Compose:<\/strong> \u0644\u062a\u0639\u0631\u064a\u0641 \u0627\u0644\u0628\u064a\u0626\u0629 \u0628\u0627\u0644\u0643\u0627\u0645\u0644 \u0641\u064a \u0645\u0644\u0641 \u0648\u0627\u062d\u062f<\/li>\n\n\n\n<li><strong>\u0641\u0639\u0651\u0644 restart policy:<\/strong> \u0627\u0633\u062a\u062e\u062f\u0645 <code>restart: unless-stopped<\/code> \u0623\u0648 <code>restart: always<\/code><\/li>\n\n\n\n<li><strong>\u0627\u0633\u062a\u062e\u062f\u0645 Volumes \u0644\u0644\u0628\u064a\u0627\u0646\u0627\u062a:<\/strong> \u0644\u0627 \u062a\u062e\u0632\u0651\u0646 \u0628\u064a\u0627\u0646\u0627\u062a \u0645\u0647\u0645\u0629 \u062f\u0627\u062e\u0644 \u0627\u0644\u062d\u0627\u0648\u064a\u0629<\/li>\n\n\n\n<li><strong>\u0627\u0633\u062a\u062e\u062f\u0645 Reverse Proxy:<\/strong> \u0636\u0639 Nginx \u0623\u0648 Traefik \u0623\u0645\u0627\u0645 \u062a\u0637\u0628\u064a\u0642\u0627\u062a\u0643<\/li>\n\n\n\n<li><strong>\u0627\u0644\u0646\u0633\u062e \u0627\u0644\u0627\u062d\u062a\u064a\u0627\u0637\u064a:<\/strong> \u0627\u0646\u0633\u062e Volumes \u0648\u0642\u0648\u0627\u0639\u062f \u0627\u0644\u0628\u064a\u0627\u0646\u0627\u062a \u0628\u0634\u0643\u0644 \u062f\u0648\u0631\u064a<\/li>\n\n\n\n<li><strong>\u0627\u0644\u0645\u0631\u0627\u0642\u0628\u0629:<\/strong> \u0627\u0633\u062a\u062e\u062f\u0645 Portainer \u0644\u0625\u062f\u0627\u0631\u0629 Docker \u0628\u0648\u0627\u062c\u0647\u0629 \u0631\u0633\u0648\u0645\u064a\u0629<\/li>\n\n\n\n<li><strong>CI\/CD:<\/strong> \u0627\u0631\u0628\u0637 Docker \u0645\u0639 GitHub Actions \u0644\u0646\u0634\u0631 \u062a\u0644\u0642\u0627\u0626\u064a<\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code># \u062a\u062b\u0628\u064a\u062a Portainer \u0644\u0625\u062f\u0627\u0631\u0629 Docker \u0628\u0648\u0627\u062c\u0647\u0629 \u0648\u064a\u0628\ndocker volume create portainer_data\ndocker run -d -p 9443:9443 --name portainer \n  --restart=always \n  -v \/var\/run\/docker.sock:\/var\/run\/docker.sock \n  -v portainer_data:\/data \n  portainer\/portainer-ce:latest\n\n# \u0627\u0644\u0622\u0646 \u0627\u062f\u062e\u0644 https:\/\/server-ip:9443 \u0644\u0625\u062f\u0627\u0631\u0629 Docker<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"section-12\">\u0627\u0644\u062e\u0644\u0627\u0635\u0629<\/h2>\n\n\n\n<p>Docker \u063a\u064a\u0651\u0631 \u0637\u0631\u064a\u0642\u0629 \u062a\u0634\u063a\u064a\u0644 \u0648\u0646\u0634\u0631 \u0627\u0644\u062a\u0637\u0628\u064a\u0642\u0627\u062a \u0648\u0623\u0635\u0628\u062d \u0623\u062f\u0627\u0629 \u0644\u0627 \u063a\u0646\u0649 \u0639\u0646\u0647\u0627 \u0641\u064a 2026. \u0633\u0648\u0627\u0621 \u0643\u0646\u062a \u062a\u064f\u0634\u063a\u0651\u0644 \u0645\u0648\u0642\u0639 \u0648\u0648\u0631\u062f\u0628\u0631\u064a\u0633 \u0623\u0648 \u062a\u0637\u0628\u064a\u0642 SaaS \u0623\u0648 \u0645\u0634\u0631\u0648\u0639 AI \u0641\u0625\u0646 Docker \u064a\u0648\u0641\u0631 \u0644\u0643 \u0628\u064a\u0626\u0629 \u0645\u0639\u0632\u0648\u0644\u0629 \u0648\u0642\u0627\u0628\u0644\u0629 \u0644\u0644\u0646\u0642\u0644 \u0648\u0633\u0647\u0644\u0629 \u0627\u0644\u0625\u062f\u0627\u0631\u0629. \u0627\u0628\u062f\u0623 \u0628\u0627\u0644\u0623\u0633\u0627\u0633\u064a\u0627\u062a \u0648\u062a\u062f\u0631\u0651\u062c \u062d\u062a\u0649 \u062a\u0635\u0644 \u0644\u0627\u0633\u062a\u062e\u062f\u0627\u0645 Docker Compose \u0641\u064a \u0628\u064a\u0626\u0629 \u0627\u0644\u0625\u0646\u062a\u0627\u062c. \u0627\u0644\u0645\u0641\u062a\u0627\u062d \u0647\u0648 \u0627\u0644\u0645\u0645\u0627\u0631\u0633\u0629 \u0627\u0644\u0639\u0645\u0644\u064a\u0629.<\/p>\n\n\n\n<div style=\"border-right:4px solid #7c3aed;background:#f5f3ff;padding:1.5rem;border-radius:0 12px 12px 0;margin:2rem 0\">\n<p style=\"margin:0 0 .5rem;font-weight:700;color:#4f46e5\">\u0633\u064a\u0631\u0641\u0631\u0627\u062a VPS \u062c\u0627\u0647\u0632\u0629 \u0644\u0640 Docker \u0645\u0646 \u0645\u0631\u0627\u0645 \u0647\u0648\u0633\u062a<\/p>\n<p style=\"margin:0;color:#374151\">\u0633\u064a\u0631\u0641\u0631\u0627\u062a VPS \u0628\u0635\u0644\u0627\u062d\u064a\u0627\u062a root \u0643\u0627\u0645\u0644\u0629 \u0648\u062f\u0639\u0645 Docker \u0645\u0639 \u0623\u062f\u0627\u0621 \u0639\u0627\u0644\u064a \u0648\u0627\u0633\u062a\u0642\u0631\u0627\u0631 \u0645\u0645\u062a\u0627\u0632. \u0627\u0628\u062f\u0623 \u0645\u0646 <a href=\"https:\/\/maram.iq\" target=\"_blank\" rel=\"noopener\" style=\"color:#4f46e5;font-weight:600\">\u0647\u0646\u0627<\/a>.<\/p>\n<\/div>\n\n\n\n<h2 class=\"wp-block-heading\">\u0627\u0644\u0623\u0633\u0626\u0644\u0629 \u0627\u0644\u0634\u0627\u0626\u0639\u0629 \u062d\u0648\u0644 Docker<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">\u0647\u0644 Docker \u0645\u062c\u0627\u0646\u064a\u061f<\/h3>\n\n\n\n<p>\u0646\u0639\u0645 Docker Engine \u0645\u062c\u0627\u0646\u064a \u0648\u0645\u0641\u062a\u0648\u062d \u0627\u0644\u0645\u0635\u062f\u0631 \u0628\u0627\u0644\u0643\u0627\u0645\u0644. Docker Desktop \u0645\u062c\u0627\u0646\u064a \u0644\u0644\u0627\u0633\u062a\u062e\u062f\u0627\u0645 \u0627\u0644\u0634\u062e\u0635\u064a \u0648\u0627\u0644\u0634\u0631\u0643\u0627\u062a \u0627\u0644\u0635\u063a\u064a\u0631\u0629 (\u0623\u0642\u0644 \u0645\u0646 250 \u0645\u0648\u0638\u0641). \u0639\u0644\u0649 \u0627\u0644\u0633\u064a\u0631\u0641\u0631\u0627\u062a \u062a\u0633\u062a\u062e\u062f\u0645 Docker Engine \u0627\u0644\u0645\u062c\u0627\u0646\u064a \u0645\u0628\u0627\u0634\u0631\u0629.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">\u0647\u0644 Docker \u064a\u0628\u0637\u0626 \u0627\u0644\u0623\u062f\u0627\u0621\u061f<\/h3>\n\n\n\n<p>\u0644\u0627. Docker \u064a\u0639\u0645\u0644 \u0639\u0644\u0649 \u0645\u0633\u062a\u0648\u0649 \u0646\u0648\u0627\u0629 \u0627\u0644\u0646\u0638\u0627\u0645 \u0648\u0644\u0627 \u064a\u0636\u064a\u0641 overhead \u0643\u0628\u064a\u0631 \u0645\u062b\u0644 \u0627\u0644\u0623\u062c\u0647\u0632\u0629 \u0627\u0644\u0627\u0641\u062a\u0631\u0627\u0636\u064a\u0629. \u0627\u0644\u0623\u062f\u0627\u0621 \u064a\u0643\u0648\u0646 95-98% \u0645\u0646 \u0627\u0644\u0623\u062f\u0627\u0621 \u0627\u0644\u0623\u0635\u0644\u064a. \u0627\u0644\u0641\u0631\u0642 \u063a\u064a\u0631 \u0645\u062d\u0633\u0648\u0633 \u0639\u0645\u0644\u064a\u0627\u064b.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">\u0647\u0644 \u064a\u0645\u0643\u0646\u0646\u064a \u0627\u0633\u062a\u062e\u062f\u0627\u0645 Docker \u0639\u0644\u0649 \u0627\u0633\u062a\u0636\u0627\u0641\u0629 \u0645\u0634\u062a\u0631\u0643\u0629\u061f<\/h3>\n\n\n\n<p>\u0644\u0627. Docker \u064a\u062d\u062a\u0627\u062c \u0635\u0644\u0627\u062d\u064a\u0627\u062a root \u0644\u0630\u0644\u0643 \u062a\u062d\u062a\u0627\u062c VPS \u0623\u0648 \u0633\u064a\u0631\u0641\u0631 \u0645\u062e\u0635\u0635. \u0641\u064a \u0645\u0631\u0627\u0645 \u0647\u0648\u0633\u062a \u062a\u0648\u0641\u0631 \u0633\u064a\u0631\u0641\u0631\u0627\u062a VPS \u0628\u0635\u0644\u0627\u062d\u064a\u0627\u062a \u0643\u0627\u0645\u0644\u0629 \u062a\u062f\u0639\u0645 Docker.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">\u0645\u0627\u0630\u0627 \u064a\u062d\u062f\u062b \u0644\u0644\u0628\u064a\u0627\u0646\u0627\u062a \u0625\u0630\u0627 \u062d\u0630\u0641\u062a \u0627\u0644\u062d\u0627\u0648\u064a\u0629\u061f<\/h3>\n\n\n\n<p>\u0627\u0644\u0628\u064a\u0627\u0646\u0627\u062a \u062f\u0627\u062e\u0644 \u0627\u0644\u062d\u0627\u0648\u064a\u0629 \u062a\u064f\u062d\u0630\u0641 \u0645\u0639\u0647\u0627. \u0644\u0630\u0644\u0643 \u064a\u062c\u0628 \u0627\u0633\u062a\u062e\u062f\u0627\u0645 Docker Volumes \u0644\u062a\u062e\u0632\u064a\u0646 \u0627\u0644\u0628\u064a\u0627\u0646\u0627\u062a \u0627\u0644\u0645\u0647\u0645\u0629 (\u0642\u0648\u0627\u0639\u062f \u0627\u0644\u0628\u064a\u0627\u0646\u0627\u062a \u0648\u0627\u0644\u0645\u0644\u0641\u0627\u062a \u0627\u0644\u0645\u0631\u0641\u0648\u0639\u0629) \u0628\u0634\u0643\u0644 \u062f\u0627\u0626\u0645 \u062e\u0627\u0631\u062c \u0627\u0644\u062d\u0627\u0648\u064a\u0629.<\/p>\n\n\n\n<div style=\"background:#f0fdf4;border:1px solid #bbf7d0;border-radius:12px;padding:1.5rem;margin:1.5rem 0;\"><p style=\"font-weight:700;margin-bottom:.75rem;\">\u0645\u0642\u0627\u0644\u0627\u062a \u0630\u0627\u062a \u0635\u0644\u0629<\/p><ul style=\"padding-right:1.25rem;margin:0;\"><li style=\"padding:.25rem 0;\"><a href=\"https:\/\/maram.iq\/blogs\/%d8%aa%d8%ae%d8%aa%d8%a7%d8%b1-%d8%a7%d8%b3%d9%85-%d9%86%d8%b7%d8%a7%d9%82-%d9%85%d8%ab%d8%a7%d9%84%d9%8a-%d9%84%d9%85%d9%88%d9%82%d8%b9%d9%83-%d8%a7%d9%84%d8%a5%d9%84%d9%83%d8%aa%d8%b1%d9%88%d9%86\/\">\u0643\u064a\u0641 \u062a\u062e\u062a\u0627\u0631 \u0627\u0633\u0645 \u0646\u0637\u0627\u0642 \u0645\u062b\u0627\u0644\u064a \u0644\u0645\u0648\u0642\u0639\u0643 \u0627\u0644\u0625\u0644\u0643\u062a\u0631\u0648\u0646\u064a<\/a><\/li><li style=\"padding:.25rem 0;\"><a href=\"https:\/\/maram.iq\/blogs\/gpu-server-%d9%88%d9%84%d9%85%d8%a7%d8%b0%d8%a7-%d8%aa%d8%ad%d8%aa%d8%a7%d8%ac%d9%87\/\">\u0645\u0627 \u0647\u0648 GPU Server \u0648\u0644\u0645\u0627\u0630\u0627 \u062a\u062d\u062a\u0627\u062c\u0647<\/a><\/li><li style=\"padding:.25rem 0;\"><a href=\"https:\/\/maram.iq\/blogs\/%d9%83%d9%8a%d9%81-%d8%aa%d8%ac%d8%b9%d9%84-%d9%85%d9%88%d9%82%d8%b9%d9%83-%d8%a3%d8%b3%d8%b1%d8%b9-10-%d9%85%d8%b1%d8%a7%d8%aa-%d8%a8%d8%a7%d8%b3%d8%aa%d8%ae%d8%af%d8%a7%d9%85-%d8%a7%d9%84%d8%a8\/\">\u0643\u064a\u0641 \u062a\u062c\u0639\u0644 \u0645\u0648\u0642\u0639\u0643 \u0623\u0633\u0631\u0639 10 \u0645\u0631\u0627\u062a \u0628\u0627\u0633\u062a\u062e\u062f\u0627\u0645 \u0627\u0644\u0628\u0646\u064a\u0629 \u0627\u0644\u0635\u062d\u064a\u062d\u0629\u061f<\/a><\/li><\/ul><\/div>\n\n\n\n\n<div style=\"background:#f0fdf4;border:1px solid #bbf7d0;border-radius:12px;padding:1.5rem;margin:1.5rem 0;\"><p style=\"font-weight:700;margin-bottom:.75rem;\">\u0645\u0642\u0627\u0644\u0627\u062a \u0630\u0627\u062a \u0635\u0644\u0629<\/p><ul style=\"padding-right:1.25rem;margin:0;\"><li style=\"padding:.25rem 0;\"><a href=\"https:\/\/maram.iq\/blogs\/%d8%ad%d9%84-%d9%85%d8%b4%d8%a7%d9%83%d9%84-%d8%a8%d8%b7%d8%a1-%d9%88%d9%88%d8%b1%d8%af%d8%a8%d8%b1%d9%8a%d8%b3-%d8%a7%d9%84%d8%b4%d8%a7%d8%a6%d8%b9%d8%a9\/\">\u062d\u0644 \u0645\u0634\u0627\u0643\u0644 \u0628\u0637\u0621 \u0648\u0648\u0631\u062f\u0628\u0631\u064a\u0633 \u0627\u0644\u0634\u0627\u0626\u0639\u0629<\/a><\/li><li style=\"padding:.25rem 0;\"><a href=\"https:\/\/maram.iq\/blogs\/%d9%84%d9%85%d8%a7%d8%b0%d8%a7-%d8%aa%d8%b9%d8%aa%d9%85%d8%af-%d8%a7%d9%84%d8%a8%d9%86%d9%8a%d8%a9-%d8%a7%d9%84%d8%aa%d8%ad%d8%aa%d9%8a%d8%a9-%d8%a7%d9%84%d8%ad%d8%af%d9%8a%d8%ab%d8%a9-%d8%b9%d9%84\/\">\u0644\u0645\u0627\u0630\u0627 \u062a\u0639\u062a\u0645\u062f \u0627\u0644\u0628\u0646\u064a\u0629 \u0627\u0644\u062a\u062d\u062a\u064a\u0629 \u0627\u0644\u062d\u062f\u064a\u062b\u0629 \u0639\u0644\u0649 \u0645\u0639\u0627\u0644\u062c\u0627\u062a AMD EPYC\u061f<\/a><\/li><li style=\"padding:.25rem 0;\"><a href=\"https:\/\/maram.iq\/blogs\/%d8%b4%d8%b1%d9%83%d8%a7%d8%aa-%d8%a7%d8%b3%d8%aa%d8%b6%d8%a7%d9%81%d8%a9\/\">\u0623\u0641\u0636\u0644 \u0634\u0631\u0643\u0627\u062a \u0627\u0633\u062a\u0636\u0627\u0641\u0629 \u0645\u0648\u0627\u0642\u0639 \u0627\u0644\u0648\u064a\u0628 \u0641\u064a \u0627\u0644\u0639\u0631\u0627\u0642 2024 &#8211; \u0634\u0631\u0643\u0629 \u0627\u0644\u0645\u0631\u0627\u0645<\/a><\/li><\/ul><\/div>\n\n","protected":false},"excerpt":{"rendered":"<p>Docker \u0648 \u0627\u0644\u062d\u0627\u0648\u064a\u0627\u062a \u0623\u0635\u0628\u062d\u0627 \u0645\u0646 \u0627\u0644\u0623\u062f\u0648\u0627\u062a \u0627\u0644\u0623\u0633\u0627\u0633\u064a\u0629 \u0641\u064a \u0639\u0627\u0644\u0645 \u0625\u062f\u0627\u0631\u0629 \u0627\u0644\u0633\u064a\u0631\u0641\u0631\u0627\u062a \u0648\u062a\u0637\u0648\u064a\u0631 \u0627\u0644\u062a\u0637\u0628\u064a\u0642\u0627\u062a \u0641\u064a 2026. \u0633\u0648\u0627\u0621 \u0643\u0646\u062a \u0645\u0637\u0648\u0631 \u0648\u064a\u0628 \u0623\u0648 \u0645\u062f\u064a\u0631 \u0633\u064a\u0631\u0641\u0631\u0627\u062a \u0641\u0625\u0646 Docker \u064a\u064f\u063a\u064a\u0651\u0631 \u0637\u0631\u064a\u0642\u0629 \u062a\u0634\u063a\u064a\u0644 \u0648\u0646\u0634\u0631 \u0627\u0644\u062a\u0637\u0628\u064a\u0642\u0627\u062a \u0628\u0634\u0643\u0644&#8230;<\/p>\n","protected":false},"author":1,"featured_media":2981,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[321],"tags":[278,333,335,174,336,176,271,162,144,325,48,152,141,178,334,158,337,143,151,140,157,159],"class_list":["post-2929","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-docker-containers","tag-devops","tag-docker","tag-docker-compose","tag-linux","tag-mysql-tag","tag-mysql","tag-nginx","tag-php","tag-vps","tag-vps-tag","tag-wordpress","tag-152","tag-141","tag-178","tag-containers","tag-158","tag-servers","tag-143","tag--ssl","tag-140","tag-157","tag-159"],"_links":{"self":[{"href":"https:\/\/maram.iq\/blogs\/wp-json\/wp\/v2\/posts\/2929","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/maram.iq\/blogs\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/maram.iq\/blogs\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/maram.iq\/blogs\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/maram.iq\/blogs\/wp-json\/wp\/v2\/comments?post=2929"}],"version-history":[{"count":5,"href":"https:\/\/maram.iq\/blogs\/wp-json\/wp\/v2\/posts\/2929\/revisions"}],"predecessor-version":[{"id":3008,"href":"https:\/\/maram.iq\/blogs\/wp-json\/wp\/v2\/posts\/2929\/revisions\/3008"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/maram.iq\/blogs\/wp-json\/wp\/v2\/media\/2981"}],"wp:attachment":[{"href":"https:\/\/maram.iq\/blogs\/wp-json\/wp\/v2\/media?parent=2929"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/maram.iq\/blogs\/wp-json\/wp\/v2\/categories?post=2929"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/maram.iq\/blogs\/wp-json\/wp\/v2\/tags?post=2929"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}