[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"page-ru-/guides/linux/kubernetes-logs":3,"mdc-9zxpy6-key":804,"mdc-k9vgqy-key":831,"mdc--nnolwm-key":847,"mdc--t5g7c5-key":870,"mdc-3thysy-key":892,"mdc--rm2dqt-key":900,"mdc--2tris6-key":917,"mdc-23bu6p-key":933,"mdc-h34hh4-key":955,"mdc-1sklli-key":986,"related-/guides/linux/kubectl-basics,/guides/linux/kubernetes-errors,/errors/linux/container-failed-to-start":1002},{"id":4,"title":5,"appliesTo":6,"author":11,"body":12,"canonical":736,"code":105,"createdAt":737,"description":738,"difficulty":739,"draft":740,"estimatedTime":741,"extension":742,"faq":743,"howToSteps":756,"howToTotalTime":771,"image":736,"keywords":772,"locale":782,"meta":783,"navigation":784,"path":785,"platform":786,"related":787,"section":791,"seo":792,"severity":736,"stem":793,"summary":794,"tags":795,"twitterCreator":736,"twitterSite":736,"type":802,"updatedAt":737,"__hash__":803},"content_ru/guides/linux/kubernetes-logs.md","Анализ логов Kubernetes в Linux: полное руководство по kubectl logs",[7,8,9,10],"Kubernetes 1.19+","Ubuntu 20.04+","CentOS 8+","Debian 11+","FixPedia Team",{"type":13,"value":14,"toc":711},"minimark",[15,20,29,33,36,62,68,87,91,96,99,134,137,151,154,158,165,198,201,220,224,231,253,256,260,266,288,292,295,320,323,363,367,377,399,403,409,441,445,448,473,476,512,515,519,525,539,542,583,586,604,607,611,614,625,632,636,645,649,655,659,664,668,681,685,688,694,697,701,707],[16,17,19],"h2",{"id":18},"введение-зачем-это-нужно","Введение / Зачем это нужно",[21,22,23,24,28],"p",{},"Логи (logs) в Kubernetes — это основной источник информации о работе контейнеров и подов. Они помогают диагностировать ошибки, отслеживать состояние приложений и понимать, что происходит внутри кластера. В этом гайде вы узнаете, как эффективно просматривать, фильтровать и анализировать логи с помощью стандартного инструмента ",[25,26,27],"code",{},"kubectl"," на Linux. После выполнения вы сможете быстро находить нужную информацию в логах и отлаживать приложения в Kubernetes.",[16,30,32],{"id":31},"требования-подготовка","Требования / Подготовка",[21,34,35],{},"Перед началом убедитесь, что:",[37,38,39,43,53,56],"ul",{},[40,41,42],"li",{},"У вас есть доступ к кластеру Kubernetes (файл kubeconfig настроен).",[40,44,45,46,48,49,52],{},"Установлен ",[25,47,27],{}," (версия, совместимая с вашим кластером). Проверить: ",[25,50,51],{},"kubectl version --client",".",[40,54,55],{},"У вас есть права на просмотр подов и логов в нужных namespace.",[40,57,58,59,61],{},"Вы знакомы с базовыми командами ",[25,60,27],{}," (get, describe).",[21,63,64,65,67],{},"Если ",[25,66,27],{}," не установлен, установите его согласно официальной документации для вашего дистрибутива Linux.",[69,70,71],"blockquote",{},[21,72,73,74,78,79,82,83,86],{},"💡 ",[75,76,77],"strong",{},"Совет:"," Если вы только начинаете работать с Kubernetes, сначала освоите базовые команды ",[25,80,81],{},"kubectl get pods"," и ",[25,84,85],{},"kubectl describe pod",", чтобы понимать структуру кластера.",[16,88,90],{"id":89},"основные-команды-для-работы-с-логами","Основные команды для работы с логами",[92,93,95],"h3",{"id":94},"просмотр-логов-пода","Просмотр логов пода",[21,97,98],{},"Самый простой способ получить логи пода — команда:",[100,101,106],"pre",{"className":102,"code":103,"language":104,"meta":105,"style":105},"language-bash shiki shiki-themes github-light github-dark","kubectl logs \u003Cимя_пода>\n","bash","",[25,107,108],{"__ignoreMap":105},[109,110,113,116,120,124,127,131],"span",{"class":111,"line":112},"line",1,[109,114,27],{"class":115},"sScJk",[109,117,119],{"class":118},"sZZnC"," logs",[109,121,123],{"class":122},"szBVR"," \u003C",[109,125,126],{"class":118},"имя_под",[109,128,130],{"class":129},"sVt8B","а",[109,132,133],{"class":122},">\n",[21,135,136],{},"Например:",[100,138,140],{"className":102,"code":139,"language":104,"meta":105,"style":105},"kubectl logs nginx-7cdbd8cd56-abcde\n",[25,141,142],{"__ignoreMap":105},[109,143,144,146,148],{"class":111,"line":112},[109,145,27],{"class":115},[109,147,119],{"class":118},[109,149,150],{"class":118}," nginx-7cdbd8cd56-abcde\n",[21,152,153],{},"Эта команда выведет логи первого контейнера в поде. Если в поде несколько контейнеров, нужно указать имя контейнера.",[92,155,157],{"id":156},"указание-контейнера-в-поде-с-несколькими-контейнерами","Указание контейнера в поде с несколькими контейнерами",[21,159,160,161,164],{},"Если под содержит несколько контейнеров, используйте флаг ",[25,162,163],{},"-c",":",[100,166,168],{"className":102,"code":167,"language":104,"meta":105,"style":105},"kubectl logs \u003Cимя_пода> -c \u003Cимя_контейнера>\n",[25,169,170],{"__ignoreMap":105},[109,171,172,174,176,178,180,182,185,189,191,194,196],{"class":111,"line":112},[109,173,27],{"class":115},[109,175,119],{"class":118},[109,177,123],{"class":122},[109,179,126],{"class":118},[109,181,130],{"class":129},[109,183,184],{"class":122},">",[109,186,188],{"class":187},"sj4cs"," -c",[109,190,123],{"class":122},[109,192,193],{"class":118},"имя_контейнер",[109,195,130],{"class":129},[109,197,133],{"class":122},[21,199,200],{},"Пример:",[100,202,204],{"className":102,"code":203,"language":104,"meta":105,"style":105},"kubectl logs my-app-pod -c sidecar-container\n",[25,205,206],{"__ignoreMap":105},[109,207,208,210,212,215,217],{"class":111,"line":112},[109,209,27],{"class":115},[109,211,119],{"class":118},[109,213,214],{"class":118}," my-app-pod",[109,216,188],{"class":187},[109,218,219],{"class":118}," sidecar-container\n",[92,221,223],{"id":222},"отслеживание-логов-в-реальном-времени","Отслеживание логов в реальном времени",[21,225,226,227,230],{},"Чтобы видеть логи по мере их появления, добавьте флаг ",[25,228,229],{},"-f"," (follow):",[100,232,234],{"className":102,"code":233,"language":104,"meta":105,"style":105},"kubectl logs -f \u003Cимя_пода>\n",[25,235,236],{"__ignoreMap":105},[109,237,238,240,242,245,247,249,251],{"class":111,"line":112},[109,239,27],{"class":115},[109,241,119],{"class":118},[109,243,244],{"class":187}," -f",[109,246,123],{"class":122},[109,248,126],{"class":118},[109,250,130],{"class":129},[109,252,133],{"class":122},[21,254,255],{},"Это особенно полезно для отладки запускающихся приложений или мониторинга.",[92,257,259],{"id":258},"получение-логов-предыдущего-экземпляра-контейнера","Получение логов предыдущего экземпляра контейнера",[21,261,262,263,164],{},"Если контейнер перезапускался, можно получить логи предыдущего экземпляра с помощью флага ",[25,264,265],{},"--previous",[100,267,269],{"className":102,"code":268,"language":104,"meta":105,"style":105},"kubectl logs \u003Cимя_пода> --previous\n",[25,270,271],{"__ignoreMap":105},[109,272,273,275,277,279,281,283,285],{"class":111,"line":112},[109,274,27],{"class":115},[109,276,119],{"class":118},[109,278,123],{"class":122},[109,280,126],{"class":118},[109,282,130],{"class":129},[109,284,184],{"class":122},[109,286,287],{"class":187}," --previous\n",[92,289,291],{"id":290},"фильтрация-логов-по-времени","Фильтрация логов по времени",[21,293,294],{},"Чтобы получить логи за определенный период, используйте:",[37,296,297,311],{},[40,298,299,302,303,306,307,310],{},[25,300,301],{},"--since"," — относительное время (например, ",[25,304,305],{},"5m",", ",[25,308,309],{},"1h",").",[40,312,313,316,317,310],{},[25,314,315],{},"--since-time"," — абсолютное время в формате RFC3339 (например, ",[25,318,319],{},"2026-02-16T10:00:00Z",[21,321,322],{},"Примеры:",[100,324,326],{"className":102,"code":325,"language":104,"meta":105,"style":105},"kubectl logs \u003Cимя_пода> --since=5m\nkubectl logs \u003Cимя_пода> --since-time=2026-02-16T09:00:00Z\n",[25,327,328,345],{"__ignoreMap":105},[109,329,330,332,334,336,338,340,342],{"class":111,"line":112},[109,331,27],{"class":115},[109,333,119],{"class":118},[109,335,123],{"class":122},[109,337,126],{"class":118},[109,339,130],{"class":129},[109,341,184],{"class":122},[109,343,344],{"class":187}," --since=5m\n",[109,346,348,350,352,354,356,358,360],{"class":111,"line":347},2,[109,349,27],{"class":115},[109,351,119],{"class":118},[109,353,123],{"class":122},[109,355,126],{"class":118},[109,357,130],{"class":129},[109,359,184],{"class":122},[109,361,362],{"class":187}," --since-time=2026-02-16T09:00:00Z\n",[92,364,366],{"id":365},"ограничение-количества-строк","Ограничение количества строк",[21,368,369,370,373,374,164],{},"По умолчанию ",[25,371,372],{},"kubectl logs"," выводит все доступные логи. Чтобы ограничить вывод последними N строками, используйте ",[25,375,376],{},"--tail",[100,378,380],{"className":102,"code":379,"language":104,"meta":105,"style":105},"kubectl logs \u003Cимя_пода> --tail=100\n",[25,381,382],{"__ignoreMap":105},[109,383,384,386,388,390,392,394,396],{"class":111,"line":112},[109,385,27],{"class":115},[109,387,119],{"class":118},[109,389,123],{"class":122},[109,391,126],{"class":118},[109,393,130],{"class":129},[109,395,184],{"class":122},[109,397,398],{"class":187}," --tail=100\n",[92,400,402],{"id":401},"работа-с-namespace","Работа с namespace",[21,404,405,406,164],{},"Если под находится в нестандартном namespace, укажите его флагом ",[25,407,408],{},"-n",[100,410,412],{"className":102,"code":411,"language":104,"meta":105,"style":105},"kubectl logs \u003Cимя_пода> -n \u003Cnamespace>\n",[25,413,414],{"__ignoreMap":105},[109,415,416,418,420,422,424,426,428,431,433,436,439],{"class":111,"line":112},[109,417,27],{"class":115},[109,419,119],{"class":118},[109,421,123],{"class":122},[109,423,126],{"class":118},[109,425,130],{"class":129},[109,427,184],{"class":122},[109,429,430],{"class":187}," -n",[109,432,123],{"class":122},[109,434,435],{"class":118},"namespac",[109,437,438],{"class":129},"e",[109,440,133],{"class":122},[92,442,444],{"id":443},"экспорт-логов-в-файл","Экспорт логов в файл",[21,446,447],{},"Чтобы сохранить логи в файл на локальной машине, перенаправьте вывод:",[100,449,451],{"className":102,"code":450,"language":104,"meta":105,"style":105},"kubectl logs \u003Cимя_пода> > pod-logs.txt\n",[25,452,453],{"__ignoreMap":105},[109,454,455,457,459,461,463,465,467,470],{"class":111,"line":112},[109,456,27],{"class":115},[109,458,119],{"class":118},[109,460,123],{"class":122},[109,462,126],{"class":118},[109,464,130],{"class":129},[109,466,184],{"class":122},[109,468,469],{"class":122}," >",[109,471,472],{"class":118}," pod-logs.txt\n",[21,474,475],{},"Для многоконтейнерного пода:",[100,477,479],{"className":102,"code":478,"language":104,"meta":105,"style":105},"kubectl logs \u003Cимя_пода> -c \u003Cконтейнер> > container-logs.txt\n",[25,480,481],{"__ignoreMap":105},[109,482,483,485,487,489,491,493,495,497,499,502,505,507,509],{"class":111,"line":112},[109,484,27],{"class":115},[109,486,119],{"class":118},[109,488,123],{"class":122},[109,490,126],{"class":118},[109,492,130],{"class":129},[109,494,184],{"class":122},[109,496,188],{"class":187},[109,498,123],{"class":122},[109,500,501],{"class":118},"контейне",[109,503,504],{"class":129},"р",[109,506,184],{"class":122},[109,508,469],{"class":122},[109,510,511],{"class":118}," container-logs.txt\n",[513,514],"in-article-ad",{},[92,516,518],{"id":517},"просмотр-логов-нескольких-подов-одновременно-расширенный-способ","Просмотр логов нескольких подов одновременно (расширенный способ)",[21,520,521,522,524],{},"Стандартный ",[25,523,372],{}," не поддерживает одновременный просмотр логов нескольких подов. Для этого можно использовать сторонние инструменты, например:",[37,526,527,533],{},[40,528,529,532],{},[75,530,531],{},"stern"," — логирование по селектору лейблов.",[40,534,535,538],{},[75,536,537],{},"kubetail"," — скрипт на bash для мульти-подового просмотра.",[21,540,541],{},"Установка stern:",[100,543,545],{"className":102,"code":544,"language":104,"meta":105,"style":105},"# Для Linux (пример для Ubuntu)\nsudo wget https://github.com/wercker/stern/releases/download/1.24.0/stern_linux_amd64 -O /usr/local/bin/stern\nsudo chmod +x /usr/local/bin/stern\n",[25,546,547,553,570],{"__ignoreMap":105},[109,548,549],{"class":111,"line":112},[109,550,552],{"class":551},"sJ8bj","# Для Linux (пример для Ubuntu)\n",[109,554,555,558,561,564,567],{"class":111,"line":347},[109,556,557],{"class":115},"sudo",[109,559,560],{"class":118}," wget",[109,562,563],{"class":118}," https://github.com/wercker/stern/releases/download/1.24.0/stern_linux_amd64",[109,565,566],{"class":187}," -O",[109,568,569],{"class":118}," /usr/local/bin/stern\n",[109,571,573,575,578,581],{"class":111,"line":572},3,[109,574,557],{"class":115},[109,576,577],{"class":118}," chmod",[109,579,580],{"class":118}," +x",[109,582,569],{"class":118},[21,584,585],{},"Пример использования stern:",[100,587,589],{"className":102,"code":588,"language":104,"meta":105,"style":105},"stern . --namespace default\n",[25,590,591],{"__ignoreMap":105},[109,592,593,595,598,601],{"class":111,"line":112},[109,594,531],{"class":115},[109,596,597],{"class":118}," .",[109,599,600],{"class":187}," --namespace",[109,602,603],{"class":118}," default\n",[21,605,606],{},"Эта команда будет выводить логи всех подов в namespace default, соответствующих селектору (в данном случае все).",[16,608,610],{"id":609},"проверка-результата","Проверка результата",[21,612,613],{},"После выполнения команд вы должны увидеть текстовые логи в терминале или в сохраненном файле. Убедитесь, что:",[37,615,616,619,622],{},[40,617,618],{},"Логи содержат ожидаемые записи (например, сообщения приложения, ошибки).",[40,620,621],{},"Время логов соответствует заданным фильтрам (если использовались).",[40,623,624],{},"Для многоконтейнерных подов вы просматриваете логи нужного контейнера.",[21,626,627,628,631],{},"Если логи пустые, проверьте, что контейнер действительно пишет в stdout/stderr. Некоторые приложения пишут логи в файлы внутри контейнера; в таком случае нужно использовать ",[25,629,630],{},"kubectl exec"," для доступа к файлу.",[16,633,635],{"id":634},"возможные-проблемы","Возможные проблемы",[69,637,638],{},[21,639,640,641,644],{},"⚠️ ",[75,642,643],{},"Важно:"," Некоторые проблемы могут возникать из-за ограничений Kubernetes (например, объем хранимых логов) или настроек RBAC. В этом разделе рассмотрены частые случаи.",[92,646,648],{"id":647},"ошибка-error-from-server-notfound-pods-not-found","Ошибка \"Error from server (NotFound): pods ... not found\"",[21,650,651,652,52],{},"Убедитесь, что имя пода указано правильно и он существует в указанном namespace. Проверьте список подов: ",[25,653,654],{},"kubectl get pods -n \u003Cnamespace>",[92,656,658],{"id":657},"пустые-логи","Пустые логи",[21,660,661,662,310],{},"Контейнер может не выводить логи в stdout/stderr. Проверьте конфигурацию приложения. Также возможно, что под только что запущен и логи еще не появились. Подождите немного или проверьте логи предыдущего экземпляра (",[25,663,265],{},[92,665,667],{"id":666},"ошибка-доступа-forbidden","Ошибка доступа (Forbidden)",[21,669,670,671,306,674,677,678,52],{},"Ваш пользователь может не иметь прав на просмотр логов. Проверьте RBAC-роли. Нужны права ",[25,672,673],{},"get",[25,675,676],{},"list"," на ресурсы ",[25,679,680],{},"pods/log",[92,682,684],{"id":683},"логи-обрезаются-или-неполные","Логи обрезаются или неполные",[21,686,687],{},"По умолчанию Kubernetes хранит ограниченный объем логов (зависит от конфигурации kubelet). Если логи слишком старые, они могут быть удалены. Используйте внешний сбор логов (например, Elasticsearch, Fluentd) для долгосрочного хранения.",[92,689,691,692],{"id":690},"медленная-передача-логов-при-использовании-f","Медленная передача логов при использовании ",[25,693,229],{},[21,695,696],{},"При большом объеме логов или высокой задержке сети потоковая передача может быть медленной. В таком случае можно сначала получить лог файлом, а затем анализировать локально.",[92,698,700],{"id":699},"логи-не-загружаются-после-перезапуска-пода","Логи не загружаются после перезапуска пода",[21,702,703,704,706],{},"Если под перезапускается, логи предыдущего экземпляра доступны только если контейнер сохранил их (флаг ",[25,705,265],{},"). Однако если под был удален и создан заново (новый UID), логи предыдущего пода недоступны. В этом случае нужно настроить централизованное логирование.",[708,709,710],"style",{},"html pre.shiki code .sScJk, html code.shiki .sScJk{--shiki-default:#6F42C1;--shiki-dark:#B392F0}html pre.shiki code .sZZnC, html code.shiki .sZZnC{--shiki-default:#032F62;--shiki-dark:#9ECBFF}html pre.shiki code .szBVR, html code.shiki .szBVR{--shiki-default:#D73A49;--shiki-dark:#F97583}html pre.shiki code .sVt8B, html code.shiki .sVt8B{--shiki-default:#24292E;--shiki-dark:#E1E4E8}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .sj4cs, html code.shiki .sj4cs{--shiki-default:#005CC5;--shiki-dark:#79B8FF}html pre.shiki code .sJ8bj, html code.shiki .sJ8bj{--shiki-default:#6A737D;--shiki-dark:#6A737D}",{"title":105,"searchDepth":347,"depth":347,"links":712},[713,714,715,726,727],{"id":18,"depth":347,"text":19},{"id":31,"depth":347,"text":32},{"id":89,"depth":347,"text":90,"children":716},[717,718,719,720,721,722,723,724,725],{"id":94,"depth":572,"text":95},{"id":156,"depth":572,"text":157},{"id":222,"depth":572,"text":223},{"id":258,"depth":572,"text":259},{"id":290,"depth":572,"text":291},{"id":365,"depth":572,"text":366},{"id":401,"depth":572,"text":402},{"id":443,"depth":572,"text":444},{"id":517,"depth":572,"text":518},{"id":609,"depth":347,"text":610},{"id":634,"depth":347,"text":635,"children":728},[729,730,731,732,733,735],{"id":647,"depth":572,"text":648},{"id":657,"depth":572,"text":658},{"id":666,"depth":572,"text":667},{"id":683,"depth":572,"text":684},{"id":690,"depth":572,"text":734},"Медленная передача логов при использовании -f",{"id":699,"depth":572,"text":700},null,"2026-02-16 19:46:31","Научитесь эффективно просматривать и анализировать логи контейнеров и подов в Kubernetes на Linux. Пошаговая инструкция с примерами команд kubectl и советами по отладке.","easy",false,"10-15 мин","md",[744,747,750,753],{"question":745,"answer":746},"Как посмотреть логи пода, который находится в другом namespace?","Добавьте флаг `-n \u003Cnamespace>`: `kubectl logs \u003Cpod-name> -n \u003Cnamespace>`.",{"question":748,"answer":749},"Что делать, если команда `kubectl logs` не выводит ничего?","Убедитесь, что контейнер пишет логи в stdout/stderr. Некоторые приложения пишут в файлы, тогда нужно использовать `kubectl exec` для просмотра файлов.",{"question":751,"answer":752},"Как отслеживать логи нескольких подов одновременно?","Используйте инструменты вроде `stern` или `kubetail`, которые позволяют следить за логами нескольких подов по селектору.",{"question":754,"answer":755},"Как получить логи предыдущего экземпляра контейнера после перезапуска?","Используйте флаг `--previous`: `kubectl logs \u003Cpod-name> --previous`.",[757,760,762,765,767,769],{"name":758,"text":759},"Установите и настройте kubectl","Установите kubectl и настройте kubeconfig для доступа к вашему кластеру Kubernetes.",{"name":95,"text":761},"Выполните `kubectl logs \u003Cимя_пода>` для получения логов контейнера в поде.",{"name":763,"text":764},"Просмотр логов конкретного контейнера","Если под содержит несколько контейнеров, укажите имя контейнера: `kubectl logs \u003Cимя_пода> -c \u003Cимя_контейнера>`.",{"name":223,"text":766},"Используйте флаг `-f` для потоковой передачи логов: `kubectl logs -f \u003Cимя_пода>`.",{"name":291,"text":768},"Примените `--since` (например, `--since=5m`) или `--since-time` для выбора логов за определенный период.",{"name":444,"text":770},"Перенаправьте вывод команды в файл: `kubectl logs \u003Cимя_пода> > logs.txt`.","PT15M",[773,372,774,775,776,777,778,779,780,781],"kubernetes logs","просмотр логов kubernetes","логи подов kubernetes","анализ логов контейнеров","kubectl log linux","отладка kubernetes logs","логи деплоймента kubernetes","kubectl logs примеры","kubernetes логи контейнеров","ru_RU",{},true,"/guides/linux/kubernetes-logs","linux",[788,789,790],"/guides/linux/kubectl-basics","/guides/linux/kubernetes-errors","/errors/linux/container-failed-to-start","Гайды Kubernetes",{"title":5,"description":738},"guides/linux/kubernetes-logs","Этот гайд поможет вам освоить работу с логами Kubernetes на Linux: от базовых команд kubectl logs до продвинутых техник фильтрации и отслеживания в реальном времени.",[796,797,798,27,799,800,786,801],"kubernetes","k8s","логи","контейнеры","мониторинг","devops","guide","Alg8o1XKw1rjd8Of-AW9q6yYaeCwECCttACPMGrX11A",{"data":805,"body":806},{},{"type":807,"children":808},"root",[809],{"type":810,"tag":21,"props":811,"children":812},"element",{},[813,816,822,824,830],{"type":814,"value":815},"text","Добавьте флаг ",{"type":810,"tag":25,"props":817,"children":819},{"className":818},[],[820],{"type":814,"value":821},"-n \u003Cnamespace>",{"type":814,"value":823},": ",{"type":810,"tag":25,"props":825,"children":827},{"className":826},[],[828],{"type":814,"value":829},"kubectl logs \u003Cpod-name> -n \u003Cnamespace>",{"type":814,"value":52},{"data":832,"body":833},{},{"type":807,"children":834},[835],{"type":810,"tag":21,"props":836,"children":837},{},[838,840,845],{"type":814,"value":839},"Убедитесь, что контейнер пишет логи в stdout/stderr. Некоторые приложения пишут в файлы, тогда нужно использовать ",{"type":810,"tag":25,"props":841,"children":843},{"className":842},[],[844],{"type":814,"value":630},{"type":814,"value":846}," для просмотра файлов.",{"data":848,"body":849},{},{"type":807,"children":850},[851],{"type":810,"tag":21,"props":852,"children":853},{},[854,856,861,863,868],{"type":814,"value":855},"Используйте инструменты вроде ",{"type":810,"tag":25,"props":857,"children":859},{"className":858},[],[860],{"type":814,"value":531},{"type":814,"value":862}," или ",{"type":810,"tag":25,"props":864,"children":866},{"className":865},[],[867],{"type":814,"value":537},{"type":814,"value":869},", которые позволяют следить за логами нескольких подов по селектору.",{"data":871,"body":872},{},{"type":807,"children":873},[874],{"type":810,"tag":21,"props":875,"children":876},{},[877,879,884,885,891],{"type":814,"value":878},"Используйте флаг ",{"type":810,"tag":25,"props":880,"children":882},{"className":881},[],[883],{"type":814,"value":265},{"type":814,"value":823},{"type":810,"tag":25,"props":886,"children":888},{"className":887},[],[889],{"type":814,"value":890},"kubectl logs \u003Cpod-name> --previous",{"type":814,"value":52},{"data":893,"body":894},{},{"type":807,"children":895},[896],{"type":810,"tag":21,"props":897,"children":898},{},[899],{"type":814,"value":759},{"data":901,"body":902},{},{"type":807,"children":903},[904],{"type":810,"tag":21,"props":905,"children":906},{},[907,909,915],{"type":814,"value":908},"Выполните ",{"type":810,"tag":25,"props":910,"children":912},{"className":911},[],[913],{"type":814,"value":914},"kubectl logs \u003Cимя_пода>",{"type":814,"value":916}," для получения логов контейнера в поде.",{"data":918,"body":919},{},{"type":807,"children":920},[921],{"type":810,"tag":21,"props":922,"children":923},{},[924,926,932],{"type":814,"value":925},"Если под содержит несколько контейнеров, укажите имя контейнера: ",{"type":810,"tag":25,"props":927,"children":929},{"className":928},[],[930],{"type":814,"value":931},"kubectl logs \u003Cимя_пода> -c \u003Cимя_контейнера>",{"type":814,"value":52},{"data":934,"body":935},{},{"type":807,"children":936},[937],{"type":810,"tag":21,"props":938,"children":939},{},[940,941,946,948,954],{"type":814,"value":878},{"type":810,"tag":25,"props":942,"children":944},{"className":943},[],[945],{"type":814,"value":229},{"type":814,"value":947}," для потоковой передачи логов: ",{"type":810,"tag":25,"props":949,"children":951},{"className":950},[],[952],{"type":814,"value":953},"kubectl logs -f \u003Cимя_пода>",{"type":814,"value":52},{"data":956,"body":957},{},{"type":807,"children":958},[959],{"type":810,"tag":21,"props":960,"children":961},{},[962,964,969,971,977,979,984],{"type":814,"value":963},"Примените ",{"type":810,"tag":25,"props":965,"children":967},{"className":966},[],[968],{"type":814,"value":301},{"type":814,"value":970}," (например, ",{"type":810,"tag":25,"props":972,"children":974},{"className":973},[],[975],{"type":814,"value":976},"--since=5m",{"type":814,"value":978},") или ",{"type":810,"tag":25,"props":980,"children":982},{"className":981},[],[983],{"type":814,"value":315},{"type":814,"value":985}," для выбора логов за определенный период.",{"data":987,"body":988},{},{"type":807,"children":989},[990],{"type":810,"tag":21,"props":991,"children":992},{},[993,995,1001],{"type":814,"value":994},"Перенаправьте вывод команды в файл: ",{"type":810,"tag":25,"props":996,"children":998},{"className":997},[],[999],{"type":814,"value":1000},"kubectl logs \u003Cимя_пода> > logs.txt",{"type":814,"value":52},[1003,1732],{"id":1004,"title":1005,"appliesTo":1006,"author":11,"body":1009,"canonical":736,"code":105,"createdAt":1681,"description":1682,"difficulty":739,"draft":740,"estimatedTime":1683,"extension":742,"faq":1684,"howToSteps":1697,"howToTotalTime":1713,"image":736,"keywords":1714,"locale":782,"meta":1720,"navigation":784,"path":788,"platform":786,"related":1721,"section":791,"seo":1724,"severity":1725,"stem":1726,"summary":1727,"tags":1728,"twitterCreator":736,"twitterSite":736,"type":802,"updatedAt":1681,"__hash__":1731},"content_ru/guides/linux/kubectl-basics.md","Основы kubectl: управление кластером Kubernetes из командной строки",[1007,1008],"Kubernetes 1.24+","kubectl 1.24+",{"type":13,"value":1010,"toc":1671},[1011,1015,1018,1020,1023,1034,1038,1041,1056,1059,1071,1074,1078,1081,1096,1099,1123,1126,1140,1144,1147,1164,1170,1280,1283,1297,1300,1317,1320,1344,1348,1351,1372,1375,1394,1397,1419,1422,1436,1439,1460,1464,1467,1480,1483,1501,1504,1519,1522,1560,1562,1565,1624,1626,1629,1639,1645,1655,1661,1668],[1012,1013,1005],"h1",{"id":1014},"основы-kubectl-управление-кластером-kubernetes-из-командной-строки",[21,1016,1017],{},"kubectl — это основной инструмент для управления Kubernetes-кластерами. Он позволяет выполнять все операции по созданию, обновлению и удалению ресурсов кластера прямо из командной строки. Этот гайд поможет вам освоить базовые команды kubectl для эффективной работы с Kubernetes.",[16,1019,32],{"id":31},[21,1021,1022],{},"Перед началом работы убедитесь, что:",[37,1024,1025,1028,1031],{},[40,1026,1027],{},"У вас установлен kubectl версии 1.24 или выше",[40,1029,1030],{},"Вы подключены к рабочему Kubernetes-кластеру",[40,1032,1033],{},"У вас есть права на создание и управление ресурсами кластера",[16,1035,1037],{"id":1036},"шаг-1-проверка-установки-и-версии-kubectl","Шаг 1: Проверка установки и версии kubectl",[21,1039,1040],{},"Сначала убедимся, что kubectl установлен и подключен к кластеру:",[100,1042,1044],{"className":102,"code":1043,"language":104,"meta":105,"style":105},"kubectl version --client\n",[25,1045,1046],{"__ignoreMap":105},[109,1047,1048,1050,1053],{"class":111,"line":112},[109,1049,27],{"class":115},[109,1051,1052],{"class":118}," version",[109,1054,1055],{"class":187}," --client\n",[21,1057,1058],{},"Если kubectl установлен, вы увидите информацию о версии клиента. Чтобы проверить подключение к кластеру:",[100,1060,1062],{"className":102,"code":1061,"language":104,"meta":105,"style":105},"kubectl cluster-info\n",[25,1063,1064],{"__ignoreMap":105},[109,1065,1066,1068],{"class":111,"line":112},[109,1067,27],{"class":115},[109,1069,1070],{"class":118}," cluster-info\n",[21,1072,1073],{},"Эта команда покажет URL API сервера и состояние подключения к кластеру.",[16,1075,1077],{"id":1076},"шаг-2-просмотр-информации-о-кластере","Шаг 2: Просмотр информации о кластере",[21,1079,1080],{},"Получите базовую информацию о кластере и его узлах:",[100,1082,1084],{"className":102,"code":1083,"language":104,"meta":105,"style":105},"kubectl get nodes\n",[25,1085,1086],{"__ignoreMap":105},[109,1087,1088,1090,1093],{"class":111,"line":112},[109,1089,27],{"class":115},[109,1091,1092],{"class":118}," get",[109,1094,1095],{"class":118}," nodes\n",[21,1097,1098],{},"Эта команда отобразит список всех узлов в кластере с их статусами. Чтобы получить более подробную информацию об узле:",[100,1100,1102],{"className":102,"code":1101,"language":104,"meta":105,"style":105},"kubectl describe node \u003Cимя-узла>\n",[25,1103,1104],{"__ignoreMap":105},[109,1105,1106,1108,1111,1114,1116,1119,1121],{"class":111,"line":112},[109,1107,27],{"class":115},[109,1109,1110],{"class":118}," describe",[109,1112,1113],{"class":118}," node",[109,1115,123],{"class":122},[109,1117,1118],{"class":118},"имя-узл",[109,1120,130],{"class":129},[109,1122,133],{"class":122},[21,1124,1125],{},"Вы также можете просмотреть все пространства имен в кластере:",[100,1127,1129],{"className":102,"code":1128,"language":104,"meta":105,"style":105},"kubectl get namespaces\n",[25,1130,1131],{"__ignoreMap":105},[109,1132,1133,1135,1137],{"class":111,"line":112},[109,1134,27],{"class":115},[109,1136,1092],{"class":118},[109,1138,1139],{"class":118}," namespaces\n",[16,1141,1143],{"id":1142},"шаг-3-создание-и-управление-подами","Шаг 3: Создание и управление подами",[21,1145,1146],{},"Создайте простой под из YAML-файла:",[100,1148,1150],{"className":102,"code":1149,"language":104,"meta":105,"style":105},"kubectl apply -f example-pod.yaml\n",[25,1151,1152],{"__ignoreMap":105},[109,1153,1154,1156,1159,1161],{"class":111,"line":112},[109,1155,27],{"class":115},[109,1157,1158],{"class":118}," apply",[109,1160,244],{"class":187},[109,1162,1163],{"class":118}," example-pod.yaml\n",[21,1165,1166,1167,164],{},"Пример содержимого ",[25,1168,1169],{},"example-pod.yaml",[100,1171,1175],{"className":1172,"code":1173,"language":1174,"meta":105,"style":105},"language-yaml shiki shiki-themes github-light github-dark","apiVersion: v1\nkind: Pod\nmetadata:\n  name: example-pod\nspec:\n  containers:\n  - name: nginx\n    image: nginx:latest\n    ports:\n    - containerPort: 80\n","yaml",[25,1176,1177,1188,1198,1206,1217,1225,1233,1247,1258,1266],{"__ignoreMap":105},[109,1178,1179,1183,1185],{"class":111,"line":112},[109,1180,1182],{"class":1181},"s9eBZ","apiVersion",[109,1184,823],{"class":129},[109,1186,1187],{"class":118},"v1\n",[109,1189,1190,1193,1195],{"class":111,"line":347},[109,1191,1192],{"class":1181},"kind",[109,1194,823],{"class":129},[109,1196,1197],{"class":118},"Pod\n",[109,1199,1200,1203],{"class":111,"line":572},[109,1201,1202],{"class":1181},"metadata",[109,1204,1205],{"class":129},":\n",[109,1207,1209,1212,1214],{"class":111,"line":1208},4,[109,1210,1211],{"class":1181},"  name",[109,1213,823],{"class":129},[109,1215,1216],{"class":118},"example-pod\n",[109,1218,1220,1223],{"class":111,"line":1219},5,[109,1221,1222],{"class":1181},"spec",[109,1224,1205],{"class":129},[109,1226,1228,1231],{"class":111,"line":1227},6,[109,1229,1230],{"class":1181},"  containers",[109,1232,1205],{"class":129},[109,1234,1236,1239,1242,1244],{"class":111,"line":1235},7,[109,1237,1238],{"class":129},"  - ",[109,1240,1241],{"class":1181},"name",[109,1243,823],{"class":129},[109,1245,1246],{"class":118},"nginx\n",[109,1248,1250,1253,1255],{"class":111,"line":1249},8,[109,1251,1252],{"class":1181},"    image",[109,1254,823],{"class":129},[109,1256,1257],{"class":118},"nginx:latest\n",[109,1259,1261,1264],{"class":111,"line":1260},9,[109,1262,1263],{"class":1181},"    ports",[109,1265,1205],{"class":129},[109,1267,1269,1272,1275,1277],{"class":111,"line":1268},10,[109,1270,1271],{"class":129},"    - ",[109,1273,1274],{"class":1181},"containerPort",[109,1276,823],{"class":129},[109,1278,1279],{"class":187},"80\n",[21,1281,1282],{},"Просмотрите созданные поды:",[100,1284,1286],{"className":102,"code":1285,"language":104,"meta":105,"style":105},"kubectl get pods\n",[25,1287,1288],{"__ignoreMap":105},[109,1289,1290,1292,1294],{"class":111,"line":112},[109,1291,27],{"class":115},[109,1293,1092],{"class":118},[109,1295,1296],{"class":118}," pods\n",[21,1298,1299],{},"Для получения подробной информации о поде:",[100,1301,1303],{"className":102,"code":1302,"language":104,"meta":105,"style":105},"kubectl describe pod example-pod\n",[25,1304,1305],{"__ignoreMap":105},[109,1306,1307,1309,1311,1314],{"class":111,"line":112},[109,1308,27],{"class":115},[109,1310,1110],{"class":118},[109,1312,1313],{"class":118}," pod",[109,1315,1316],{"class":118}," example-pod\n",[21,1318,1319],{},"Выполните команду внутри пода:",[100,1321,1323],{"className":102,"code":1322,"language":104,"meta":105,"style":105},"kubectl exec example-pod -- ls /app\n",[25,1324,1325],{"__ignoreMap":105},[109,1326,1327,1329,1332,1335,1338,1341],{"class":111,"line":112},[109,1328,27],{"class":115},[109,1330,1331],{"class":118}," exec",[109,1333,1334],{"class":118}," example-pod",[109,1336,1337],{"class":187}," --",[109,1339,1340],{"class":118}," ls",[109,1342,1343],{"class":118}," /app\n",[16,1345,1347],{"id":1346},"шаг-4-работа-с-сервисами-и-развертываниями","Шаг 4: Работа с сервисами и развертываниями",[21,1349,1350],{},"Создайте развертывание:",[100,1352,1354],{"className":102,"code":1353,"language":104,"meta":105,"style":105},"kubectl create deployment nginx-deployment --image=nginx:latest\n",[25,1355,1356],{"__ignoreMap":105},[109,1357,1358,1360,1363,1366,1369],{"class":111,"line":112},[109,1359,27],{"class":115},[109,1361,1362],{"class":118}," create",[109,1364,1365],{"class":118}," deployment",[109,1367,1368],{"class":118}," nginx-deployment",[109,1370,1371],{"class":187}," --image=nginx:latest\n",[21,1373,1374],{},"Масштабируйте развертывание:",[100,1376,1378],{"className":102,"code":1377,"language":104,"meta":105,"style":105},"kubectl scale deployment nginx-deployment --replicas=3\n",[25,1379,1380],{"__ignoreMap":105},[109,1381,1382,1384,1387,1389,1391],{"class":111,"line":112},[109,1383,27],{"class":115},[109,1385,1386],{"class":118}," scale",[109,1388,1365],{"class":118},[109,1390,1368],{"class":118},[109,1392,1393],{"class":187}," --replicas=3\n",[21,1395,1396],{},"Создайте сервис для доступа к развертыванию:",[100,1398,1400],{"className":102,"code":1399,"language":104,"meta":105,"style":105},"kubectl expose deployment nginx-deployment --port=80 --type=NodePort\n",[25,1401,1402],{"__ignoreMap":105},[109,1403,1404,1406,1409,1411,1413,1416],{"class":111,"line":112},[109,1405,27],{"class":115},[109,1407,1408],{"class":118}," expose",[109,1410,1365],{"class":118},[109,1412,1368],{"class":118},[109,1414,1415],{"class":187}," --port=80",[109,1417,1418],{"class":187}," --type=NodePort\n",[21,1420,1421],{},"Просмотрите созданные сервисы:",[100,1423,1425],{"className":102,"code":1424,"language":104,"meta":105,"style":105},"kubectl get services\n",[25,1426,1427],{"__ignoreMap":105},[109,1428,1429,1431,1433],{"class":111,"line":112},[109,1430,27],{"class":115},[109,1432,1092],{"class":118},[109,1434,1435],{"class":118}," services\n",[21,1437,1438],{},"Обновите образ в развертывании:",[100,1440,1442],{"className":102,"code":1441,"language":104,"meta":105,"style":105},"kubectl set image deployment/nginx-deployment nginx=nginx:1.21\n",[25,1443,1444],{"__ignoreMap":105},[109,1445,1446,1448,1451,1454,1457],{"class":111,"line":112},[109,1447,27],{"class":115},[109,1449,1450],{"class":118}," set",[109,1452,1453],{"class":118}," image",[109,1455,1456],{"class":118}," deployment/nginx-deployment",[109,1458,1459],{"class":118}," nginx=nginx:1.21\n",[16,1461,1463],{"id":1462},"шаг-5-просмотр-логов-и-отладка","Шаг 5: Просмотр логов и отладка",[21,1465,1466],{},"Получите доступ к логам пода:",[100,1468,1470],{"className":102,"code":1469,"language":104,"meta":105,"style":105},"kubectl logs example-pod\n",[25,1471,1472],{"__ignoreMap":105},[109,1473,1474,1476,1478],{"class":111,"line":112},[109,1475,27],{"class":115},[109,1477,119],{"class":118},[109,1479,1316],{"class":118},[21,1481,1482],{},"Для подов с несколькими контейнерами:",[100,1484,1486],{"className":102,"code":1485,"language":104,"meta":105,"style":105},"kubectl logs example-pod -c nginx\n",[25,1487,1488],{"__ignoreMap":105},[109,1489,1490,1492,1494,1496,1498],{"class":111,"line":112},[109,1491,27],{"class":115},[109,1493,119],{"class":118},[109,1495,1334],{"class":118},[109,1497,188],{"class":187},[109,1499,1500],{"class":118}," nginx\n",[21,1502,1503],{},"Отследите логи в реальном времени:",[100,1505,1507],{"className":102,"code":1506,"language":104,"meta":105,"style":105},"kubectl logs -f example-pod\n",[25,1508,1509],{"__ignoreMap":105},[109,1510,1511,1513,1515,1517],{"class":111,"line":112},[109,1512,27],{"class":115},[109,1514,119],{"class":118},[109,1516,244],{"class":187},[109,1518,1316],{"class":118},[21,1520,1521],{},"Удалите ресурсы:",[100,1523,1525],{"className":102,"code":1524,"language":104,"meta":105,"style":105},"kubectl delete pod example-pod\nkubectl delete deployment nginx-deployment\nkubectl delete service nginx-deployment\n",[25,1526,1527,1538,1549],{"__ignoreMap":105},[109,1528,1529,1531,1534,1536],{"class":111,"line":112},[109,1530,27],{"class":115},[109,1532,1533],{"class":118}," delete",[109,1535,1313],{"class":118},[109,1537,1316],{"class":118},[109,1539,1540,1542,1544,1546],{"class":111,"line":347},[109,1541,27],{"class":115},[109,1543,1533],{"class":118},[109,1545,1365],{"class":118},[109,1547,1548],{"class":118}," nginx-deployment\n",[109,1550,1551,1553,1555,1558],{"class":111,"line":572},[109,1552,27],{"class":115},[109,1554,1533],{"class":118},[109,1556,1557],{"class":118}," service",[109,1559,1548],{"class":118},[16,1561,610],{"id":609},[21,1563,1564],{},"Чтобы убедиться, что все работает корректно:",[1566,1567,1568,1586,1601],"ol",{},[40,1569,1570,1571,164,1574],{},"Проверьте, что все поды находятся в статусе ",[25,1572,1573],{},"Running",[100,1575,1576],{"className":102,"code":1285,"language":104,"meta":105,"style":105},[25,1577,1578],{"__ignoreMap":105},[109,1579,1580,1582,1584],{"class":111,"line":112},[109,1581,27],{"class":115},[109,1583,1092],{"class":118},[109,1585,1296],{"class":118},[40,1587,1588,1589],{},"Убедитесь, что сервисы доступны:",[100,1590,1591],{"className":102,"code":1424,"language":104,"meta":105,"style":105},[25,1592,1593],{"__ignoreMap":105},[109,1594,1595,1597,1599],{"class":111,"line":112},[109,1596,27],{"class":115},[109,1598,1092],{"class":118},[109,1600,1435],{"class":118},[40,1602,1603,1604],{},"Проверьте логи на наличие ошибок:",[100,1605,1607],{"className":102,"code":1606,"language":104,"meta":105,"style":105},"kubectl logs \u003Cpod-name>\n",[25,1608,1609],{"__ignoreMap":105},[109,1610,1611,1613,1615,1617,1620,1622],{"class":111,"line":112},[109,1612,27],{"class":115},[109,1614,119],{"class":118},[109,1616,123],{"class":122},[109,1618,1619],{"class":118},"pod-nam",[109,1621,438],{"class":129},[109,1623,133],{"class":122},[16,1625,635],{"id":634},[21,1627,1628],{},"При работе с kubectl могут возникнуть следующие проблемы:",[21,1630,1631,1634,1635,1638],{},[75,1632,1633],{},"Ошибка подключения к кластеру:","\nЕсли kubectl не может подключиться к кластеру, проверьте файл конфигурации ",[25,1636,1637],{},"~/.kube/config"," и убедитесь, что контекст указан правильно.",[21,1640,1641,1644],{},[75,1642,1643],{},"Права доступа:","\nЕсли возникают ошибки доступа, убедитесь, что у вас есть необходимые права RBAC для выполнения операций.",[21,1646,1647,1650,1651,1654],{},[75,1648,1649],{},"Неверный синтаксис YAML:","\nПри создании ресурсов из YAML-файлов внимательно проверяйте синтаксис. Используйте ",[25,1652,1653],{},"kubectl apply --dry-run=client -f file.yaml"," для проверки перед применением.",[21,1656,1657,1660],{},[75,1658,1659],{},"Недостаточно ресурсов:","\nЕсли поды не могут запуститься, проверьте доступность ресурсов в кластере и лимиты ресурсов в YAML-файле.",[21,1662,1663,1664,1667],{},"Для получения дополнительной информации используйте команду ",[25,1665,1666],{},"kubectl explain \u003Cресурс>"," для просмотра схемы ресурсов Kubernetes.",[708,1669,1670],{},"html pre.shiki code .sScJk, html code.shiki .sScJk{--shiki-default:#6F42C1;--shiki-dark:#B392F0}html pre.shiki code .sZZnC, html code.shiki .sZZnC{--shiki-default:#032F62;--shiki-dark:#9ECBFF}html pre.shiki code .sj4cs, html code.shiki .sj4cs{--shiki-default:#005CC5;--shiki-dark:#79B8FF}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .szBVR, html code.shiki .szBVR{--shiki-default:#D73A49;--shiki-dark:#F97583}html pre.shiki code .sVt8B, html code.shiki .sVt8B{--shiki-default:#24292E;--shiki-dark:#E1E4E8}html pre.shiki code .s9eBZ, html code.shiki .s9eBZ{--shiki-default:#22863A;--shiki-dark:#85E89D}",{"title":105,"searchDepth":347,"depth":347,"links":1672},[1673,1674,1675,1676,1677,1678,1679,1680],{"id":31,"depth":347,"text":32},{"id":1036,"depth":347,"text":1037},{"id":1076,"depth":347,"text":1077},{"id":1142,"depth":347,"text":1143},{"id":1346,"depth":347,"text":1347},{"id":1462,"depth":347,"text":1463},{"id":609,"depth":347,"text":610},{"id":634,"depth":347,"text":635},"2026-04-09 18:28:39","Подробный гайд по основным командам kubectl для управления Kubernetes. Научитесь создавать, обновлять и удалять ресурсы кластера.","15-20 мин",[1685,1688,1691,1694],{"question":1686,"answer":1687},"Что такое kubectl и зачем он нужен?","kubectl — это CLI-интерфейс для управления Kubernetes-кластером. Он позволяет создавать, обновлять и удалять ресурсы кластера, а также просматривать их состояние.",{"question":1689,"answer":1690},"Как проверить, что kubectl установлен?","Выполните команду `kubectl version --client`. Если kubectl установлен, вы увидите информацию о версии клиента.",{"question":1692,"answer":1693},"Как подключиться к кластеру Kubernetes?","kubectl автоматически подключается к кластеру, указанному в файле ~/.kube/config. Если у вас несколько кластеров, используйте `kubectl config use-context` для переключения.",{"question":1695,"answer":1696},"Как получить помощь по kubectl?","Используйте `kubectl --help` для общей помощи или `kubectl \u003Ccommand> --help` для помощи по конкретной команде.",[1698,1701,1704,1707,1710],{"name":1699,"text":1700},"Проверка установки и версии kubectl","Убедитесь, что kubectl установлен и подключен к кластеру.",{"name":1702,"text":1703},"Просмотр информации о кластере","Получите базовую информацию о кластере и его узлах.",{"name":1705,"text":1706},"Создание и управление подами","Создайте поды, просмотрите их статус и выполните команды внутри.",{"name":1708,"text":1709},"Работа с сервисами и развертываниями","Создайте сервисы и развертывания, обновите и удалите ресурсы.",{"name":1711,"text":1712},"Просмотр логов и отладка","Получите доступ к логам подов и выполните отладку.","PT20M",[1715,1716,1717,1718,1719],"kubectl команды","управление kubernetes","kubectl basics","kubectl tutorial","kubernetes CLI",{},[1722,1723],"/guides/linux/kubectl-advanced","/guides/linux/kubernetes-installation",{"title":1005,"description":1682},"low","guides/linux/kubectl-basics","Изучите основные команды kubectl для эффективного управления Kubernetes-кластером. Этот гайд поможет вам освоить базовые операции с подами, сервисами и развертываниями.",[796,27,786,1729,1730],"CLI","containers","3tsUayA15nujFfvFTHB_B4BIZZ6hzN7lpDy_pMyQXPE",{"id":1733,"title":1734,"appliesTo":1735,"author":11,"body":1738,"canonical":736,"code":736,"createdAt":2688,"description":2689,"difficulty":2690,"draft":740,"estimatedTime":741,"extension":742,"faq":2691,"howToSteps":2704,"howToTotalTime":771,"image":736,"keywords":2720,"locale":782,"meta":2728,"navigation":784,"path":790,"platform":786,"related":2729,"section":2733,"seo":2734,"severity":2690,"stem":2735,"summary":2736,"tags":2737,"twitterCreator":736,"twitterSite":736,"type":2740,"updatedAt":2688,"__hash__":2741},"content_ru/errors/linux/container-failed-to-start.md","Контейнер Docker не запускается: причины и способы решения",[1736,1737,8,10,9],"Docker 20.10+","Docker Compose 2.0+",{"type":13,"value":1739,"toc":2674},[1740,1744,1762,1765,1783,1786,1793,1796,1802,1806,1856,1860,1864,1867,1926,1935,1939,1942,2032,2038,2074,2078,2081,2171,2174,2191,2195,2198,2253,2255,2259,2262,2316,2319,2355,2359,2365,2535,2540,2544,2547,2614,2618,2621,2671],[16,1741,1743],{"id":1742},"что-означает-ошибка-container-failed-to-start","Что означает ошибка «container failed to start»",[21,1745,1746,1747,1750,1751,862,1754,1757,1758,1761],{},"Ошибка ",[75,1748,1749],{},"«container failed to start»"," (или «Error starting container») означает, что Docker не смог запустить контейнер после команды ",[25,1752,1753],{},"docker run",[25,1755,1756],{},"docker-compose up",". Контейнер создаётся, но переходит в состояние ",[75,1759,1760],{},"Exited"," с ненулевым кодом возврата.",[21,1763,1764],{},"Типичные проявления проблемы:",[37,1766,1767,1773,1776],{},[40,1768,1769,1770,1772],{},"Команда ",[25,1771,1756],{}," завершается с ошибкой",[40,1774,1775],{},"Контейнер постоянно перезапускается (restart loop)",[40,1777,1778,1779,1782],{},"После ",[25,1780,1781],{},"docker start"," контейнер сразу останавливается",[21,1784,1785],{},"Полный текст ошибки может выглядеть так:",[100,1787,1791],{"className":1788,"code":1790,"language":814},[1789],"language-text","Error response from daemon: driver failed programming external connectivity on endpoint\n",[25,1792,1790],{"__ignoreMap":105},[21,1794,1795],{},"или",[100,1797,1800],{"className":1798,"code":1799,"language":814},[1789],"OCI runtime create failed: container_linux.go: starting container process caused process\n",[25,1801,1799],{"__ignoreMap":105},[16,1803,1805],{"id":1804},"причины-возникновения","Причины возникновения",[1566,1807,1808,1814,1820,1826,1832,1838,1844,1850],{},[40,1809,1810,1813],{},[75,1811,1812],{},"Конфликт портов"," — порт, который пытается занять контейнер, уже используется другим процессом или контейнером",[40,1815,1816,1819],{},[75,1817,1818],{},"Ошибка в приложении"," — приложение внутри контейнера падает из-за неправильной конфигурации, отсутствия зависимостей или ошибок в коде",[40,1821,1822,1825],{},[75,1823,1824],{},"Проблемы с томами (volumes)"," — неверный путь для монтирования, отсутствие прав на чтение/запись, несуществующая директория на хосте",[40,1827,1828,1831],{},[75,1829,1830],{},"Недостаток ресурсов"," — не хватает оперативной памяти, места на диске или CPU",[40,1833,1834,1837],{},[75,1835,1836],{},"Проблемы с сетью"," — неправильная конфигурация сетевого драйвера, отсутствие доступа к интернету для загрузки образов",[40,1839,1840,1843],{},[75,1841,1842],{},"Повреждённый или отсутствующий образ"," — образ не был правильно собран или удалён",[40,1845,1846,1849],{},[75,1847,1848],{},"Неверные права доступа"," — пользователь внутри контейнера не имеет прав на запуск процессов или доступ к файлам",[40,1851,1852,1855],{},[75,1853,1854],{},"Ошибки в CMD/ENTRYPOINT"," — неправильная команда запуска в Dockerfile",[16,1857,1859],{"id":1858},"способы-решения","Способы решения",[92,1861,1863],{"id":1862},"способ-1-диагностика-через-логи","Способ 1: Диагностика через логи",[21,1865,1866],{},"Первое, что нужно сделать — посмотреть логи контейнера. Они покажут точную причину ошибки.",[100,1868,1870],{"className":102,"code":1869,"language":104,"meta":105,"style":105},"# Просмотр всех контейнеров и их статус\ndocker ps -a\n\n# Получение логов конкретного контейнера\ndocker logs container_name\n\n# Логи в реальном времени (если контейнер пытается запуститься)\ndocker logs -f container_name\n",[25,1871,1872,1877,1888,1893,1898,1907,1911,1916],{"__ignoreMap":105},[109,1873,1874],{"class":111,"line":112},[109,1875,1876],{"class":551},"# Просмотр всех контейнеров и их статус\n",[109,1878,1879,1882,1885],{"class":111,"line":347},[109,1880,1881],{"class":115},"docker",[109,1883,1884],{"class":118}," ps",[109,1886,1887],{"class":187}," -a\n",[109,1889,1890],{"class":111,"line":572},[109,1891,1892],{"emptyLinePlaceholder":784},"\n",[109,1894,1895],{"class":111,"line":1208},[109,1896,1897],{"class":551},"# Получение логов конкретного контейнера\n",[109,1899,1900,1902,1904],{"class":111,"line":1219},[109,1901,1881],{"class":115},[109,1903,119],{"class":118},[109,1905,1906],{"class":118}," container_name\n",[109,1908,1909],{"class":111,"line":1227},[109,1910,1892],{"emptyLinePlaceholder":784},[109,1912,1913],{"class":111,"line":1235},[109,1914,1915],{"class":551},"# Логи в реальном времени (если контейнер пытается запуститься)\n",[109,1917,1918,1920,1922,1924],{"class":111,"line":1249},[109,1919,1881],{"class":115},[109,1921,119],{"class":118},[109,1923,244],{"class":187},[109,1925,1906],{"class":118},[69,1927,1928],{},[21,1929,1930,1931,1934],{},"💡 Совет: Если контейнер постоянно перезапускается, используйте ",[25,1932,1933],{},"docker events"," для отслеживания в реальном времени.",[92,1936,1938],{"id":1937},"способ-2-проверка-конфликтов-портов","Способ 2: Проверка конфликтов портов",[21,1940,1941],{},"Частая причина — порт уже занят. Проверьте и освободите его.",[100,1943,1945],{"className":102,"code":1944,"language":104,"meta":105,"style":105},"# Найдите процесс, занимающий порт (например, 8080)\nsudo lsof -i :8080\n\n# Или с помощью netstat\nsudo netstat -tulpn | grep 8080\n\n# Остановите контейнер или процесс, занимающий порт\ndocker-compose down\n# или\nsudo kill \u003CPID>\n",[25,1946,1947,1952,1965,1969,1974,1993,1997,2002,2010,2015],{"__ignoreMap":105},[109,1948,1949],{"class":111,"line":112},[109,1950,1951],{"class":551},"# Найдите процесс, занимающий порт (например, 8080)\n",[109,1953,1954,1956,1959,1962],{"class":111,"line":347},[109,1955,557],{"class":115},[109,1957,1958],{"class":118}," lsof",[109,1960,1961],{"class":187}," -i",[109,1963,1964],{"class":118}," :8080\n",[109,1966,1967],{"class":111,"line":572},[109,1968,1892],{"emptyLinePlaceholder":784},[109,1970,1971],{"class":111,"line":1208},[109,1972,1973],{"class":551},"# Или с помощью netstat\n",[109,1975,1976,1978,1981,1984,1987,1990],{"class":111,"line":1219},[109,1977,557],{"class":115},[109,1979,1980],{"class":118}," netstat",[109,1982,1983],{"class":187}," -tulpn",[109,1985,1986],{"class":122}," |",[109,1988,1989],{"class":115}," grep",[109,1991,1992],{"class":187}," 8080\n",[109,1994,1995],{"class":111,"line":1227},[109,1996,1892],{"emptyLinePlaceholder":784},[109,1998,1999],{"class":111,"line":1235},[109,2000,2001],{"class":551},"# Остановите контейнер или процесс, занимающий порт\n",[109,2003,2004,2007],{"class":111,"line":1249},[109,2005,2006],{"class":115},"docker-compose",[109,2008,2009],{"class":118}," down\n",[109,2011,2012],{"class":111,"line":1260},[109,2013,2014],{"class":551},"# или\n",[109,2016,2017,2019,2022,2024,2027,2030],{"class":111,"line":1268},[109,2018,557],{"class":115},[109,2020,2021],{"class":118}," kill",[109,2023,123],{"class":122},[109,2025,2026],{"class":118},"PI",[109,2028,2029],{"class":129},"D",[109,2031,133],{"class":122},[21,2033,2034,2035,164],{},"Измените порт в ",[25,2036,2037],{},"docker-compose.yml",[100,2039,2041],{"className":1172,"code":2040,"language":1174,"meta":105,"style":105},"services:\n  web:\n    ports:\n      - \"8081:80\"  # Измените на свободный порт\n",[25,2042,2043,2050,2057,2063],{"__ignoreMap":105},[109,2044,2045,2048],{"class":111,"line":112},[109,2046,2047],{"class":1181},"services",[109,2049,1205],{"class":129},[109,2051,2052,2055],{"class":111,"line":347},[109,2053,2054],{"class":1181},"  web",[109,2056,1205],{"class":129},[109,2058,2059,2061],{"class":111,"line":572},[109,2060,1263],{"class":1181},[109,2062,1205],{"class":129},[109,2064,2065,2068,2071],{"class":111,"line":1208},[109,2066,2067],{"class":129},"      - ",[109,2069,2070],{"class":118},"\"8081:80\"",[109,2072,2073],{"class":551},"  # Измените на свободный порт\n",[92,2075,2077],{"id":2076},"способ-3-проверка-прав-доступа-к-томам","Способ 3: Проверка прав доступа к томам",[21,2079,2080],{},"Если в логах ошибка «permission denied», проблема в правах на монтируемые директории.",[100,2082,2084],{"className":102,"code":2083,"language":104,"meta":105,"style":105},"# Проверьте владельца директории\nls -la /path/to/volume\n\n# Измените владельца на текущего пользователя\nsudo chown -R $(id -u):$(id -g) /path/to/volume\n\n# Или для конкретного пользователя\nsudo chown -R user:group /path/to/volume\n",[25,2085,2086,2091,2102,2106,2111,2149,2153,2158],{"__ignoreMap":105},[109,2087,2088],{"class":111,"line":112},[109,2089,2090],{"class":551},"# Проверьте владельца директории\n",[109,2092,2093,2096,2099],{"class":111,"line":347},[109,2094,2095],{"class":115},"ls",[109,2097,2098],{"class":187}," -la",[109,2100,2101],{"class":118}," /path/to/volume\n",[109,2103,2104],{"class":111,"line":572},[109,2105,1892],{"emptyLinePlaceholder":784},[109,2107,2108],{"class":111,"line":1208},[109,2109,2110],{"class":551},"# Измените владельца на текущего пользователя\n",[109,2112,2113,2115,2118,2121,2124,2127,2130,2133,2135,2138,2140,2143,2146],{"class":111,"line":1219},[109,2114,557],{"class":115},[109,2116,2117],{"class":118}," chown",[109,2119,2120],{"class":187}," -R",[109,2122,2123],{"class":129}," $(",[109,2125,2126],{"class":115},"id",[109,2128,2129],{"class":187}," -u",[109,2131,2132],{"class":129},")",[109,2134,164],{"class":118},[109,2136,2137],{"class":129},"$(",[109,2139,2126],{"class":115},[109,2141,2142],{"class":187}," -g",[109,2144,2145],{"class":129},") ",[109,2147,2148],{"class":118},"/path/to/volume\n",[109,2150,2151],{"class":111,"line":1227},[109,2152,1892],{"emptyLinePlaceholder":784},[109,2154,2155],{"class":111,"line":1235},[109,2156,2157],{"class":551},"# Или для конкретного пользователя\n",[109,2159,2160,2162,2164,2166,2169],{"class":111,"line":1249},[109,2161,557],{"class":115},[109,2163,2117],{"class":118},[109,2165,2120],{"class":187},[109,2167,2168],{"class":118}," user:group",[109,2170,2101],{"class":118},[21,2172,2173],{},"В Dockerfile можно добавить создание пользователя:",[100,2175,2179],{"className":2176,"code":2177,"language":2178,"meta":105,"style":105},"language-dockerfile shiki shiki-themes github-light github-dark","RUN usermod -u 1000 appuser\nUSER appuser\n","dockerfile",[25,2180,2181,2186],{"__ignoreMap":105},[109,2182,2183],{"class":111,"line":112},[109,2184,2185],{},"RUN usermod -u 1000 appuser\n",[109,2187,2188],{"class":111,"line":347},[109,2189,2190],{},"USER appuser\n",[92,2192,2194],{"id":2193},"способ-4-проверка-системных-ресурсов","Способ 4: Проверка системных ресурсов",[21,2196,2197],{},"Недостаток памяти или места на диске — частая причина отказа контейнеров.",[100,2199,2201],{"className":102,"code":2200,"language":104,"meta":105,"style":105},"# Проверка свободной оперативной памяти\nfree -h\n\n# Проверка места на диске\ndf -h\n\n# Очистите неиспользуемые образы и контейнеры\ndocker system prune -a\n",[25,2202,2203,2208,2216,2220,2225,2232,2236,2241],{"__ignoreMap":105},[109,2204,2205],{"class":111,"line":112},[109,2206,2207],{"class":551},"# Проверка свободной оперативной памяти\n",[109,2209,2210,2213],{"class":111,"line":347},[109,2211,2212],{"class":115},"free",[109,2214,2215],{"class":187}," -h\n",[109,2217,2218],{"class":111,"line":572},[109,2219,1892],{"emptyLinePlaceholder":784},[109,2221,2222],{"class":111,"line":1208},[109,2223,2224],{"class":551},"# Проверка места на диске\n",[109,2226,2227,2230],{"class":111,"line":1219},[109,2228,2229],{"class":115},"df",[109,2231,2215],{"class":187},[109,2233,2234],{"class":111,"line":1227},[109,2235,1892],{"emptyLinePlaceholder":784},[109,2237,2238],{"class":111,"line":1235},[109,2239,2240],{"class":551},"# Очистите неиспользуемые образы и контейнеры\n",[109,2242,2243,2245,2248,2251],{"class":111,"line":1249},[109,2244,1881],{"class":115},[109,2246,2247],{"class":118}," system",[109,2249,2250],{"class":118}," prune",[109,2252,1887],{"class":187},[513,2254],{},[92,2256,2258],{"id":2257},"способ-5-пересборка-образа","Способ 5: Пересборка образа",[21,2260,2261],{},"Образ может быть повреждён или содержать устаревшие зависимости.",[100,2263,2265],{"className":102,"code":2264,"language":104,"meta":105,"style":105},"# Остановите все контейнеры\ndocker-compose down\n\n# Пересоберите образ без кэша\ndocker-compose build --no-cache\n\n# Запустите заново\ndocker-compose up -d\n",[25,2266,2267,2272,2278,2282,2287,2297,2301,2306],{"__ignoreMap":105},[109,2268,2269],{"class":111,"line":112},[109,2270,2271],{"class":551},"# Остановите все контейнеры\n",[109,2273,2274,2276],{"class":111,"line":347},[109,2275,2006],{"class":115},[109,2277,2009],{"class":118},[109,2279,2280],{"class":111,"line":572},[109,2281,1892],{"emptyLinePlaceholder":784},[109,2283,2284],{"class":111,"line":1208},[109,2285,2286],{"class":551},"# Пересоберите образ без кэша\n",[109,2288,2289,2291,2294],{"class":111,"line":1219},[109,2290,2006],{"class":115},[109,2292,2293],{"class":118}," build",[109,2295,2296],{"class":187}," --no-cache\n",[109,2298,2299],{"class":111,"line":1227},[109,2300,1892],{"emptyLinePlaceholder":784},[109,2302,2303],{"class":111,"line":1235},[109,2304,2305],{"class":551},"# Запустите заново\n",[109,2307,2308,2310,2313],{"class":111,"line":1249},[109,2309,2006],{"class":115},[109,2311,2312],{"class":118}," up",[109,2314,2315],{"class":187}," -d\n",[21,2317,2318],{},"Или для отдельного образа:",[100,2320,2322],{"className":102,"code":2321,"language":104,"meta":105,"style":105},"docker build -t my_image --no-cache .\ndocker run -d my_image\n",[25,2323,2324,2342],{"__ignoreMap":105},[109,2325,2326,2328,2330,2333,2336,2339],{"class":111,"line":112},[109,2327,1881],{"class":115},[109,2329,2293],{"class":118},[109,2331,2332],{"class":187}," -t",[109,2334,2335],{"class":118}," my_image",[109,2337,2338],{"class":187}," --no-cache",[109,2340,2341],{"class":118}," .\n",[109,2343,2344,2346,2349,2352],{"class":111,"line":347},[109,2345,1881],{"class":115},[109,2347,2348],{"class":118}," run",[109,2350,2351],{"class":187}," -d",[109,2353,2354],{"class":118}," my_image\n",[92,2356,2358],{"id":2357},"способ-6-проверка-конфигурации-docker-compose","Способ 6: Проверка конфигурации Docker Compose",[21,2360,2361,2362,2364],{},"Ошибки в ",[25,2363,2037],{}," часто приводят к проблемам с запуском.",[100,2366,2368],{"className":1172,"code":2367,"language":1174,"meta":105,"style":105},"version: '3.8'\nservices:\n  app:\n    build: .\n    restart: always  # Автоперезапуск при падении\n    environment:\n      - NODE_ENV=production\n    volumes:\n      - ./data:/app/data  # Проверьте пути\n    ports:\n      - \"3000:3000\"\n    depends_on:         # Проверьте зависимости\n      - db\n  db:\n    image: postgres:14\n    volumes:\n      - db_data:/var/lib/postgresql/data\n\nvolumes:\n  db_data:\n",[25,2369,2370,2380,2386,2393,2403,2416,2423,2430,2437,2447,2453,2461,2473,2481,2489,2499,2506,2514,2519,2527],{"__ignoreMap":105},[109,2371,2372,2375,2377],{"class":111,"line":112},[109,2373,2374],{"class":1181},"version",[109,2376,823],{"class":129},[109,2378,2379],{"class":118},"'3.8'\n",[109,2381,2382,2384],{"class":111,"line":347},[109,2383,2047],{"class":1181},[109,2385,1205],{"class":129},[109,2387,2388,2391],{"class":111,"line":572},[109,2389,2390],{"class":1181},"  app",[109,2392,1205],{"class":129},[109,2394,2395,2398,2400],{"class":111,"line":1208},[109,2396,2397],{"class":1181},"    build",[109,2399,823],{"class":129},[109,2401,2402],{"class":187},".\n",[109,2404,2405,2408,2410,2413],{"class":111,"line":1219},[109,2406,2407],{"class":1181},"    restart",[109,2409,823],{"class":129},[109,2411,2412],{"class":118},"always",[109,2414,2415],{"class":551},"  # Автоперезапуск при падении\n",[109,2417,2418,2421],{"class":111,"line":1227},[109,2419,2420],{"class":1181},"    environment",[109,2422,1205],{"class":129},[109,2424,2425,2427],{"class":111,"line":1235},[109,2426,2067],{"class":129},[109,2428,2429],{"class":118},"NODE_ENV=production\n",[109,2431,2432,2435],{"class":111,"line":1249},[109,2433,2434],{"class":1181},"    volumes",[109,2436,1205],{"class":129},[109,2438,2439,2441,2444],{"class":111,"line":1260},[109,2440,2067],{"class":129},[109,2442,2443],{"class":118},"./data:/app/data",[109,2445,2446],{"class":551},"  # Проверьте пути\n",[109,2448,2449,2451],{"class":111,"line":1268},[109,2450,1263],{"class":1181},[109,2452,1205],{"class":129},[109,2454,2456,2458],{"class":111,"line":2455},11,[109,2457,2067],{"class":129},[109,2459,2460],{"class":118},"\"3000:3000\"\n",[109,2462,2464,2467,2470],{"class":111,"line":2463},12,[109,2465,2466],{"class":1181},"    depends_on",[109,2468,2469],{"class":129},":         ",[109,2471,2472],{"class":551},"# Проверьте зависимости\n",[109,2474,2476,2478],{"class":111,"line":2475},13,[109,2477,2067],{"class":129},[109,2479,2480],{"class":118},"db\n",[109,2482,2484,2487],{"class":111,"line":2483},14,[109,2485,2486],{"class":1181},"  db",[109,2488,1205],{"class":129},[109,2490,2492,2494,2496],{"class":111,"line":2491},15,[109,2493,1252],{"class":1181},[109,2495,823],{"class":129},[109,2497,2498],{"class":118},"postgres:14\n",[109,2500,2502,2504],{"class":111,"line":2501},16,[109,2503,2434],{"class":1181},[109,2505,1205],{"class":129},[109,2507,2509,2511],{"class":111,"line":2508},17,[109,2510,2067],{"class":129},[109,2512,2513],{"class":118},"db_data:/var/lib/postgresql/data\n",[109,2515,2517],{"class":111,"line":2516},18,[109,2518,1892],{"emptyLinePlaceholder":784},[109,2520,2522,2525],{"class":111,"line":2521},19,[109,2523,2524],{"class":1181},"volumes",[109,2526,1205],{"class":129},[109,2528,2530,2533],{"class":111,"line":2529},20,[109,2531,2532],{"class":1181},"  db_data",[109,2534,1205],{"class":129},[69,2536,2537],{},[21,2538,2539],{},"⚠️ Важно: Убедитесь, что все пути в volumes существуют на хосте, а переменные окружения имеют корректные значения.",[92,2541,2543],{"id":2542},"способ-7-проверка-состояния-docker-демона","Способ 7: Проверка состояния Docker демона",[21,2545,2546],{},"Иногда проблема в самом Docker.",[100,2548,2550],{"className":102,"code":2549,"language":104,"meta":105,"style":105},"# Проверьте статус демона\nsudo systemctl status docker\n\n# Перезапустите Docker\nsudo systemctl restart docker\n\n# Проверьте логи Docker\nsudo journalctl -u docker -f\n",[25,2551,2552,2557,2570,2574,2579,2590,2594,2599],{"__ignoreMap":105},[109,2553,2554],{"class":111,"line":112},[109,2555,2556],{"class":551},"# Проверьте статус демона\n",[109,2558,2559,2561,2564,2567],{"class":111,"line":347},[109,2560,557],{"class":115},[109,2562,2563],{"class":118}," systemctl",[109,2565,2566],{"class":118}," status",[109,2568,2569],{"class":118}," docker\n",[109,2571,2572],{"class":111,"line":572},[109,2573,1892],{"emptyLinePlaceholder":784},[109,2575,2576],{"class":111,"line":1208},[109,2577,2578],{"class":551},"# Перезапустите Docker\n",[109,2580,2581,2583,2585,2588],{"class":111,"line":1219},[109,2582,557],{"class":115},[109,2584,2563],{"class":118},[109,2586,2587],{"class":118}," restart",[109,2589,2569],{"class":118},[109,2591,2592],{"class":111,"line":1227},[109,2593,1892],{"emptyLinePlaceholder":784},[109,2595,2596],{"class":111,"line":1235},[109,2597,2598],{"class":551},"# Проверьте логи Docker\n",[109,2600,2601,2603,2606,2608,2611],{"class":111,"line":1249},[109,2602,557],{"class":115},[109,2604,2605],{"class":118}," journalctl",[109,2607,2129],{"class":187},[109,2609,2610],{"class":118}," docker",[109,2612,2613],{"class":187}," -f\n",[16,2615,2617],{"id":2616},"профилактика","Профилактика",[21,2619,2620],{},"Чтобы избежать проблем с запуском контейнеров в будущем:",[37,2622,2623,2632,2641,2653,2659,2665],{},[40,2624,2625,2631],{},[75,2626,2627,2628],{},"Используйте ",[25,2629,2630],{},"restart: always"," в docker-compose.yml для автоматического перезапуска при падении",[40,2633,2634,823,2637,2640],{},[75,2635,2636],{},"Регулярно очищайте систему",[25,2638,2639],{},"docker system prune -a"," раз в месяц",[40,2642,2643,970,2646,2649,2650,2132],{},[75,2644,2645],{},"Укажите явные версии образов",[25,2647,2648],{},"postgres:14",", а не ",[25,2651,2652],{},"postgres:latest",[40,2654,2655,2658],{},[75,2656,2657],{},"Настройте мониторинг"," — используйте docker stats для отслеживания потребления ресурсов",[40,2660,2661,2664],{},[75,2662,2663],{},"Ведите документацию"," — записывайте все особенности конфигурации и зависимости",[40,2666,2667,2670],{},[75,2668,2669],{},"Тестируйте на стейдже"," — перед деплоем проверяйте запуск контейнеров в тестовом окружении",[708,2672,2673],{},"html pre.shiki code .sJ8bj, html code.shiki .sJ8bj{--shiki-default:#6A737D;--shiki-dark:#6A737D}html pre.shiki code .sScJk, html code.shiki .sScJk{--shiki-default:#6F42C1;--shiki-dark:#B392F0}html pre.shiki code .sZZnC, html code.shiki .sZZnC{--shiki-default:#032F62;--shiki-dark:#9ECBFF}html pre.shiki code .sj4cs, html code.shiki .sj4cs{--shiki-default:#005CC5;--shiki-dark:#79B8FF}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .szBVR, html code.shiki .szBVR{--shiki-default:#D73A49;--shiki-dark:#F97583}html pre.shiki code .sVt8B, html code.shiki .sVt8B{--shiki-default:#24292E;--shiki-dark:#E1E4E8}html pre.shiki code .s9eBZ, html code.shiki .s9eBZ{--shiki-default:#22863A;--shiki-dark:#85E89D}",{"title":105,"searchDepth":347,"depth":347,"links":2675},[2676,2677,2678,2687],{"id":1742,"depth":347,"text":1743},{"id":1804,"depth":347,"text":1805},{"id":1858,"depth":347,"text":1859,"children":2679},[2680,2681,2682,2683,2684,2685,2686],{"id":1862,"depth":572,"text":1863},{"id":1937,"depth":572,"text":1938},{"id":2076,"depth":572,"text":2077},{"id":2193,"depth":572,"text":2194},{"id":2257,"depth":572,"text":2258},{"id":2357,"depth":572,"text":2358},{"id":2542,"depth":572,"text":2543},{"id":2616,"depth":347,"text":2617},"2026-04-09 11:55:11","Почему Docker контейнер не запускается и как это исправить. Проверенные методы диагностики и решения проблемы за 10 минут.","medium",[2692,2695,2698,2701],{"answer":2693,"question":2694},"Обычно это происходит из-за ошибки в приложении внутри контейнера, неправильной команды CMD/ENTRYPOINT или отсутствия необходимых зависимостей. Проверьте логи: `docker logs \u003Ccontainer_id>`.","Почему контейнер сразу завершается после запуска?",{"answer":2696,"question":2697},"Указанный порт занят другим процессом. Найдите его: `sudo lsof -i :порт` или освободите порт, остановив другой контейнер/сервис. Измените порт в docker-compose.yml.","Как исправить ошибку «port is already allocated»?",{"answer":2699,"question":2700},"Проверьте, что Docker запущен: `sudo systemctl status docker`. Настройте автозапуск контейнера через `restart: always` в docker-compose.yml или используйте Docker Swarm.","Контейнер не запускается после перезагрузки сервера",{"answer":2702,"question":2703},"Если в логах ошибка «permission denied» к файлам или директориям, измените владельца: `sudo chown -R user:group /path/to/volume`.","Как понять, что проблема в правах доступа?",[2705,2708,2711,2714,2717],{"name":2706,"text":2707},"Проверьте статус контейнера и логи","Выполните `docker ps -a` для просмотра всех контейнеров и их статуса. Затем `docker logs \u003Ccontainer_name>` для получения детальной информации об ошибке.",{"name":2709,"text":2710},"Проверьте доступность портов","Убедитесь, что порт, который использует контейнер, не занят другим процессом: `sudo netstat -tulpn | grep \u003Cпорт>` или `sudo lsof -i :\u003Cпорт>`.",{"name":2712,"text":2713},"Проверьте ресурсы системы","Недостаток оперативной памяти или места на диске может препятствовать запуску. Проверьте: `free -h` и `df -h`.",{"name":2715,"text":2716},"Пересоберите образ","Если образ повреждён или устарел, пересоберите: `docker-compose build --no-cache` или `docker build -t \u003Cimage_name> .`",{"name":2718,"text":2719},"Проверьте конфигурацию","Откройте docker-compose.yml и убедитесь в корректности путей к томам, переменных окружения и зависимостей между сервисами.",[2721,2722,2723,2724,2725,2726,2727],"container failed to start docker","контейнер не запускается docker","docker-compose up ошибка","docker container exit code","docker не стартует контейнер","ошибка запуска docker контейнера","docker failed to start container linux",{},[2730,2731,2732],"/errors/linux/docker-daemon-not-running","/errors/linux/docker-permission-denied","/guides/linux/docker-network-configuration","Ошибки Docker",{"title":1734,"description":2689},"errors/linux/container-failed-to-start","Разбираем типичные причины ошибки «container failed to start» в Docker и Docker Compose. Пошаговые инструкции по диагностике и устранению проблем с запуском контейнеров на Linux.",[1881,2738,2006,786,2739,801],"container","виртуализация","error","ztYxqr8oaCSfQCeco8ShVt0NGtT3KvxiD6swrqxOGM0"]