{"id":2991,"date":"2026-04-25T09:36:25","date_gmt":"2026-04-25T09:36:25","guid":{"rendered":"https:\/\/maram.iq\/blogs\/?p=2991"},"modified":"2026-04-25T14:26:37","modified_gmt":"2026-04-25T11:26:37","slug":"10-%d8%a3%d9%88%d8%a7%d9%85%d8%b1-docker-%d9%8a%d8%ad%d8%aa%d8%a7%d8%ac%d9%87%d8%a7-%d9%85%d8%af%d9%8a%d8%b1-%d8%b3%d9%8a%d8%b1%d9%81%d8%b1","status":"publish","type":"post","link":"https:\/\/maram.iq\/blogs\/10-%d8%a3%d9%88%d8%a7%d9%85%d8%b1-docker-%d9%8a%d8%ad%d8%aa%d8%a7%d8%ac%d9%87%d8%a7-%d9%85%d8%af%d9%8a%d8%b1-%d8%b3%d9%8a%d8%b1%d9%81%d8%b1\/","title":{"rendered":"10 \u0623\u0648\u0627\u0645\u0631 Docker \u064a\u062d\u062a\u0627\u062c\u0647\u0627 \u0643\u0644 \u0645\u062f\u064a\u0631 \u0633\u064a\u0631\u0641\u0631 \u064a\u0648\u0645\u064a\u0627\u064b \u0641\u064a 2026"},"content":{"rendered":"\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\">\ud83d\udc33<\/p>\n<h2 style=\"color:#fff!important;font-size:1.5rem;margin:0 0 .5rem\" id=\"section-1\">10 \u0623\u0648\u0627\u0645\u0631 Docker \u064a\u062d\u062a\u0627\u062c\u0647\u0627 \u0643\u0644 \u0645\u062f\u064a\u0631 \u0633\u064a\u0631\u0641\u0631 \u064a\u0648\u0645\u064a\u0627\u064b \u0641\u064a 2026<\/h2>\n<p style=\"margin:0\">\u062f\u0644\u064a\u0644 \u0639\u0645\u0644\u064a \u0644\u0623\u0647\u0645 \u0623\u0648\u0627\u0645\u0631 Docker \u0645\u0639 \u0623\u0645\u062b\u0644\u0629 \u062d\u0642\u064a\u0642\u064a\u0629 \u0648\u062d\u0627\u0644\u0627\u062a \u0627\u0633\u062a\u062e\u062f\u0627\u0645 \u064a\u0648\u0645\u064a\u0629<\/p>\n<\/div>\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-2\" style=\"color:#4f46e5;text-decoration:none;\">&#8592; \u0644\u0645\u0627\u0630\u0627 \u0623\u0648\u0627\u0645\u0631 Docker \u0645\u0647\u0645\u0629<\/a><\/li><li style=\"padding:.25rem 0;\"><a href=\"#section-3\" style=\"color:#4f46e5;text-decoration:none;\">&#8592; docker run<\/a><\/li><li style=\"padding:.25rem 0;\"><a href=\"#section-4\" style=\"color:#4f46e5;text-decoration:none;\">&#8592; docker ps \u0648 logs<\/a><\/li><li style=\"padding:.25rem 0;\"><a href=\"#section-5\" style=\"color:#4f46e5;text-decoration:none;\">&#8592; docker exec<\/a><\/li><li style=\"padding:.25rem 0;\"><a href=\"#section-6\" style=\"color:#4f46e5;text-decoration:none;\">&#8592; docker build<\/a><\/li><li style=\"padding:.25rem 0;\"><a href=\"#section-7\" style=\"color:#4f46e5;text-decoration:none;\">&#8592; docker compose<\/a><\/li><li style=\"padding:.25rem 0;\"><a href=\"#section-8\" style=\"color:#4f46e5;text-decoration:none;\">&#8592; docker volume<\/a><\/li><li style=\"padding:.25rem 0;\"><a href=\"#section-9\" style=\"color:#4f46e5;text-decoration:none;\">&#8592; docker network<\/a><\/li><li style=\"padding:.25rem 0;\"><a href=\"#section-10\" style=\"color:#4f46e5;text-decoration:none;\">&#8592; docker system prune<\/a><\/li><li style=\"padding:.25rem 0;\"><a href=\"#section-11\" style=\"color:#4f46e5;text-decoration:none;\">&#8592; docker inspect<\/a><\/li><li style=\"padding:.25rem 0;\"><a href=\"#section-12\" style=\"color:#4f46e5;text-decoration:none;\">&#8592; \u0646\u0635\u0627\u0626\u062d \u0644\u062a\u0633\u0631\u064a\u0639 \u0627\u0644\u0639\u0645\u0644 \u0645\u0639 Docker<\/a><\/li><li style=\"padding:.25rem 0;\"><a href=\"#section-13\" style=\"color:#4f46e5;text-decoration:none;\">&#8592; \u0627\u0644\u062e\u0644\u0627\u0635\u0629<\/a><\/li><li style=\"padding:.25rem 0;\"><a href=\"#section-14\" style=\"color:#4f46e5;text-decoration:none;\">&#8592; \u0627\u0644\u0623\u0633\u0626\u0644\u0629 \u0627\u0644\u0634\u0627\u0626\u0639\u0629<\/a><\/li><\/ul><\/div>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"section-2\">\u0644\u0645\u0627\u0630\u0627 \u0623\u0648\u0627\u0645\u0631 Docker \u0645\u0647\u0645\u0629<\/h2>\n\n\n\n<p>\u0623\u0635\u0628\u062d Docker \u0627\u0644\u0623\u062f\u0627\u0629 \u0627\u0644\u0642\u064a\u0627\u0633\u064a\u0629 \u0644\u062a\u0634\u063a\u064a\u0644 \u0627\u0644\u062a\u0637\u0628\u064a\u0642\u0627\u062a \u0648\u0625\u062f\u0627\u0631\u062a\u0647\u0627 \u0639\u0644\u0649 \u0627\u0644\u0633\u064a\u0631\u0641\u0631\u0627\u062a \u0627\u0644\u062d\u062f\u064a\u062b\u0629. \u0633\u0648\u0627\u0621 \u0643\u0646\u062a \u062a\u062f\u064a\u0631 \u0645\u0648\u0642\u0639 WordPress \u0623\u0648 \u062a\u0637\u0628\u064a\u0642 Node.js \u0623\u0648 \u0642\u0627\u0639\u062f\u0629 \u0628\u064a\u0627\u0646\u0627\u062a PostgreSQL\u060c \u0641\u0625\u0646 \u0625\u062a\u0642\u0627\u0646 \u0623\u0648\u0627\u0645\u0631 Docker \u0627\u0644\u0623\u0633\u0627\u0633\u064a\u0629 \u0633\u064a\u062c\u0639\u0644 \u0639\u0645\u0644\u0643 \u0627\u0644\u064a\u0648\u0645\u064a \u0623\u0633\u0631\u0639 \u0648\u0623\u0643\u062b\u0631 \u0643\u0641\u0627\u0621\u0629.<\/p>\n\n\n\n<p>\u0648\u0641\u0642\u0627\u064b \u0644\u0640 <a href=\"https:\/\/www.docker.com\/resources\/what-container\/\" target=\"_blank\" rel=\"noopener nofollow\">Docker \u0627\u0644\u0631\u0633\u0645\u064a<\/a>\u060c \u0623\u0643\u062b\u0631 \u0645\u0646 20 \u0645\u0644\u064a\u0648\u0646 \u0645\u0637\u0648\u0631 \u064a\u0633\u062a\u062e\u062f\u0645\u0648\u0646 Docker \u0634\u0647\u0631\u064a\u0627\u064b. \u0641\u064a \u0647\u0630\u0627 \u0627\u0644\u062f\u0644\u064a\u0644\u060c \u0633\u0646\u062a\u0646\u0627\u0648\u0644 \u0623\u0647\u0645 10 \u0623\u0648\u0627\u0645\u0631 Docker \u0627\u0644\u062a\u064a \u0633\u062a\u0633\u062a\u062e\u062f\u0645\u0647\u0627 \u064a\u0648\u0645\u064a\u0627\u064b \u0643\u0645\u062f\u064a\u0631 \u0633\u064a\u0631\u0641\u0631\u060c \u0645\u0639 \u0623\u0645\u062b\u0644\u0629 \u0639\u0645\u0644\u064a\u0629 \u0648\u062d\u0627\u0644\u0627\u062a \u0627\u0633\u062a\u062e\u062f\u0627\u0645 \u062d\u0642\u064a\u0642\u064a\u0629.<\/p>\n\n\n\n<p>\u0625\u0630\u0627 \u0643\u0646\u062a \u0645\u0628\u062a\u062f\u0626\u0627\u064b \u0641\u064a Docker\u060c \u0644\u0627 \u062a\u0642\u0644\u0642. \u0633\u0646\u0634\u0631\u062d \u0643\u0644 \u0623\u0645\u0631 \u0645\u0639 \u062e\u064a\u0627\u0631\u0627\u062a\u0647 \u0627\u0644\u0623\u0643\u062b\u0631 \u0627\u0633\u062a\u062e\u062f\u0627\u0645\u0627\u064b \u0648\u0623\u0645\u062b\u0644\u0629 \u064a\u0645\u0643\u0646\u0643 \u062a\u0637\u0628\u064a\u0642\u0647\u0627 \u0645\u0628\u0627\u0634\u0631\u0629 \u0639\u0644\u0649 \u0633\u064a\u0631\u0641\u0631\u0643.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"section-3\">1. docker run &#8211; \u062a\u0634\u063a\u064a\u0644 \u0627\u0644\u062d\u0627\u0648\u064a\u0627\u062a<\/h2>\n\n\n\n<p>\u0623\u0645\u0631 docker run \u0647\u0648 \u0623\u0648\u0644 \u0623\u0648\u0627\u0645\u0631 Docker \u0627\u0644\u062a\u064a \u0633\u062a\u062a\u0639\u0644\u0645\u0647\u0627 \u0648\u0623\u0643\u062b\u0631\u0647\u0627 \u0627\u0633\u062a\u062e\u062f\u0627\u0645\u0627\u064b. \u064a\u0642\u0648\u0645 \u0628\u0625\u0646\u0634\u0627\u0621 \u062d\u0627\u0648\u064a\u0629 \u062c\u062f\u064a\u062f\u0629 \u0645\u0646 \u0635\u0648\u0631\u0629 (image) \u0648\u062a\u0634\u063a\u064a\u0644\u0647\u0627.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">\u0627\u0644\u0635\u064a\u063a\u0629 \u0627\u0644\u0623\u0633\u0627\u0633\u064a\u0629<\/h3>\n\n\n\n<pre class=\"wp-block-code\"><code># \u062a\u0634\u063a\u064a\u0644 \u062d\u0627\u0648\u064a\u0629 \u0628\u0633\u064a\u0637\u0629\ndocker run nginx\n\n# \u062a\u0634\u063a\u064a\u0644 \u0641\u064a \u0627\u0644\u062e\u0644\u0641\u064a\u0629 \u0645\u0639 \u0631\u0628\u0637 \u0627\u0644\u0645\u0646\u0627\u0641\u0630\ndocker run -d --name my-nginx -p 80:80 nginx:latest\n\n# \u062a\u0634\u063a\u064a\u0644 \u0645\u0639 \u0645\u062a\u063a\u064a\u0631\u0627\u062a \u0627\u0644\u0628\u064a\u0626\u0629 \u0648\u0631\u0628\u0637 \u0645\u062c\u0644\u062f\ndocker run -d \n  --name my-wordpress \n  -p 8080:80 \n  -e WORDPRESS_DB_HOST=db \n  -e WORDPRESS_DB_USER=wp_user \n  -e WORDPRESS_DB_PASSWORD=secure_pass \n  -v wordpress_data:\/var\/www\/html \n  wordpress:latest<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">\u062e\u064a\u0627\u0631\u0627\u062a \u0645\u0647\u0645\u0629<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>-d:<\/strong> \u062a\u0634\u063a\u064a\u0644 \u0641\u064a \u0627\u0644\u062e\u0644\u0641\u064a\u0629 (detached mode)<\/li>\n\n\n\n<li><strong>&#8211;name:<\/strong> \u062a\u0633\u0645\u064a\u0629 \u0627\u0644\u062d\u0627\u0648\u064a\u0629 \u0644\u0633\u0647\u0648\u0644\u0629 \u0627\u0644\u0625\u062f\u0627\u0631\u0629<\/li>\n\n\n\n<li><strong>-p host:container:<\/strong> \u0631\u0628\u0637 \u0627\u0644\u0645\u0646\u0627\u0641\u0630<\/li>\n\n\n\n<li><strong>-v:<\/strong> \u0631\u0628\u0637 \u0645\u062c\u0644\u062f \u0623\u0648 volume \u0644\u0644\u0628\u064a\u0627\u0646\u0627\u062a \u0627\u0644\u062f\u0627\u0626\u0645\u0629<\/li>\n\n\n\n<li><strong>-e:<\/strong> \u062a\u0639\u064a\u064a\u0646 \u0645\u062a\u063a\u064a\u0631\u0627\u062a \u0627\u0644\u0628\u064a\u0626\u0629<\/li>\n\n\n\n<li><strong>&#8211;restart unless-stopped:<\/strong> \u0625\u0639\u0627\u062f\u0629 \u062a\u0634\u063a\u064a\u0644 \u062a\u0644\u0642\u0627\u0626\u064a\u0629<\/li>\n\n\n\n<li><strong>&#8211;memory 512m:<\/strong> \u062a\u062d\u062f\u064a\u062f \u0627\u0644\u0630\u0627\u0643\u0631\u0629 \u0627\u0644\u0642\u0635\u0648\u0649<\/li>\n<\/ul>\n\n\n\n<p>\u0645\u0646 \u0623\u0647\u0645 \u0623\u0648\u0627\u0645\u0631 Docker \u0627\u0644\u062a\u064a \u064a\u062c\u0628 \u0625\u062a\u0642\u0627\u0646\u0647\u0627\u060c \u062d\u064a\u062b \u0623\u0646 \u062e\u064a\u0627\u0631\u0627\u062a docker run \u062a\u062d\u062f\u062f \u0643\u064a\u0641\u064a\u0629 \u0639\u0645\u0644 \u0627\u0644\u062d\u0627\u0648\u064a\u0629 \u0628\u0627\u0644\u0643\u0627\u0645\u0644.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"section-4\">2. docker ps \u0648 docker logs &#8211; \u0627\u0644\u0645\u0631\u0627\u0642\u0628\u0629<\/h2>\n\n\n\n<p>\u0645\u0646 \u0623\u0648\u0627\u0645\u0631 Docker \u0627\u0644\u0623\u0633\u0627\u0633\u064a\u0629 \u0644\u0644\u0645\u0631\u0627\u0642\u0628\u0629 \u0627\u0644\u064a\u0648\u0645\u064a\u0629. docker ps \u064a\u0639\u0631\u0636 \u0627\u0644\u062d\u0627\u0648\u064a\u0627\u062a \u0627\u0644\u0639\u0627\u0645\u0644\u0629\u060c \u0648 docker logs \u064a\u0639\u0631\u0636 \u0633\u062c\u0644\u0627\u062a \u0627\u0644\u062d\u0627\u0648\u064a\u0629.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">\u0639\u0631\u0636 \u0627\u0644\u062d\u0627\u0648\u064a\u0627\u062a<\/h3>\n\n\n\n<pre class=\"wp-block-code\"><code># \u0639\u0631\u0636 \u0627\u0644\u062d\u0627\u0648\u064a\u0627\u062a \u0627\u0644\u0639\u0627\u0645\u0644\u0629\ndocker ps\n\n# \u0639\u0631\u0636 \u062c\u0645\u064a\u0639 \u0627\u0644\u062d\u0627\u0648\u064a\u0627\u062a (\u0628\u0645\u0627 \u0641\u064a\u0647\u0627 \u0627\u0644\u0645\u062a\u0648\u0642\u0641\u0629)\ndocker ps -a\n\n# \u0639\u0631\u0636 \u0645\u064f\u062e\u0635\u0635 \u0645\u0639 \u062a\u0646\u0633\u064a\u0642\ndocker ps --format \"table {{.Names}}t{{.Status}}t{{.Ports}}t{{.Size}}\"\n\n# \u0641\u0644\u062a\u0631\u0629 \u062d\u0633\u0628 \u0627\u0644\u062d\u0627\u0644\u0629\ndocker ps --filter \"status=exited\"<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">\u0642\u0631\u0627\u0621\u0629 \u0627\u0644\u0633\u062c\u0644\u0627\u062a<\/h3>\n\n\n\n<pre class=\"wp-block-code\"><code># \u0622\u062e\u0631 100 \u0633\u0637\u0631 \u0645\u0646 \u0627\u0644\u0633\u062c\u0644\u0627\u062a\ndocker logs --tail 100 my-nginx\n\n# \u0645\u062a\u0627\u0628\u0639\u0629 \u0627\u0644\u0633\u062c\u0644\u0627\u062a \u0645\u0628\u0627\u0634\u0631\u0629 (\u0645\u062b\u0644 tail -f)\ndocker logs -f my-nginx\n\n# \u0633\u062c\u0644\u0627\u062a \u0628\u062a\u0627\u0631\u064a\u062e \u0645\u062d\u062f\u062f\ndocker logs --since \"2026-04-24T00:00:00\" my-nginx\n\n# \u0633\u062c\u0644\u0627\u062a \u0645\u0639 \u0627\u0644\u0637\u0648\u0627\u0628\u0639 \u0627\u0644\u0632\u0645\u0646\u064a\u0629\ndocker logs -t --tail 50 my-nginx<\/code><\/pre>\n\n\n\n<p>\u0646\u0635\u064a\u062d\u0629: \u0627\u0633\u062a\u062e\u062f\u0645 docker logs -f \u0623\u062b\u0646\u0627\u0621 \u062a\u0634\u062e\u064a\u0635 \u0627\u0644\u0645\u0634\u0627\u0643\u0644 \u0644\u0645\u062a\u0627\u0628\u0639\u0629 \u0627\u0644\u0633\u062c\u0644\u0627\u062a \u0641\u064a \u0627\u0644\u0648\u0642\u062a \u0627\u0644\u062d\u0642\u064a\u0642\u064a.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"section-5\">3. docker exec &#8211; \u062a\u0646\u0641\u064a\u0630 \u0623\u0648\u0627\u0645\u0631 \u062f\u0627\u062e\u0644 \u0627\u0644\u062d\u0627\u0648\u064a\u0629<\/h2>\n\n\n\n<p>docker exec \u0645\u0646 \u0623\u0648\u0627\u0645\u0631 Docker \u0627\u0644\u0636\u0631\u0648\u0631\u064a\u0629 \u0644\u062a\u0634\u062e\u064a\u0635 \u0627\u0644\u0645\u0634\u0627\u0643\u0644 \u0648\u0625\u062c\u0631\u0627\u0621 \u062a\u0639\u062f\u064a\u0644\u0627\u062a \u062f\u0627\u062e\u0644 \u0627\u0644\u062d\u0627\u0648\u064a\u0629 \u0623\u062b\u0646\u0627\u0621 \u062a\u0634\u063a\u064a\u0644\u0647\u0627.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code># \u0641\u062a\u062d shell \u062a\u0641\u0627\u0639\u0644\u064a \u062f\u0627\u062e\u0644 \u0627\u0644\u062d\u0627\u0648\u064a\u0629\ndocker exec -it my-nginx bash\n\n# \u062a\u0646\u0641\u064a\u0630 \u0623\u0645\u0631 \u0645\u0628\u0627\u0634\u0631\ndocker exec my-nginx nginx -t\n\n# \u0627\u0644\u062a\u062d\u0642\u0642 \u0645\u0646 \u062d\u0627\u0644\u0629 MySQL \u062f\u0627\u062e\u0644 \u062d\u0627\u0648\u064a\u0629\ndocker exec my-mysql mysqladmin -u root -p status\n\n# \u0639\u0631\u0636 \u0645\u062a\u063a\u064a\u0631\u0627\u062a \u0627\u0644\u0628\u064a\u0626\u0629\ndocker exec my-app env\n\n# \u0646\u0633\u062e \u0645\u0644\u0641 \u0645\u0646 \u0627\u0644\u062d\u0627\u0648\u064a\u0629 \u0625\u0644\u0649 \u0627\u0644\u062c\u0647\u0627\u0632 \u0627\u0644\u0645\u0636\u064a\u0641\ndocker cp my-nginx:\/etc\/nginx\/nginx.conf .\/nginx.conf<\/code><\/pre>\n\n\n\n<p>\u0645\u0644\u0627\u062d\u0638\u0629 \u0645\u0647\u0645\u0629: \u0628\u0639\u0636 \u0627\u0644\u0635\u0648\u0631 \u0627\u0644\u062e\u0641\u064a\u0641\u0629 (\u0645\u062b\u0644 Alpine) \u0644\u0627 \u062a\u062d\u062a\u0648\u064a \u0639\u0644\u0649 bash. \u0641\u064a \u0647\u0630\u0647 \u0627\u0644\u062d\u0627\u0644\u0629 \u0627\u0633\u062a\u062e\u062f\u0645 sh \u0628\u062f\u0644\u0627\u064b \u0645\u0646\u0647:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>docker exec -it my-container sh<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"section-6\">4. docker build &#8211; \u0628\u0646\u0627\u0621 \u0627\u0644\u0635\u0648\u0631<\/h2>\n\n\n\n<p>docker build \u064a\u0633\u062a\u062e\u062f\u0645 \u0644\u0628\u0646\u0627\u0621 \u0635\u0648\u0631 Docker \u0645\u062e\u0635\u0635\u0629 \u0645\u0646 \u0645\u0644\u0641 Dockerfile. \u0647\u0630\u0627 \u0645\u0646 \u0623\u0648\u0627\u0645\u0631 Docker \u0627\u0644\u0623\u0633\u0627\u0633\u064a\u0629 \u0644\u0623\u064a \u0645\u0637\u0648\u0631 \u0623\u0648 \u0645\u062f\u064a\u0631 \u0633\u064a\u0631\u0641\u0631 \u064a\u062d\u062a\u0627\u062c \u0644\u062a\u062e\u0635\u064a\u0635 \u0628\u064a\u0626\u0629 \u0627\u0644\u062a\u0634\u063a\u064a\u0644.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">\u0645\u062b\u0627\u0644: \u0628\u0646\u0627\u0621 \u0635\u0648\u0631\u0629 \u0644\u062a\u0637\u0628\u064a\u0642 Node.js<\/h3>\n\n\n\n<pre class=\"wp-block-code\"><code># Dockerfile\nFROM node:20-alpine\nWORKDIR \/app\nCOPY package*.json .\/\nRUN npm ci --only=production\nCOPY . .\nEXPOSE 3000\nCMD &#91;\"node\", \"server.js\"]<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code># \u0628\u0646\u0627\u0621 \u0627\u0644\u0635\u0648\u0631\u0629\ndocker build -t my-app:1.0 .\n\n# \u0628\u0646\u0627\u0621 \u0645\u0639 \u062a\u062d\u062f\u064a\u062f Dockerfile \u0645\u062e\u062a\u0644\u0641\ndocker build -f Dockerfile.production -t my-app:prod .\n\n# \u0628\u0646\u0627\u0621 \u0628\u062f\u0648\u0646 \u0627\u0633\u062a\u062e\u062f\u0627\u0645 \u0627\u0644\u0643\u0627\u0634\ndocker build --no-cache -t my-app:latest .\n\n# \u0628\u0646\u0627\u0621 \u0645\u0639 build arguments\ndocker build --build-arg NODE_ENV=production -t my-app:prod .<\/code><\/pre>\n\n\n\n<p>\u0644\u062a\u0642\u0644\u064a\u0644 \u062d\u062c\u0645 \u0627\u0644\u0635\u0648\u0631\u0629\u060c \u0627\u0633\u062a\u062e\u062f\u0645 multi-stage builds \u0648\u0635\u0648\u0631 Alpine. \u0635\u0648\u0631\u0629 Node.js \u0627\u0644\u0639\u0627\u062f\u064a\u0629 \u062d\u0648\u0627\u0644\u064a 900MB\u060c \u0628\u064a\u0646\u0645\u0627 node:20-alpine \u062d\u0648\u0627\u0644\u064a 130MB \u0641\u0642\u0637.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"section-7\">5. docker compose &#8211; \u0625\u062f\u0627\u0631\u0629 \u062a\u0637\u0628\u064a\u0642\u0627\u062a \u0645\u062a\u0639\u062f\u062f\u0629 \u0627\u0644\u062d\u0627\u0648\u064a\u0627\u062a<\/h2>\n\n\n\n<p>docker compose (\u0628\u062f\u0648\u0646 \u0634\u0631\u0637\u0629 \u0641\u064a \u0627\u0644\u0625\u0635\u062f\u0627\u0631\u0627\u062a \u0627\u0644\u062d\u062f\u064a\u062b\u0629) \u0647\u0648 \u0645\u0646 \u0623\u0642\u0648\u0649 \u0623\u0648\u0627\u0645\u0631 Docker \u0644\u0625\u062f\u0627\u0631\u0629 \u062a\u0637\u0628\u064a\u0642\u0627\u062a \u062a\u062a\u0643\u0648\u0646 \u0645\u0646 \u0639\u062f\u0629 \u062d\u0627\u0648\u064a\u0627\u062a \u0645\u062a\u0631\u0627\u0628\u0637\u0629. \u0628\u062f\u0644\u0627\u064b \u0645\u0646 \u062a\u0634\u063a\u064a\u0644 \u0643\u0644 \u062d\u0627\u0648\u064a\u0629 \u0628\u0623\u0645\u0631 docker run \u0645\u0646\u0641\u0635\u0644\u060c \u064a\u0645\u0643\u0646\u0643 \u062a\u0639\u0631\u064a\u0641 \u062c\u0645\u064a\u0639 \u0627\u0644\u062e\u062f\u0645\u0627\u062a \u0641\u064a \u0645\u0644\u0641 \u0648\u0627\u062d\u062f. \u0631\u0627\u062c\u0639 <a href=\"https:\/\/docs.docker.com\/compose\/\" target=\"_blank\" rel=\"noopener nofollow\">\u0648\u062b\u0627\u0626\u0642 Docker Compose \u0627\u0644\u0631\u0633\u0645\u064a\u0629<\/a> \u0644\u0644\u0627\u0637\u0644\u0627\u0639 \u0639\u0644\u0649 \u062c\u0645\u064a\u0639 \u0627\u0644\u062e\u064a\u0627\u0631\u0627\u062a.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">\u0645\u062b\u0627\u0644: WordPress \u0645\u0639 MySQL \u0648 Redis<\/h3>\n\n\n\n<pre class=\"wp-block-code\"><code># docker-compose.yml\nservices:\n  wordpress:\n    image: wordpress:latest\n    ports:\n      - \"80:80\"\n    environment:\n      WORDPRESS_DB_HOST: db\n      WORDPRESS_DB_USER: wp_user\n      WORDPRESS_DB_PASSWORD: secure_pass\n    volumes:\n      - wp_data:\/var\/www\/html\n    depends_on:\n      - db\n      - redis\n\n  db:\n    image: mysql:8.0\n    environment:\n      MYSQL_ROOT_PASSWORD: root_pass\n      MYSQL_DATABASE: wordpress\n      MYSQL_USER: wp_user\n      MYSQL_PASSWORD: secure_pass\n    volumes:\n      - db_data:\/var\/lib\/mysql\n\n  redis:\n    image: redis:alpine\n    volumes:\n      - redis_data:\/data\n\nvolumes:\n  wp_data:\n  db_data:\n  redis_data:<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">\u0623\u0648\u0627\u0645\u0631 Docker Compose \u0627\u0644\u0623\u0633\u0627\u0633\u064a\u0629<\/h3>\n\n\n\n<pre class=\"wp-block-code\"><code># \u062a\u0634\u063a\u064a\u0644 \u062c\u0645\u064a\u0639 \u0627\u0644\u062e\u062f\u0645\u0627\u062a\ndocker compose up -d\n\n# \u0625\u064a\u0642\u0627\u0641 \u062c\u0645\u064a\u0639 \u0627\u0644\u062e\u062f\u0645\u0627\u062a\ndocker compose down\n\n# \u0625\u0639\u0627\u062f\u0629 \u0628\u0646\u0627\u0621 \u0648\u062a\u0634\u063a\u064a\u0644\ndocker compose up -d --build\n\n# \u0639\u0631\u0636 \u062d\u0627\u0644\u0629 \u0627\u0644\u062e\u062f\u0645\u0627\u062a\ndocker compose ps\n\n# \u0639\u0631\u0636 \u0633\u062c\u0644\u0627\u062a \u062e\u062f\u0645\u0629 \u0645\u062d\u062f\u062f\u0629\ndocker compose logs -f wordpress\n\n# \u062a\u0634\u063a\u064a\u0644 \u0623\u0645\u0631 \u0641\u064a \u062e\u062f\u0645\u0629 \u0645\u062d\u062f\u062f\u0629\ndocker compose exec db mysql -u root -p<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"section-8\">6. docker volume &#8211; \u0625\u062f\u0627\u0631\u0629 \u0627\u0644\u0628\u064a\u0627\u0646\u0627\u062a \u0627\u0644\u062f\u0627\u0626\u0645\u0629<\/h2>\n\n\n\n<p>\u0645\u0646 \u0623\u0648\u0627\u0645\u0631 Docker \u0627\u0644\u0645\u0647\u0645\u0629 \u0644\u0625\u062f\u0627\u0631\u0629 \u0627\u0644\u0628\u064a\u0627\u0646\u0627\u062a \u0627\u0644\u062a\u064a \u064a\u062c\u0628 \u0623\u0646 \u062a\u0628\u0642\u0649 \u062d\u062a\u0649 \u0628\u0639\u062f \u062d\u0630\u0641 \u0627\u0644\u062d\u0627\u0648\u064a\u0629. \u0628\u062f\u0648\u0646 volumes\u060c \u062a\u064f\u0641\u0642\u062f \u062c\u0645\u064a\u0639 \u0627\u0644\u0628\u064a\u0627\u0646\u0627\u062a \u0639\u0646\u062f \u0625\u0632\u0627\u0644\u0629 \u0627\u0644\u062d\u0627\u0648\u064a\u0629.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code># \u0625\u0646\u0634\u0627\u0621 volume\ndocker volume create my_data\n\n# \u0639\u0631\u0636 \u062c\u0645\u064a\u0639 \u0627\u0644\u0640 volumes\ndocker volume ls\n\n# \u0641\u062d\u0635 \u062a\u0641\u0627\u0635\u064a\u0644 volume\ndocker volume inspect my_data\n\n# \u062d\u0630\u0641 volume \u063a\u064a\u0631 \u0645\u0633\u062a\u062e\u062f\u0645\ndocker volume rm my_data\n\n# \u062d\u0630\u0641 \u062c\u0645\u064a\u0639 \u0627\u0644\u0640 volumes \u063a\u064a\u0631 \u0627\u0644\u0645\u0633\u062a\u062e\u062f\u0645\u0629\ndocker volume prune\n\n# \u0646\u0633\u062e \u0627\u062d\u062a\u064a\u0627\u0637\u064a \u0644\u0640 volume\ndocker run --rm -v my_data:\/source -v $(pwd):\/backup alpine tar czf \/backup\/my_data_backup.tar.gz -C \/source .<\/code><\/pre>\n\n\n\n<p>\u0642\u0627\u0639\u062f\u0629 \u0630\u0647\u0628\u064a\u0629: \u0627\u0633\u062a\u062e\u062f\u0645 \u062f\u0627\u0626\u0645\u0627\u064b named volumes \u0628\u062f\u0644\u0627\u064b \u0645\u0646 bind mounts \u0644\u0642\u0648\u0627\u0639\u062f \u0627\u0644\u0628\u064a\u0627\u0646\u0627\u062a \u0641\u064a \u0628\u064a\u0626\u0629 \u0627\u0644\u0625\u0646\u062a\u0627\u062c. \u0647\u0630\u0627 \u064a\u0636\u0645\u0646 \u0623\u062f\u0627\u0621 \u0623\u0641\u0636\u0644 \u0648\u0633\u0647\u0648\u0644\u0629 \u0641\u064a \u0627\u0644\u0646\u0633\u062e \u0627\u0644\u0627\u062d\u062a\u064a\u0627\u0637\u064a.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"section-9\">7. docker network &#8211; \u0625\u062f\u0627\u0631\u0629 \u0627\u0644\u0634\u0628\u0643\u0627\u062a<\/h2>\n\n\n\n<p>docker network \u0645\u0646 \u0623\u0648\u0627\u0645\u0631 Docker \u0627\u0644\u062a\u064a \u062a\u062a\u062d\u0643\u0645 \u0641\u064a \u0643\u064a\u0641\u064a\u0629 \u062a\u0648\u0627\u0635\u0644 \u0627\u0644\u062d\u0627\u0648\u064a\u0627\u062a \u0645\u0639 \u0628\u0639\u0636\u0647\u0627 \u0648\u0645\u0639 \u0627\u0644\u0639\u0627\u0644\u0645 \u0627\u0644\u062e\u0627\u0631\u062c\u064a. \u0641\u0647\u0645 \u0627\u0644\u0634\u0628\u0643\u0627\u062a \u0636\u0631\u0648\u0631\u064a \u0644\u0628\u0646\u0627\u0621 \u062a\u0637\u0628\u064a\u0642\u0627\u062a \u0622\u0645\u0646\u0629.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code># \u0625\u0646\u0634\u0627\u0621 \u0634\u0628\u0643\u0629 \u0645\u062e\u0635\u0635\u0629\ndocker network create --driver bridge my_network\n\n# \u0639\u0631\u0636 \u0627\u0644\u0634\u0628\u0643\u0627\u062a\ndocker network ls\n\n# \u0631\u0628\u0637 \u062d\u0627\u0648\u064a\u0629 \u0628\u0634\u0628\u0643\u0629\ndocker network connect my_network my-container\n\n# \u0641\u0635\u0644 \u062d\u0627\u0648\u064a\u0629 \u0645\u0646 \u0634\u0628\u0643\u0629\ndocker network disconnect my_network my-container\n\n# \u0641\u062d\u0635 \u062a\u0641\u0627\u0635\u064a\u0644 \u0627\u0644\u0634\u0628\u0643\u0629\ndocker network inspect my_network\n\n# \u062a\u0634\u063a\u064a\u0644 \u062d\u0627\u0648\u064a\u0629 \u0641\u064a \u0634\u0628\u0643\u0629 \u0645\u062d\u062f\u062f\u0629\ndocker run -d --name my-app --network my_network my-app:latest<\/code><\/pre>\n\n\n\n<p>\u0646\u0635\u064a\u062d\u0629 \u0623\u0645\u0646\u064a\u0629: \u0623\u0646\u0634\u0626 \u0634\u0628\u0643\u0627\u062a \u0645\u0646\u0641\u0635\u0644\u0629 \u0644\u0643\u0644 \u062a\u0637\u0628\u064a\u0642. \u0644\u0627 \u062a\u0631\u0628\u0637 \u062d\u0627\u0648\u064a\u0629 \u0642\u0627\u0639\u062f\u0629 \u0627\u0644\u0628\u064a\u0627\u0646\u0627\u062a \u0628\u0634\u0628\u0643\u0629 \u064a\u0645\u0643\u0646 \u0627\u0644\u0648\u0635\u0648\u0644 \u0625\u0644\u064a\u0647\u0627 \u0645\u0646 \u0627\u0644\u062e\u0627\u0631\u062c. \u0627\u0633\u062a\u062e\u062f\u0645 \u0634\u0628\u0643\u0629 \u062f\u0627\u062e\u0644\u064a\u0629 (internal) \u0644\u0642\u0648\u0627\u0639\u062f \u0627\u0644\u0628\u064a\u0627\u0646\u0627\u062a:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>docker network create --internal db_network<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"section-10\">8. docker system prune &#8211; \u062a\u0646\u0638\u064a\u0641 \u0627\u0644\u0645\u0648\u0627\u0631\u062f<\/h2>\n\n\n\n<p>\u0645\u0639 \u0645\u0631\u0648\u0631 \u0627\u0644\u0648\u0642\u062a\u060c \u064a\u062a\u0631\u0627\u0643\u0645 \u0627\u0644\u0643\u062b\u064a\u0631 \u0645\u0646 \u0627\u0644\u0635\u0648\u0631 \u0648\u0627\u0644\u062d\u0627\u0648\u064a\u0627\u062a \u0627\u0644\u0645\u062a\u0648\u0642\u0641\u0629 \u0648\u0627\u0644\u0634\u0628\u0643\u0627\u062a \u063a\u064a\u0631 \u0627\u0644\u0645\u0633\u062a\u062e\u062f\u0645\u0629. docker system prune \u0645\u0646 \u0623\u0648\u0627\u0645\u0631 Docker \u0627\u0644\u0636\u0631\u0648\u0631\u064a\u0629 \u0644\u0644\u062d\u0641\u0627\u0638 \u0639\u0644\u0649 \u0645\u0633\u0627\u062d\u0629 \u0627\u0644\u0642\u0631\u0635.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code># \u062a\u0646\u0638\u064a\u0641 \u0634\u0627\u0645\u0644 (\u062d\u0627\u0648\u064a\u0627\u062a \u0645\u062a\u0648\u0642\u0641\u0629\u060c \u0634\u0628\u0643\u0627\u062a \u063a\u064a\u0631 \u0645\u0633\u062a\u062e\u062f\u0645\u0629\u060c \u0635\u0648\u0631 \u0628\u062f\u0648\u0646 \u062d\u0627\u0648\u064a\u0627\u062a)\ndocker system prune\n\n# \u062a\u0646\u0638\u064a\u0641 \u0634\u0627\u0645\u0644 \u0645\u0639 \u0627\u0644\u0640 volumes (\u062d\u0630\u0631!)\ndocker system prune --volumes\n\n# \u062a\u0646\u0638\u064a\u0641 \u0627\u0644\u0635\u0648\u0631 \u063a\u064a\u0631 \u0627\u0644\u0645\u0633\u062a\u062e\u062f\u0645\u0629 \u0641\u0642\u0637\ndocker image prune -a\n\n# \u0639\u0631\u0636 \u0627\u0644\u0645\u0633\u0627\u062d\u0629 \u0627\u0644\u0645\u0633\u062a\u062e\u062f\u0645\u0629\ndocker system df\n\n# \u0639\u0631\u0636 \u062a\u0641\u0635\u064a\u0644\u064a\ndocker system df -v<\/code><\/pre>\n\n\n\n<p>\u064a\u0645\u0643\u0646\u0643 \u0623\u062a\u0645\u062a\u0629 \u0627\u0644\u062a\u0646\u0638\u064a\u0641 \u0628\u0625\u0636\u0627\u0641\u0629 cron job:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code># \u062a\u0646\u0638\u064a\u0641 \u0623\u0633\u0628\u0648\u0639\u064a \u0643\u0644 \u064a\u0648\u0645 \u0623\u062d\u062f \u0627\u0644\u0633\u0627\u0639\u0629 3 \u0635\u0628\u0627\u062d\u0627\u064b\n0 3 * * 0 docker system prune -f --filter \"until=168h\"<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"section-11\">9. docker inspect &#8211; \u0627\u0644\u0641\u062d\u0635 \u0627\u0644\u062a\u0641\u0635\u064a\u0644\u064a<\/h2>\n\n\n\n<p>docker inspect \u0645\u0646 \u0623\u0648\u0627\u0645\u0631 Docker \u0627\u0644\u0645\u062a\u0642\u062f\u0645\u0629 \u0627\u0644\u062a\u064a \u062a\u0639\u0631\u0636 \u0645\u0639\u0644\u0648\u0645\u0627\u062a \u062a\u0641\u0635\u064a\u0644\u064a\u0629 \u0639\u0646 \u0623\u064a \u0643\u0627\u0626\u0646 Docker (\u062d\u0627\u0648\u064a\u0629\u060c \u0635\u0648\u0631\u0629\u060c \u0634\u0628\u0643\u0629\u060c volume). \u0645\u0641\u064a\u062f \u062c\u062f\u0627\u064b \u0644\u062a\u0634\u062e\u064a\u0635 \u0627\u0644\u0645\u0634\u0627\u0643\u0644.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code># \u0641\u062d\u0635 \u062d\u0627\u0648\u064a\u0629\ndocker inspect my-nginx\n\n# \u0627\u0644\u062d\u0635\u0648\u0644 \u0639\u0644\u0649 IP \u0627\u0644\u062d\u0627\u0648\u064a\u0629\ndocker inspect -f '{{range.NetworkSettings.Networks}}{{.IPAddress}}{{end}}' my-nginx\n\n# \u0639\u0631\u0636 mount points\ndocker inspect -f '{{json .Mounts}}' my-nginx | python3 -m json.tool\n\n# \u0627\u0644\u062a\u062d\u0642\u0642 \u0645\u0646 \u0625\u0639\u062f\u0627\u062f\u0627\u062a \u0625\u0639\u0627\u062f\u0629 \u0627\u0644\u062a\u0634\u063a\u064a\u0644\ndocker inspect -f '{{.HostConfig.RestartPolicy.Name}}' my-nginx\n\n# \u0639\u0631\u0636 \u0645\u062a\u063a\u064a\u0631\u0627\u062a \u0627\u0644\u0628\u064a\u0626\u0629\ndocker inspect -f '{{range .Config.Env}}{{println .}}{{end}}' my-nginx\n\n# \u0627\u0644\u062a\u062d\u0642\u0642 \u0645\u0646 health check\ndocker inspect -f '{{json .State.Health}}' my-nginx | python3 -m json.tool<\/code><\/pre>\n\n\n\n<p>\u062a\u0644\u0645\u064a\u062d: \u0627\u0633\u062a\u062e\u062f\u0645 &#8211;format \u0645\u0639 Go templates \u0644\u0627\u0633\u062a\u062e\u0631\u0627\u062c \u0645\u0639\u0644\u0648\u0645\u0627\u062a \u0645\u062d\u062f\u062f\u0629 \u0628\u062f\u0644\u0627\u064b \u0645\u0646 \u0642\u0631\u0627\u0621\u0629 JSON \u0627\u0644\u0643\u0627\u0645\u0644. \u0647\u0630\u0627 \u0645\u0641\u064a\u062f \u0628\u0634\u0643\u0644 \u062e\u0627\u0635 \u0641\u064a \u0627\u0644\u0633\u0643\u0631\u064a\u0628\u062a\u0627\u062a \u0627\u0644\u0622\u0644\u064a\u0629.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"section-12\">\u0646\u0635\u0627\u0626\u062d \u0644\u062a\u0633\u0631\u064a\u0639 \u0627\u0644\u0639\u0645\u0644 \u0645\u0639 Docker<\/h2>\n\n\n\n<p>\u0628\u0639\u062f \u0625\u062a\u0642\u0627\u0646 \u0623\u0648\u0627\u0645\u0631 Docker \u0627\u0644\u0623\u0633\u0627\u0633\u064a\u0629\u060c \u0625\u0644\u064a\u0643 \u0646\u0635\u0627\u0626\u062d \u0645\u062a\u0642\u062f\u0645\u0629 \u0633\u062a\u062c\u0639\u0644 \u0639\u0645\u0644\u0643 \u0627\u0644\u064a\u0648\u0645\u064a \u0623\u0633\u0631\u0639 \u0648\u0623\u0643\u062b\u0631 \u0625\u0646\u062a\u0627\u062c\u064a\u0629:<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Aliases \u0645\u0641\u064a\u062f\u0629<\/h3>\n\n\n\n<p>\u0623\u0636\u0641 \u0647\u0630\u0647 \u0627\u0644\u0627\u062e\u062a\u0635\u0627\u0631\u0627\u062a \u0625\u0644\u0649 \u0645\u0644\u0641 ~\/.bashrc \u0623\u0648 ~\/.zshrc:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code># \u0627\u062e\u062a\u0635\u0627\u0631\u0627\u062a \u0623\u0648\u0627\u0645\u0631 Docker\nalias dps='docker ps --format \"table {{.Names}}t{{.Status}}t{{.Ports}}\"'\nalias dlog='docker logs -f --tail 100'\nalias dex='docker exec -it'\nalias dcu='docker compose up -d'\nalias dcd='docker compose down'\nalias dcl='docker compose logs -f'\nalias dprune='docker system prune -f --filter \"until=168h\"'<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">Health Checks<\/h3>\n\n\n\n<p>\u0623\u0636\u0641 health checks \u0644\u062d\u0627\u0648\u064a\u0627\u062a\u0643 \u0644\u0644\u062a\u0623\u0643\u062f \u0645\u0646 \u0623\u0646\u0647\u0627 \u062a\u0639\u0645\u0644 \u0641\u0639\u0644\u0627\u064b:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>docker run -d --name my-nginx \n  --health-cmd=\"curl -f http:\/\/localhost\/ || exit 1\" \n  --health-interval=30s \n  --health-timeout=10s \n  --health-retries=3 \n  nginx:latest<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">Resource Limits<\/h3>\n\n\n\n<p>\u062d\u062f\u062f \u062f\u0627\u0626\u0645\u0627\u064b \u0627\u0644\u0645\u0648\u0627\u0631\u062f \u0627\u0644\u0642\u0635\u0648\u0649 \u0644\u0643\u0644 \u062d\u0627\u0648\u064a\u0629 \u0644\u0645\u0646\u0639 \u0627\u0633\u062a\u0646\u0632\u0627\u0641 \u0645\u0648\u0627\u0631\u062f \u0627\u0644\u0633\u064a\u0631\u0641\u0631:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>docker run -d --name my-app \n  --memory=512m \n  --cpus=1.0 \n  --memory-swap=1g \n  my-app:latest<\/code><\/pre>\n\n\n\n<p>\u0631\u0627\u062c\u0639 <a href=\"https:\/\/docs.docker.com\/engine\/reference\/commandline\/cli\/\" target=\"_blank\" rel=\"noopener nofollow\">\u0648\u062b\u0627\u0626\u0642 Docker CLI \u0627\u0644\u0631\u0633\u0645\u064a\u0629<\/a> \u0644\u0644\u0627\u0637\u0644\u0627\u0639 \u0639\u0644\u0649 \u062c\u0645\u064a\u0639 \u0627\u0644\u062e\u064a\u0627\u0631\u0627\u062a \u0627\u0644\u0645\u062a\u0627\u062d\u0629 \u0644\u0643\u0644 \u0623\u0645\u0631.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"section-13\">\u0627\u0644\u062e\u0644\u0627\u0635\u0629<\/h2>\n\n\n\n<p>\u0623\u0648\u0627\u0645\u0631 Docker \u0627\u0644\u0639\u0634\u0631\u0629 \u0627\u0644\u062a\u064a \u0627\u0633\u062a\u0639\u0631\u0636\u0646\u0627\u0647\u0627 \u062a\u0645\u062b\u0644 \u0627\u0644\u0623\u0633\u0627\u0633 \u0627\u0644\u0630\u064a \u0633\u062a\u0628\u0646\u064a \u0639\u0644\u064a\u0647 \u0645\u0647\u0627\u0631\u0627\u062a\u0643 \u0641\u064a \u0625\u062f\u0627\u0631\u0629 \u0627\u0644\u062d\u0627\u0648\u064a\u0627\u062a. \u0625\u0644\u064a\u0643 \u0645\u0644\u062e\u0635\u0627\u064b \u0633\u0631\u064a\u0639\u0627\u064b:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>docker run:<\/strong> \u062a\u0634\u063a\u064a\u0644 \u0627\u0644\u062d\u0627\u0648\u064a\u0627\u062a \u0645\u0639 \u0627\u0644\u062e\u064a\u0627\u0631\u0627\u062a \u0627\u0644\u0644\u0627\u0632\u0645\u0629<\/li>\n\n\n\n<li><strong>docker ps + logs:<\/strong> \u0627\u0644\u0645\u0631\u0627\u0642\u0628\u0629 \u0648\u062a\u062a\u0628\u0639 \u0627\u0644\u0645\u0634\u0627\u0643\u0644<\/li>\n\n\n\n<li><strong>docker exec:<\/strong> \u0627\u0644\u062a\u0641\u0627\u0639\u0644 \u0645\u0639 \u0627\u0644\u062d\u0627\u0648\u064a\u0627\u062a \u0627\u0644\u0639\u0627\u0645\u0644\u0629<\/li>\n\n\n\n<li><strong>docker build:<\/strong> \u0628\u0646\u0627\u0621 \u0635\u0648\u0631 \u0645\u062e\u0635\u0635\u0629<\/li>\n\n\n\n<li><strong>docker compose:<\/strong> \u0625\u062f\u0627\u0631\u0629 \u062a\u0637\u0628\u064a\u0642\u0627\u062a \u0645\u062a\u0639\u062f\u062f\u0629 \u0627\u0644\u062d\u0627\u0648\u064a\u0627\u062a<\/li>\n\n\n\n<li><strong>docker volume:<\/strong> \u0625\u062f\u0627\u0631\u0629 \u0627\u0644\u0628\u064a\u0627\u0646\u0627\u062a \u0627\u0644\u062f\u0627\u0626\u0645\u0629<\/li>\n\n\n\n<li><strong>docker network:<\/strong> \u0627\u0644\u062a\u062d\u0643\u0645 \u0641\u064a \u0627\u0644\u0634\u0628\u0643\u0627\u062a<\/li>\n\n\n\n<li><strong>docker system prune:<\/strong> \u062a\u0646\u0638\u064a\u0641 \u0627\u0644\u0645\u0648\u0627\u0631\u062f<\/li>\n\n\n\n<li><strong>docker inspect:<\/strong> \u0627\u0644\u062a\u0634\u062e\u064a\u0635 \u0627\u0644\u062a\u0641\u0635\u064a\u0644\u064a<\/li>\n<\/ul>\n\n\n\n<p>\u0627\u0628\u062f\u0623 \u0628\u062d\u0641\u0638 \u0627\u0644\u0627\u062e\u062a\u0635\u0627\u0631\u0627\u062a (aliases) \u0648\u0627\u0633\u062a\u062e\u062f\u0645 \u0623\u0648\u0627\u0645\u0631 Docker \u064a\u0648\u0645\u064a\u0627\u064b \u062d\u062a\u0649 \u062a\u0635\u0628\u062d \u0637\u0628\u064a\u0639\u0629 \u062b\u0627\u0646\u064a\u0629. \u0645\u0639 \u0627\u0644\u0648\u0642\u062a\u060c \u0633\u062a\u062c\u062f \u0623\u0646 \u0625\u062f\u0627\u0631\u0629 \u0627\u0644\u0633\u064a\u0631\u0641\u0631\u0627\u062a \u0628\u0627\u0633\u062a\u062e\u062f\u0627\u0645 Docker \u0623\u0633\u0631\u0639 \u0648\u0623\u0643\u062b\u0631 \u0645\u0648\u062b\u0648\u0642\u064a\u0629 \u0645\u0646 \u0627\u0644\u0637\u0631\u0642 \u0627\u0644\u062a\u0642\u0644\u064a\u062f\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 \u0639\u0627\u0644\u064a\u0629 \u0627\u0644\u0623\u062f\u0627\u0621 \u0645\u0639 Docker \u0645\u064f\u062b\u0628\u0651\u062a \u0645\u0633\u0628\u0642\u0627\u064b \u0648\u062f\u0639\u0645 \u0641\u0646\u064a \u0645\u062a\u062e\u0635\u0635. \u0637\u0628\u0651\u0642 \u0623\u0648\u0627\u0645\u0631 Docker \u0641\u0648\u0631\u0627\u064b \u0628\u062f\u0648\u0646 \u0625\u0639\u062f\u0627\u062f. <a href=\"https:\/\/maram.iq\" target=\"_blank\" rel=\"noopener\" style=\"color:#4f46e5;font-weight:600\">\u0627\u0628\u062f\u0623 \u0645\u0646 \u0647\u0646\u0627<\/a>.<\/p>\n<\/div>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"section-14\">\u0627\u0644\u0623\u0633\u0626\u0644\u0629 \u0627\u0644\u0634\u0627\u0626\u0639\u0629<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">\u0645\u0627 \u0627\u0644\u0641\u0631\u0642 \u0628\u064a\u0646 docker compose \u0648 docker-compose (\u0628\u0634\u0631\u0637\u0629)\u061f<\/h3>\n\n\n\n<p>docker-compose (\u0628\u0634\u0631\u0637\u0629) \u0647\u0648 \u0627\u0644\u0625\u0635\u062f\u0627\u0631 \u0627\u0644\u0642\u062f\u064a\u0645 \u0627\u0644\u0645\u0643\u062a\u0648\u0628 \u0628\u0640 Python \u0648\u062a\u0645 \u0625\u064a\u0642\u0627\u0641\u0647. docker compose (\u0628\u062f\u0648\u0646 \u0634\u0631\u0637\u0629) \u0647\u0648 \u0627\u0644\u0625\u0635\u062f\u0627\u0631 \u0627\u0644\u062d\u062f\u064a\u062b \u0627\u0644\u0645\u062f\u0645\u062c \u0645\u0639 Docker CLI \u0645\u0628\u0627\u0634\u0631\u0629 \u0648\u0647\u0648 \u0623\u0633\u0631\u0639 \u0648\u0623\u0643\u062b\u0631 \u0627\u0633\u062a\u0642\u0631\u0627\u0631\u0627\u064b. \u0641\u064a 2026\u060c \u0627\u0633\u062a\u062e\u062f\u0645 \u062f\u0627\u0626\u0645\u0627\u064b docker compose \u0628\u062f\u0648\u0646 \u0634\u0631\u0637\u0629.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">\u0643\u064a\u0641 \u0623\u062d\u062f\u0651\u062b \u062d\u0627\u0648\u064a\u0629 Docker \u0628\u062f\u0648\u0646 \u062a\u0648\u0642\u0641\u061f<\/h3>\n\n\n\n<p>\u0627\u0633\u062a\u062e\u062f\u0645 docker compose \u0645\u0639 \u0627\u0644\u0623\u0645\u0631: docker compose pull \u062b\u0645 docker compose up -d. \u0647\u0630\u0627 \u064a\u0633\u062d\u0628 \u0627\u0644\u0635\u0648\u0631\u0629 \u0627\u0644\u062c\u062f\u064a\u062f\u0629 \u0648\u064a\u0639\u064a\u062f \u0625\u0646\u0634\u0627\u0621 \u0627\u0644\u062d\u0627\u0648\u064a\u0629 \u0627\u0644\u0645\u062d\u062f\u0651\u062b\u0629 \u0641\u0642\u0637. \u0641\u062a\u0631\u0629 \u0627\u0644\u062a\u0648\u0642\u0641 \u062a\u0643\u0648\u0646 \u062b\u0648\u0627\u0646\u064d \u0641\u0642\u0637. \u0644\u062a\u062d\u0642\u064a\u0642 zero downtime\u060c \u0627\u0633\u062a\u062e\u062f\u0645 Docker Swarm \u0623\u0648 Kubernetes \u0645\u0639 rolling updates.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">\u0647\u0644 Docker \u0622\u0645\u0646 \u0644\u0644\u0627\u0633\u062a\u062e\u062f\u0627\u0645 \u0641\u064a \u0628\u064a\u0626\u0629 \u0627\u0644\u0625\u0646\u062a\u0627\u062c\u061f<\/h3>\n\n\n\n<p>\u0646\u0639\u0645\u060c Docker \u0622\u0645\u0646 \u0625\u0630\u0627 \u0627\u062a\u0628\u0639\u062a \u0623\u0641\u0636\u0644 \u0627\u0644\u0645\u0645\u0627\u0631\u0633\u0627\u062a: \u0644\u0627 \u062a\u0634\u063a\u0651\u0644 \u0627\u0644\u062d\u0627\u0648\u064a\u0627\u062a \u0643\u0640 root\u060c \u0627\u0633\u062a\u062e\u062f\u0645 \u0635\u0648\u0631\u0627\u064b \u0631\u0633\u0645\u064a\u0629 \u0641\u0642\u0637\u060c \u062d\u062f\u0651\u062f \u0627\u0644\u0645\u0648\u0627\u0631\u062f \u0627\u0644\u0642\u0635\u0648\u0649 \u0644\u0643\u0644 \u062d\u0627\u0648\u064a\u0629\u060c \u0648\u0623\u0646\u0634\u0626 \u0634\u0628\u0643\u0627\u062a \u0645\u0646\u0641\u0635\u0644\u0629. \u0623\u0648\u0627\u0645\u0631 Docker \u0645\u062b\u0644 docker inspect \u0648 docker logs \u062a\u0633\u0627\u0639\u062f\u0643 \u0641\u064a \u0645\u0631\u0627\u0642\u0628\u0629 \u0627\u0644\u0623\u0645\u0627\u0646 \u0628\u0627\u0633\u062a\u0645\u0631\u0627\u0631.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">\u0643\u0645 \u0645\u0633\u0627\u062d\u0629 \u064a\u062d\u062a\u0627\u062c Docker \u0639\u0644\u0649 \u0627\u0644\u0633\u064a\u0631\u0641\u0631\u061f<\/h3>\n\n\n\n<p>Docker \u0646\u0641\u0633\u0647 \u064a\u062d\u062a\u0627\u062c \u0623\u0642\u0644 \u0645\u0646 500MB. \u0644\u0643\u0646 \u0627\u0644\u0635\u0648\u0631 \u0648\u0627\u0644\u062d\u0627\u0648\u064a\u0627\u062a \u062a\u062d\u062a\u0627\u062c \u0645\u0633\u0627\u062d\u0629 \u0625\u0636\u0627\u0641\u064a\u0629 \u062d\u0633\u0628 \u0627\u0644\u062a\u0637\u0628\u064a\u0642\u0627\u062a. \u0635\u0648\u0631\u0629 Nginx \u062d\u0648\u0627\u0644\u064a 140MB\u060c \u0648WordPress \u062d\u0648\u0627\u0644\u064a 600MB. \u0627\u0633\u062a\u062e\u062f\u0645 docker system df \u0644\u0645\u0631\u0627\u0642\u0628\u0629 \u0627\u0644\u0645\u0633\u0627\u062d\u0629 \u0627\u0644\u0645\u0633\u062a\u062e\u062f\u0645\u0629 \u0648\u0627\u0633\u062a\u062e\u062f\u0645 docker system prune \u0628\u0627\u0646\u062a\u0638\u0627\u0645 \u0644\u0644\u062a\u0646\u0638\u064a\u0641.<\/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%a3%d9%81%d8%b6%d9%84-%d8%a5%d8%b9%d8%af%d8%a7%d8%af%d8%a7%d8%aa-%d8%aa%d8%ae%d8%b2%d9%8a%d9%86-ceph-proxmox-%d9%84%d9%84%d8%a3%d8%af%d8%a7%d8%a1\/\">\u0623\u0641\u0636\u0644 \u0625\u0639\u062f\u0627\u062f\u0627\u062a \u062a\u062e\u0632\u064a\u0646 Ceph \u0639\u0644\u0649 Proxmox \u0644\u0644\u0623\u062f\u0627\u0621 \u0627\u0644\u0639\u0627\u0644\u064a<\/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><li style=\"padding:.25rem 0;\"><a href=\"https:\/\/maram.iq\/blogs\/%d8%b4%d8%b1%d8%ad-core-web-vitals-%d8%aa%d8%a3%d8%ab%d9%8a%d8%b1%d9%87%d8%a7-%d8%aa%d8%b1%d8%aa%d9%8a%d8%a8-%d9%85%d9%88%d9%82%d8%b9%d9%83\/\">\u0634\u0631\u062d Core Web Vitals \u0648\u062a\u0623\u062b\u064a\u0631\u0647\u0627 \u0639\u0644\u0649 \u062a\u0631\u062a\u064a\u0628 \u0645\u0648\u0642\u0639\u0643 \u0641\u064a Google<\/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%a3%d9%81%d8%b6%d9%84-%d9%82%d9%88%d8%a7%d8%b9%d8%af-%d8%a7%d9%84%d8%a8%d9%8a%d8%a7%d9%86%d8%a7%d8%aa-2026-%d9%85%d9%82%d8%a7%d8%b1%d9%86%d8%a9-mysql\/\">\u0623\u0641\u0636\u0644 \u0642\u0648\u0627\u0639\u062f \u0627\u0644\u0628\u064a\u0627\u0646\u0627\u062a \u0641\u064a 2026: \u0645\u0642\u0627\u0631\u0646\u0629 MySQL vs PostgreSQL vs MongoDB<\/a><\/li><li style=\"padding:.25rem 0;\"><a href=\"https:\/\/maram.iq\/blogs\/%d8%a3%d9%81%d8%b6%d9%84-%d8%b3%d9%8a%d8%b1%d9%81%d8%b1%d8%a7%d8%aa-gpu-%d9%84%d9%84%d8%b0%d9%83%d8%a7%d8%a1-%d8%a7%d9%84%d8%a7%d8%b5%d8%b7%d9%86%d8%a7%d8%b9%d9%8a-2026\/\">\u0623\u0641\u0636\u0644 \u0633\u064a\u0631\u0641\u0631\u0627\u062a GPU \u0644\u0644\u0630\u0643\u0627\u0621 \u0627\u0644\u0627\u0635\u0637\u0646\u0627\u0639\u064a \u0641\u064a 2026: \u0645\u0642\u0627\u0631\u0646\u0629 NVIDIA L4 vs RTX A6000<\/a><\/li><li style=\"padding:.25rem 0;\"><a href=\"https:\/\/maram.iq\/blogs\/%d8%a3%d9%81%d8%b6%d9%84-%d8%b3%d9%8a%d8%b1%d9%81%d8%b1%d8%a7%d8%aa-gpu-%d9%84%d9%84%d8%b0%d9%83%d8%a7%d8%a1-%d8%a7%d9%84%d8%a7%d8%b5%d8%b7%d9%86%d8%a7%d8%b9%d9%8a-2026-2\/\">\u0623\u0641\u0636\u0644 \u0633\u064a\u0631\u0641\u0631\u0627\u062a GPU \u0644\u0644\u0630\u0643\u0627\u0621 \u0627\u0644\u0627\u0635\u0637\u0646\u0627\u0639\u064a \u0641\u064a 2026<\/a><\/li><\/ul><\/div>\n\n","protected":false},"excerpt":{"rendered":"<p>\ud83d\udc33 10 \u0623\u0648\u0627\u0645\u0631 Docker \u064a\u062d\u062a\u0627\u062c\u0647\u0627 \u0643\u0644 \u0645\u062f\u064a\u0631 \u0633\u064a\u0631\u0641\u0631 \u064a\u0648\u0645\u064a\u0627\u064b \u0641\u064a 2026 \u062f\u0644\u064a\u0644 \u0639\u0645\u0644\u064a \u0644\u0623\u0647\u0645 \u0623\u0648\u0627\u0645\u0631 Docker \u0645\u0639 \u0623\u0645\u062b\u0644\u0629 \u062d\u0642\u064a\u0642\u064a\u0629 \u0648\u062d\u0627\u0644\u0627\u062a \u0627\u0633\u062a\u062e\u062f\u0627\u0645 \u064a\u0648\u0645\u064a\u0629 \u0645\u062d\u062a\u0648\u064a\u0627\u062a \u0627\u0644\u0645\u0642\u0627\u0644 &#8592; \u0644\u0645\u0627\u0630\u0627 \u0623\u0648\u0627\u0645\u0631 Docker \u0645\u0647\u0645\u0629 &#8592;&#8230;<\/p>\n","protected":false},"author":1,"featured_media":3043,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[321],"tags":[174,176,144,48,152,141,178,143,140,157],"class_list":["post-2991","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-docker-containers","tag-linux","tag-mysql","tag-vps","tag-wordpress","tag-152","tag-141","tag-178","tag-143","tag-140","tag-157"],"_links":{"self":[{"href":"https:\/\/maram.iq\/blogs\/wp-json\/wp\/v2\/posts\/2991","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=2991"}],"version-history":[{"count":5,"href":"https:\/\/maram.iq\/blogs\/wp-json\/wp\/v2\/posts\/2991\/revisions"}],"predecessor-version":[{"id":3047,"href":"https:\/\/maram.iq\/blogs\/wp-json\/wp\/v2\/posts\/2991\/revisions\/3047"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/maram.iq\/blogs\/wp-json\/wp\/v2\/media\/3043"}],"wp:attachment":[{"href":"https:\/\/maram.iq\/blogs\/wp-json\/wp\/v2\/media?parent=2991"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/maram.iq\/blogs\/wp-json\/wp\/v2\/categories?post=2991"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/maram.iq\/blogs\/wp-json\/wp\/v2\/tags?post=2991"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}