[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"page-ru-/errors/linux/docker-container-exited":3,"mdc-i770dq-key":377,"mdc-xruvpu-key":387,"mdc--et0hut-key":402,"mdc-v07091-key":418,"mdc-stkvx0-key":442,"mdc--so9fhy-key":457,"mdc-yaszqb-key":472,"mdc--dtgcn5-key":486,"mdc--eoc2b2-key":502,"related-/errors/linux/docker-container-cannot-start,/guides/linux/docker-basics":510},{"id":4,"title":5,"appliesTo":6,"author":10,"body":11,"canonical":312,"code":26,"createdAt":313,"description":314,"difficulty":315,"draft":316,"estimatedTime":317,"extension":318,"faq":319,"howToSteps":332,"howToTotalTime":348,"image":312,"keywords":349,"locale":356,"meta":357,"navigation":358,"path":359,"platform":360,"related":361,"section":364,"seo":365,"severity":366,"stem":367,"summary":368,"tags":369,"twitterCreator":312,"twitterSite":312,"type":375,"updatedAt":313,"__hash__":376},"content_ru/errors/linux/docker-container-exited.md","Контейнер Docker остановился (код E001) — причины и быстрое решение",[7,8,9],"Docker 20.10+","Ubuntu 22.04","Linux kernel 5.15+","FixPedia Team",{"type":12,"value":13,"toc":300},"minimark",[14,19,28,39,42,46,84,88,93,144,157,160,164,206,210,248,252,297],[15,16,18],"h2",{"id":17},"что-означает-ошибка-e001","Что означает ошибка E001",[20,21,22,23,27],"p",{},"Контейнер Docker останавливается с кодом ошибки ",[24,25,26],"strong",{},"E001",", когда он завершает работу с ненулевым статусом выхода. Это означает, что приложение или процесс внутри контейнера завершился с ошибкой, и Docker фиксирует этот результат. Ошибка может проявляться следующим образом:",[29,30,35],"pre",{"className":31,"code":33,"language":34},[32],"language-text","Docker: Контейнер \u003Cname> остановился с кодом ошибки E001.\n","text",[36,37,33],"code",{"__ignoreMap":38},"",[20,40,41],{},"Сбой обычно происходит при запуске сервиса, выполнении команды или при наличии конфликта конфигурации.",[15,43,45],{"id":44},"причины-возникновения","Причины возникновения",[47,48,49,56,62,72,78],"ul",{},[50,51,52,55],"li",{},[24,53,54],{},"Ошибка приложения внутри контейнера"," – сбой кода, отсутствующие зависимости или проблемы с базой данных.",[50,57,58,61],{},[24,59,60],{},"Отсутствие необходимых ресурсов"," – ограничение памяти, недоступность порта или конфликт томов.",[50,63,64,67,68,71],{},[24,65,66],{},"Некорректная конфигурация"," – неверные переменные окружения, broken ",[36,69,70],{},"Dockerfile"," или устаревший образ.",[50,73,74,77],{},[24,75,76],{},"Сетевая конфликтность"," – дублирование портов, сбой DNS или недоступность внешнего сервиса.",[50,79,80,83],{},[24,81,82],{},"Устаревшая версия Docker"," – известные баги в старом демоне или клиентском интерфейсе.",[15,85,87],{"id":86},"способы-решения","Способы решения",[89,90,92],"h3",{"id":91},"способ-1-проверка-логов-и-кода-завершения-работы","Способ 1: Проверка логов и кода завершения работы",[94,95,96,106,116,125,134],"ol",{},[50,97,98,101,102,105],{},[24,99,100],{},"Определите контейнер"," – выполните ",[36,103,104],{},"docker ps -a",", чтобы найти имя или ID остановленного контейнера.",[50,107,108,111,112,115],{},[24,109,110],{},"Просмотрите логи"," – используйте ",[36,113,114],{},"docker logs \u003Ccontainer_name>",", чтобы увидеть текстовые сообщения и трассировку стека до сбоя.",[50,117,118,101,121,124],{},[24,119,120],{},"Получите код завершения работы",[36,122,123],{},"docker inspect \u003Ccontainer_name> | grep -i \"exitcode\"",", чтобы получить точный код ошибки.",[50,126,127,101,130,133],{},[24,128,129],{},"Запустите контейнер в режиме отладки",[36,131,132],{},"docker run -it --entrypoint /bin/bash \u003Cimage>",", чтобы вручную проверить команду и найти причину сбоя.",[50,135,136,139,140,143],{},[24,137,138],{},"Обновите Docker"," – если проблема сохраняется, обновите Docker до последней stable-версии и перезапустите демон (",[36,141,142],{},"sudo systemctl restart docker",").",[145,146,147],"blockquote",{},[20,148,149,152,153,156],{},[24,150,151],{},"💡 Совет:"," Сохраните логи в файл (",[36,154,155],{},"docker logs \u003Ccontainer> > logfile.txt","), если они слишком длинные для просмотра в терминале.",[158,159],"in-article-ad",{},[89,161,163],{"id":162},"способ-2-исправление-конфигурации-контейнера","Способ 2: Исправление конфигурации контейнера",[47,165,166,172,184,197],{},[50,167,168,171],{},[24,169,170],{},"Проверьте переменные окружения"," – убедитесь, что все необходимые переменные настроены правильно, особенно для баз данных или API.",[50,173,174,180,181,143],{},[24,175,176,177],{},"Обновите файл ",[36,178,179],{},".env"," – удалите устаревшие или неверные значения, перезапустите сервис (",[36,182,183],{},"docker-compose down && docker-compose up -d",[50,185,186,101,189,192,193,196],{},[24,187,188],{},"Убедитесь в доступности сетевых портов",[36,190,191],{},"netstat -tuln | grep \u003Cport>"," или ",[36,194,195],{},"ss -tuln",", чтобы убедиться, что порт не занят другим процессом.",[50,198,199,101,202,205],{},[24,200,201],{},"Проверьте монтирование томов",[36,203,204],{},"docker volume inspect \u003Cvolume_name>",", чтобы убедиться, что том подключен к нужному контейнеру.",[89,207,209],{"id":208},"способ-3-перестроение-образа","Способ 3: Перестроение образа",[94,211,212,221,231,239],{},[50,213,214,101,217,220],{},[24,215,216],{},"Создайте новый образ",[36,218,219],{},"docker build -t \u003Cnew_image_name>:\u003Ctag> .",", чтобы обновить слои.",[50,222,223,226,227,230],{},[24,224,225],{},"Удалите старый контейнер"," – ",[36,228,229],{},"docker rm \u003Ccontainer_name>",".",[50,232,233,226,236,230],{},[24,234,235],{},"Запустите обновленный контейнер",[36,237,238],{},"docker run -d --name \u003Cnew_container> \u003Cnew_image_name>:\u003Ctag>",[50,240,241,226,244,247],{},[24,242,243],{},"Проверьте статус",[36,245,246],{},"docker ps"," должен показать работающий контейнер без ошибки E001.",[15,249,251],{"id":250},"профилактика","Профилактика",[47,253,254,268,277,287],{},[50,255,256,259,260,263,264,267],{},[24,257,258],{},"Добавьте политику перезапуска"," – в ",[36,261,262],{},"docker-compose.yml"," укажите ",[36,265,266],{},"restart: unless-stopped",", чтобы контейнер автоматически перезапускался после сбоя.",[50,269,270,111,273,276],{},[24,271,272],{},"Регулярно обновляйте образы",[36,274,275],{},"docker pull \u003Cimage>"," для получения исправлений безопасности и обновлений зависимостей.",[50,278,279,282,283,286],{},[24,280,281],{},"Мониторинг ресурсов"," – следите за использованием CPU и памяти с помощью ",[36,284,285],{},"docker stats","; перегрузка приводит к остановке контейнера.",[50,288,289,292,293,296],{},[24,290,291],{},"Ведите журналы"," – автоматизируйте сохранение логов (",[36,294,295],{},"docker logs > logs/\u003Ccontainer>.log",") для быстрого анализа при повторных сбоях.",[20,298,299],{},"Теперь у вас есть полный набор инструментов, чтобы устранить ошибку Docker E001, вернуть контейнер к работе и предотвратить её повторное возникновение.",{"title":38,"searchDepth":301,"depth":301,"links":302},2,[303,304,305,311],{"id":17,"depth":301,"text":18},{"id":44,"depth":301,"text":45},{"id":86,"depth":301,"text":87,"children":306},[307,309,310],{"id":91,"depth":308,"text":92},3,{"id":162,"depth":308,"text":163},{"id":208,"depth":308,"text":209},{"id":250,"depth":301,"text":251},null,"2026-07-23 11:08:28","Узнайте, как исправить ошибку Docker E001, когда контейнер неожиданно останавливается. Пошаговое руководство за 5 минут поможет вам найти причину и восстановить работу.","medium",false,"5-10 мин","md",[320,323,326,329],{"question":321,"answer":322},"Почему контейнер Docker останавливается с кодом ошибки E001?","Обычно это происходит из-за ошибки приложения внутри контейнера, отсутствия необходимых ресурсов или конфликта конфигурации.",{"question":324,"answer":325},"Как просмотреть логи остановленного контейнера?","Используйте `docker logs \u003Ccontainer_name>`, чтобы увидеть текстовые сообщения и трассировку стека до сбоя.",{"question":327,"answer":328},"Что делать, если контейнер продолжает останавливаться после перезапуска?","Проверьте образ на наличие нестабильных зависимостей, обновите конфигурационный файл `.env` и убедитесь, что сетевые порты не заняты.",{"question":330,"answer":331},"Можно ли избежать этой ошибки при использовании Docker Compose?","Добавьте `restart: unless-stopped` в сервис, проверьте `docker-compose logs` и убедитесь, что все необходимые тома смонтированы.",[333,336,339,342,345],{"name":334,"text":335},"Получите идентификатор контейнера","Выполните `docker ps -a`, чтобы найти имя или ID остановленного контейнера.",{"name":337,"text":338},"Просмотрите логи контейнера","Используйте `docker logs \u003Ccontainer_name>`, чтобы увидеть сообщения об ошибках и код завершения работы.",{"name":340,"text":341},"Проверьте код завершения работы","Выполните `docker inspect \u003Ccontainer_name> | grep -i \"exitcode\"`, чтобы получить точный код ошибки.",{"name":343,"text":344},"Перезапустите контейнер с отладочными флагами","Запустите контейнер повторно с `docker run -it --entrypoint /bin/bash \u003Cimage>`, чтобы вручную проверить команду.",{"name":346,"text":347},"Обновите Docker-сервис","Если проблема сохраняется, обновите Docker до последней stable-версии и перезапустите демон.","PT10M",[350,351,352,353,354,355],"Docker контейнер остановился","код ошибки E001","ошибка Docker контейнера","Docker не запускается","логи Docker","exit code E001","ru_RU",{},true,"/errors/linux/docker-container-exited","linux",[362,363],"/errors/linux/docker-container-cannot-start","/guides/linux/docker-basics","Ошибки Docker",{"title":5,"description":314},"high","errors/linux/docker-container-exited","В этой статье объясняется, почему контейнер Docker может остановиться с кодом ошибки E001, показано, как проверить логи и выполнить команды для возобновления работы.",[370,360,371,372,373,374],"docker","container","exit-code","troubleshooting","logs","error","oUHQoVPnFA_Nr6EEZpJxPkq5i0tB2qP7zOvuBb2oTYI",{"data":378,"body":379},{},{"type":380,"children":381},"root",[382],{"type":383,"tag":20,"props":384,"children":385},"element",{},[386],{"type":34,"value":322},{"data":388,"body":389},{},{"type":380,"children":390},[391],{"type":383,"tag":20,"props":392,"children":393},{},[394,396,401],{"type":34,"value":395},"Используйте ",{"type":383,"tag":36,"props":397,"children":399},{"className":398},[],[400],{"type":34,"value":114},{"type":34,"value":115},{"data":403,"body":404},{},{"type":380,"children":405},[406],{"type":383,"tag":20,"props":407,"children":408},{},[409,411,416],{"type":34,"value":410},"Проверьте образ на наличие нестабильных зависимостей, обновите конфигурационный файл ",{"type":383,"tag":36,"props":412,"children":414},{"className":413},[],[415],{"type":34,"value":179},{"type":34,"value":417}," и убедитесь, что сетевые порты не заняты.",{"data":419,"body":420},{},{"type":380,"children":421},[422],{"type":383,"tag":20,"props":423,"children":424},{},[425,427,432,434,440],{"type":34,"value":426},"Добавьте ",{"type":383,"tag":36,"props":428,"children":430},{"className":429},[],[431],{"type":34,"value":266},{"type":34,"value":433}," в сервис, проверьте ",{"type":383,"tag":36,"props":435,"children":437},{"className":436},[],[438],{"type":34,"value":439},"docker-compose logs",{"type":34,"value":441}," и убедитесь, что все необходимые тома смонтированы.",{"data":443,"body":444},{},{"type":380,"children":445},[446],{"type":383,"tag":20,"props":447,"children":448},{},[449,451,456],{"type":34,"value":450},"Выполните ",{"type":383,"tag":36,"props":452,"children":454},{"className":453},[],[455],{"type":34,"value":104},{"type":34,"value":105},{"data":458,"body":459},{},{"type":380,"children":460},[461],{"type":383,"tag":20,"props":462,"children":463},{},[464,465,470],{"type":34,"value":395},{"type":383,"tag":36,"props":466,"children":468},{"className":467},[],[469],{"type":34,"value":114},{"type":34,"value":471},", чтобы увидеть сообщения об ошибках и код завершения работы.",{"data":473,"body":474},{},{"type":380,"children":475},[476],{"type":383,"tag":20,"props":477,"children":478},{},[479,480,485],{"type":34,"value":450},{"type":383,"tag":36,"props":481,"children":483},{"className":482},[],[484],{"type":34,"value":123},{"type":34,"value":124},{"data":487,"body":488},{},{"type":380,"children":489},[490],{"type":383,"tag":20,"props":491,"children":492},{},[493,495,500],{"type":34,"value":494},"Запустите контейнер повторно с ",{"type":383,"tag":36,"props":496,"children":498},{"className":497},[],[499],{"type":34,"value":132},{"type":34,"value":501},", чтобы вручную проверить команду.",{"data":503,"body":504},{},{"type":380,"children":505},[506],{"type":383,"tag":20,"props":507,"children":508},{},[509],{"type":34,"value":347},[511],{"id":512,"title":513,"appliesTo":514,"author":10,"body":518,"canonical":312,"code":312,"createdAt":1902,"description":1903,"difficulty":1904,"draft":316,"estimatedTime":1905,"extension":318,"faq":1906,"howToSteps":1919,"howToTotalTime":1935,"image":312,"keywords":1936,"locale":356,"meta":1945,"navigation":358,"path":363,"platform":360,"related":1946,"section":1950,"seo":1951,"severity":312,"stem":1952,"summary":1953,"tags":1954,"twitterCreator":312,"twitterSite":312,"type":1958,"updatedAt":1902,"__hash__":1959},"content_ru/guides/linux/docker-basics.md","Docker для Linux: установка и базовые команды с примерами",[515,516,517,7],"Ubuntu 22.04+","Debian 11+","CentOS 8+",{"type":12,"value":519,"toc":1871},[520,524,527,541,544,548,551,578,582,585,589,838,842,924,928,943,946,950,961,1008,1014,1029,1036,1038,1042,1048,1052,1067,1084,1088,1103,1109,1113,1125,1140,1144,1158,1161,1165,1171,1175,1201,1221,1225,1252,1272,1276,1288,1302,1309,1324,1328,1404,1408,1422,1431,1435,1438,1685,1689,1692,1756,1760,1767,1787,1791,1811,1815,1823,1867],[15,521,523],{"id":522},"введение-зачем-это-нужно","Введение / Зачем это нужно",[20,525,526],{},"Docker — это платформа для контейнеризации, которая позволяет упаковывать приложения и их зависимости в изолированные, переносимые среды — контейнеры. На Linux это особенно удобно, поскольку Docker использует встроенные возможности ядра (cgroups, namespaces). После прохождения этого гайда вы сможете:",[47,528,529,532,535,538],{},[50,530,531],{},"Установить и настроить Docker Engine на свой сервер или рабочую станциюю.",[50,533,534],{},"Запускать, останавливать и удалять контейнеры.",[50,536,537],{},"Работать с образами: искать, скачивать, создавать свои.",[50,539,540],{},"Понять базовый синтаксис Dockerfile для автоматизации сборки.",[20,542,543],{},"Это основа для дальнейшего изучения оркестрации (Kubernetes) и CI/CD-пайплайнов.",[15,545,547],{"id":546},"требования-подготовка","Требования / Подготовка",[20,549,550],{},"Перед началом убедитесь, что:",[94,552,553,559,562,565],{},[50,554,555,556,230],{},"У вас есть доступ к терминалу Linux (Ubuntu, Debian, CentOS, Fedora и т.д.) с правами ",[36,557,558],{},"sudo",[50,560,561],{},"Система 64-битная (x86_64/amd64 или arm64).",[50,563,564],{},"Подключение к интернету для загрузки пакетов и образов.",[50,566,567,568,571,572,571,575,143],{},"(Опционально) Базовое понимание командной строки и управления пакетами (",[36,569,570],{},"apt",", ",[36,573,574],{},"yum",[36,576,577],{},"dnf",[15,579,581],{"id":580},"шаг-1-установка-docker-engine","Шаг 1: Установка Docker Engine",[20,583,584],{},"Установка через официальный репозиторий — самый надежный способ.",[89,586,588],{"id":587},"для-ubuntudebian","Для Ubuntu/Debian:",[29,590,594],{"className":591,"code":592,"language":593,"meta":38,"style":38},"language-bash shiki shiki-themes github-light github-dark","# 1. Обновите индекс пакетов и установите зависимости\nsudo apt-get update\nsudo apt-get install ca-certificates curl gnupg\n\n# 2. Добавьте официальный GPG-ключ Docker\nsudo install -m 0755 -d /etc/apt/keyrings\ncurl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg\nsudo chmod a+r /etc/apt/keyrings/docker.gpg\n\n# 3. Добавьте репозиторий Docker в sources.list\necho \\\n  \"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \\\n  $(. /etc/os-release && echo \"$VERSION_CODENAME\") stable\" | \\\n  sudo tee /etc/apt/sources.list.d/docker.list > /dev/null\n\n# 4. Установите Docker Engine, containerd и Docker Compose (plugin)\nsudo apt-get update\nsudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin\n","bash",[36,595,596,605,617,635,641,647,667,698,711,716,722,731,749,776,794,799,805,814],{"__ignoreMap":38},[597,598,601],"span",{"class":599,"line":600},"line",1,[597,602,604],{"class":603},"sJ8bj","# 1. Обновите индекс пакетов и установите зависимости\n",[597,606,607,610,614],{"class":599,"line":301},[597,608,558],{"class":609},"sScJk",[597,611,613],{"class":612},"sZZnC"," apt-get",[597,615,616],{"class":612}," update\n",[597,618,619,621,623,626,629,632],{"class":599,"line":308},[597,620,558],{"class":609},[597,622,613],{"class":612},[597,624,625],{"class":612}," install",[597,627,628],{"class":612}," ca-certificates",[597,630,631],{"class":612}," curl",[597,633,634],{"class":612}," gnupg\n",[597,636,638],{"class":599,"line":637},4,[597,639,640],{"emptyLinePlaceholder":358},"\n",[597,642,644],{"class":599,"line":643},5,[597,645,646],{"class":603},"# 2. Добавьте официальный GPG-ключ Docker\n",[597,648,650,652,654,658,661,664],{"class":599,"line":649},6,[597,651,558],{"class":609},[597,653,625],{"class":612},[597,655,657],{"class":656},"sj4cs"," -m",[597,659,660],{"class":656}," 0755",[597,662,663],{"class":656}," -d",[597,665,666],{"class":612}," /etc/apt/keyrings\n",[597,668,670,673,676,679,683,686,689,692,695],{"class":599,"line":669},7,[597,671,672],{"class":609},"curl",[597,674,675],{"class":656}," -fsSL",[597,677,678],{"class":612}," https://download.docker.com/linux/ubuntu/gpg",[597,680,682],{"class":681},"szBVR"," |",[597,684,685],{"class":609}," sudo",[597,687,688],{"class":612}," gpg",[597,690,691],{"class":656}," --dearmor",[597,693,694],{"class":656}," -o",[597,696,697],{"class":612}," /etc/apt/keyrings/docker.gpg\n",[597,699,701,703,706,709],{"class":599,"line":700},8,[597,702,558],{"class":609},[597,704,705],{"class":612}," chmod",[597,707,708],{"class":612}," a+r",[597,710,697],{"class":612},[597,712,714],{"class":599,"line":713},9,[597,715,640],{"emptyLinePlaceholder":358},[597,717,719],{"class":599,"line":718},10,[597,720,721],{"class":603},"# 3. Добавьте репозиторий Docker в sources.list\n",[597,723,725,728],{"class":599,"line":724},11,[597,726,727],{"class":656},"echo",[597,729,730],{"class":656}," \\\n",[597,732,734,737,740,743,746],{"class":599,"line":733},12,[597,735,736],{"class":612},"  \"deb [arch=$(",[597,738,739],{"class":609},"dpkg",[597,741,742],{"class":656}," --print-architecture",[597,744,745],{"class":612},") signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu ",[597,747,748],{"class":656},"\\\n",[597,750,752,755,757,760,762,765,769,772,774],{"class":599,"line":751},13,[597,753,754],{"class":612},"  $(",[597,756,230],{"class":656},[597,758,759],{"class":612}," /etc/os-release && ",[597,761,727],{"class":656},[597,763,764],{"class":612}," \"",[597,766,768],{"class":767},"sVt8B","$VERSION_CODENAME",[597,770,771],{"class":612},"\") stable\"",[597,773,682],{"class":681},[597,775,730],{"class":656},[597,777,779,782,785,788,791],{"class":599,"line":778},14,[597,780,781],{"class":609},"  sudo",[597,783,784],{"class":612}," tee",[597,786,787],{"class":612}," /etc/apt/sources.list.d/docker.list",[597,789,790],{"class":681}," >",[597,792,793],{"class":612}," /dev/null\n",[597,795,797],{"class":599,"line":796},15,[597,798,640],{"emptyLinePlaceholder":358},[597,800,802],{"class":599,"line":801},16,[597,803,804],{"class":603},"# 4. Установите Docker Engine, containerd и Docker Compose (plugin)\n",[597,806,808,810,812],{"class":599,"line":807},17,[597,809,558],{"class":609},[597,811,613],{"class":612},[597,813,616],{"class":612},[597,815,817,819,821,823,826,829,832,835],{"class":599,"line":816},18,[597,818,558],{"class":609},[597,820,613],{"class":612},[597,822,625],{"class":612},[597,824,825],{"class":612}," docker-ce",[597,827,828],{"class":612}," docker-ce-cli",[597,830,831],{"class":612}," containerd.io",[597,833,834],{"class":612}," docker-buildx-plugin",[597,836,837],{"class":612}," docker-compose-plugin\n",[89,839,841],{"id":840},"для-centosrhelfedora","Для CentOS/RHEL/Fedora:",[29,843,845],{"className":591,"code":844,"language":593,"meta":38,"style":38},"# 1. Установите yum-utils (для управления репозиториями)\nsudo yum install -y yum-utils\n\n# 2. Добавьте репозиторий Docker\nsudo yum-config-manager \\\n    --add-repo \\\n    https://download.docker.com/linux/centos/docker-ce.repo\n\n# 3. Установите Docker Engine\nsudo yum install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin\n",[36,846,847,852,867,871,876,885,892,897,901,906],{"__ignoreMap":38},[597,848,849],{"class":599,"line":600},[597,850,851],{"class":603},"# 1. Установите yum-utils (для управления репозиториями)\n",[597,853,854,856,859,861,864],{"class":599,"line":301},[597,855,558],{"class":609},[597,857,858],{"class":612}," yum",[597,860,625],{"class":612},[597,862,863],{"class":656}," -y",[597,865,866],{"class":612}," yum-utils\n",[597,868,869],{"class":599,"line":308},[597,870,640],{"emptyLinePlaceholder":358},[597,872,873],{"class":599,"line":637},[597,874,875],{"class":603},"# 2. Добавьте репозиторий Docker\n",[597,877,878,880,883],{"class":599,"line":643},[597,879,558],{"class":609},[597,881,882],{"class":612}," yum-config-manager",[597,884,730],{"class":656},[597,886,887,890],{"class":599,"line":649},[597,888,889],{"class":656},"    --add-repo",[597,891,730],{"class":656},[597,893,894],{"class":599,"line":669},[597,895,896],{"class":612},"    https://download.docker.com/linux/centos/docker-ce.repo\n",[597,898,899],{"class":599,"line":700},[597,900,640],{"emptyLinePlaceholder":358},[597,902,903],{"class":599,"line":713},[597,904,905],{"class":603},"# 3. Установите Docker Engine\n",[597,907,908,910,912,914,916,918,920,922],{"class":599,"line":718},[597,909,558],{"class":609},[597,911,858],{"class":612},[597,913,625],{"class":612},[597,915,825],{"class":612},[597,917,828],{"class":612},[597,919,831],{"class":612},[597,921,834],{"class":612},[597,923,837],{"class":612},[89,925,927],{"id":926},"проверьте-установку","Проверьте установку:",[29,929,931],{"className":591,"code":930,"language":593,"meta":38,"style":38},"sudo docker version\n",[36,932,933],{"__ignoreMap":38},[597,934,935,937,940],{"class":599,"line":600},[597,936,558],{"class":609},[597,938,939],{"class":612}," docker",[597,941,942],{"class":612}," version\n",[20,944,945],{},"Вывод должен показать клиент и сервер (Engine) с версиями.",[15,947,949],{"id":948},"шаг-2-настройка-прав-доступа-и-первая-проверка","Шаг 2: Настройка прав доступа и первая проверка",[20,951,952,953,955,956,958,959,230],{},"По умолчанию команды ",[36,954,370],{}," требуют прав ",[36,957,558],{},". Чтобы запускать контейнеры от обычного пользователя, добавьте его в группу ",[36,960,370],{},[29,962,964],{"className":591,"code":963,"language":593,"meta":38,"style":38},"# Добавьте текущего пользователя в группу docker\nsudo usermod -aG docker $USER\n\n# Чтобы изменения вступили в силу, выйдите из системы и зайдите заново,\n# или выполните в текущей сессии:\nnewgrp docker\n",[36,965,966,971,986,990,995,1000],{"__ignoreMap":38},[597,967,968],{"class":599,"line":600},[597,969,970],{"class":603},"# Добавьте текущего пользователя в группу docker\n",[597,972,973,975,978,981,983],{"class":599,"line":301},[597,974,558],{"class":609},[597,976,977],{"class":612}," usermod",[597,979,980],{"class":656}," -aG",[597,982,939],{"class":612},[597,984,985],{"class":767}," $USER\n",[597,987,988],{"class":599,"line":308},[597,989,640],{"emptyLinePlaceholder":358},[597,991,992],{"class":599,"line":637},[597,993,994],{"class":603},"# Чтобы изменения вступили в силу, выйдите из системы и зайдите заново,\n",[597,996,997],{"class":599,"line":643},[597,998,999],{"class":603},"# или выполните в текущей сессии:\n",[597,1001,1002,1005],{"class":599,"line":649},[597,1003,1004],{"class":609},"newgrp",[597,1006,1007],{"class":612}," docker\n",[20,1009,1010,1011,1013],{},"Теперь проверьте, что всё работает без ",[36,1012,558],{},":",[29,1015,1017],{"className":591,"code":1016,"language":593,"meta":38,"style":38},"docker run hello-world\n",[36,1018,1019],{"__ignoreMap":38},[597,1020,1021,1023,1026],{"class":599,"line":600},[597,1022,370],{"class":609},[597,1024,1025],{"class":612}," run",[597,1027,1028],{"class":612}," hello-world\n",[20,1030,1031,1032,1035],{},"Вы должны увидеть приветственное сообщение от Docker, подтверждающее успешную загрузку образа ",[36,1033,1034],{},"hello-world"," и запуск контейнера.",[158,1037],{},[15,1039,1041],{"id":1040},"шаг-3-основные-команды-для-работы-с-образами","Шаг 3: Основные команды для работы с образами",[20,1043,1044,1047],{},[24,1045,1046],{},"Образ (image)"," — это шаблон (файловая система + метаданные) для создания контейнеров.",[89,1049,1051],{"id":1050},"поиск-образа-в-docker-hub-официальном-репозитории","Поиск образа в Docker Hub (официальном репозитории)",[29,1053,1055],{"className":591,"code":1054,"language":593,"meta":38,"style":38},"docker search nginx\n",[36,1056,1057],{"__ignoreMap":38},[597,1058,1059,1061,1064],{"class":599,"line":600},[597,1060,370],{"class":609},[597,1062,1063],{"class":612}," search",[597,1065,1066],{"class":612}," nginx\n",[20,1068,1069,1070,1073,1074,1077,1078,571,1081,230],{},"Ключевые колонки: ",[36,1071,1072],{},"NAME"," (официальные образы помечены как ",[36,1075,1076],{},"[OK]","), ",[36,1079,1080],{},"DESCRIPTION",[36,1082,1083],{},"STARS",[89,1085,1087],{"id":1086},"загрузка-образа-локально","Загрузка образа локально",[29,1089,1091],{"className":591,"code":1090,"language":593,"meta":38,"style":38},"docker pull ubuntu:22.04\n",[36,1092,1093],{"__ignoreMap":38},[597,1094,1095,1097,1100],{"class":599,"line":600},[597,1096,370],{"class":609},[597,1098,1099],{"class":612}," pull",[597,1101,1102],{"class":612}," ubuntu:22.04\n",[20,1104,1105,1106,230],{},"Эта команда скачает последний LTS-образ Ubuntu 22.04. Если тег не указан, используется ",[36,1107,1108],{},"latest",[89,1110,1112],{"id":1111},"список-локальных-образов","Список локальных образов",[29,1114,1116],{"className":591,"code":1115,"language":593,"meta":38,"style":38},"docker images\n",[36,1117,1118],{"__ignoreMap":38},[597,1119,1120,1122],{"class":599,"line":600},[597,1121,370],{"class":609},[597,1123,1124],{"class":612}," images\n",[20,1126,1127,1128,571,1131,571,1134,571,1137,230],{},"Обратите внимание на колонки: ",[36,1129,1130],{},"REPOSITORY",[36,1132,1133],{},"TAG",[36,1135,1136],{},"IMAGE ID",[36,1138,1139],{},"SIZE",[89,1141,1143],{"id":1142},"удаление-образа","Удаление образа",[29,1145,1147],{"className":591,"code":1146,"language":593,"meta":38,"style":38},"docker rmi ubuntu:22.04\n",[36,1148,1149],{"__ignoreMap":38},[597,1150,1151,1153,1156],{"class":599,"line":600},[597,1152,370],{"class":609},[597,1154,1155],{"class":612}," rmi",[597,1157,1102],{"class":612},[20,1159,1160],{},"Если образ используется запущенным контейнером, его удаление невозможно. Сначала удалите контейнер.",[15,1162,1164],{"id":1163},"шаг-4-запуск-и-управление-контейнерами","Шаг 4: Запуск и управление контейнерами",[20,1166,1167,1170],{},[24,1168,1169],{},"Контейнер (container)"," — это запущенный экземпляр образа.",[89,1172,1174],{"id":1173},"запуск-контейнера-в-интерактивном-режиме","Запуск контейнера в интерактивном режиме",[29,1176,1178],{"className":591,"code":1177,"language":593,"meta":38,"style":38},"docker run -it --name my-ubuntu ubuntu:22.04 /bin/bash\n",[36,1179,1180],{"__ignoreMap":38},[597,1181,1182,1184,1186,1189,1192,1195,1198],{"class":599,"line":600},[597,1183,370],{"class":609},[597,1185,1025],{"class":612},[597,1187,1188],{"class":656}," -it",[597,1190,1191],{"class":656}," --name",[597,1193,1194],{"class":612}," my-ubuntu",[597,1196,1197],{"class":612}," ubuntu:22.04",[597,1199,1200],{"class":612}," /bin/bash\n",[47,1202,1203,1209,1215],{},[50,1204,1205,1208],{},[36,1206,1207],{},"-it"," — интерактивный режим с TTY (терминал).",[50,1210,1211,1214],{},[36,1212,1213],{},"--name"," — задаёт удобное имя контейнеру (иначе генерируется случайное).",[50,1216,1217,1218,230],{},"После команды вы окажетесь внутри shell контейнера. Для выхода используйте ",[36,1219,1220],{},"exit",[89,1222,1224],{"id":1223},"запуск-контейнера-в-фоновом-режиме-daemon","Запуск контейнера в фоновом режиме (daemon)",[29,1226,1228],{"className":591,"code":1227,"language":593,"meta":38,"style":38},"docker run -d --name web-server -p 8080:80 nginx:alpine\n",[36,1229,1230],{"__ignoreMap":38},[597,1231,1232,1234,1236,1238,1240,1243,1246,1249],{"class":599,"line":600},[597,1233,370],{"class":609},[597,1235,1025],{"class":612},[597,1237,663],{"class":656},[597,1239,1191],{"class":656},[597,1241,1242],{"class":612}," web-server",[597,1244,1245],{"class":656}," -p",[597,1247,1248],{"class":612}," 8080:80",[597,1250,1251],{"class":612}," nginx:alpine\n",[47,1253,1254,1260,1266],{},[50,1255,1256,1259],{},[36,1257,1258],{},"-d"," — detached mode (контейнер работает в фоне).",[50,1261,1262,1265],{},[36,1263,1264],{},"-p 8080:80"," — проброс портов: хост:контейнер. Веб-сервер внутри контейнера слушает порт 80, а снаружи доступен на порту 8080 вашего хоста.",[50,1267,1268,1269,230],{},"Проверить работу: откройте в браузере ",[36,1270,1271],{},"http://localhost:8080",[89,1273,1275],{"id":1274},"просмотр-запущенных-контейнеров","Просмотр запущенных контейнеров",[29,1277,1279],{"className":591,"code":1278,"language":593,"meta":38,"style":38},"docker ps\n",[36,1280,1281],{"__ignoreMap":38},[597,1282,1283,1285],{"class":599,"line":600},[597,1284,370],{"class":609},[597,1286,1287],{"class":612}," ps\n",[20,1289,1069,1290,571,1293,571,1296,571,1299,230],{},[36,1291,1292],{},"CONTAINER ID",[36,1294,1295],{},"NAMES",[36,1297,1298],{},"STATUS",[36,1300,1301],{},"PORTS",[20,1303,1304,1305,1308],{},"Чтобы увидеть ",[24,1306,1307],{},"все"," контейнеры (включая остановленные):",[29,1310,1312],{"className":591,"code":1311,"language":593,"meta":38,"style":38},"docker ps -a\n",[36,1313,1314],{"__ignoreMap":38},[597,1315,1316,1318,1321],{"class":599,"line":600},[597,1317,370],{"class":609},[597,1319,1320],{"class":612}," ps",[597,1322,1323],{"class":656}," -a\n",[89,1325,1327],{"id":1326},"остановка-и-удаление-контейнера","Остановка и удаление контейнера",[29,1329,1331],{"className":591,"code":1330,"language":593,"meta":38,"style":38},"# Остановить контейнер (сохраняет файловую систему)\ndocker stop web-server\n\n# Запустить остановленный контейнер\ndocker start web-server\n\n# Удалить остановленный контейнер\ndocker rm web-server\n\n# Принудительно удалить запущенный контейнер (данные потеряются!)\ndocker rm -f web-server\n",[36,1332,1333,1338,1348,1352,1357,1366,1370,1375,1384,1388,1393],{"__ignoreMap":38},[597,1334,1335],{"class":599,"line":600},[597,1336,1337],{"class":603},"# Остановить контейнер (сохраняет файловую систему)\n",[597,1339,1340,1342,1345],{"class":599,"line":301},[597,1341,370],{"class":609},[597,1343,1344],{"class":612}," stop",[597,1346,1347],{"class":612}," web-server\n",[597,1349,1350],{"class":599,"line":308},[597,1351,640],{"emptyLinePlaceholder":358},[597,1353,1354],{"class":599,"line":637},[597,1355,1356],{"class":603},"# Запустить остановленный контейнер\n",[597,1358,1359,1361,1364],{"class":599,"line":643},[597,1360,370],{"class":609},[597,1362,1363],{"class":612}," start",[597,1365,1347],{"class":612},[597,1367,1368],{"class":599,"line":649},[597,1369,640],{"emptyLinePlaceholder":358},[597,1371,1372],{"class":599,"line":669},[597,1373,1374],{"class":603},"# Удалить остановленный контейнер\n",[597,1376,1377,1379,1382],{"class":599,"line":700},[597,1378,370],{"class":609},[597,1380,1381],{"class":612}," rm",[597,1383,1347],{"class":612},[597,1385,1386],{"class":599,"line":713},[597,1387,640],{"emptyLinePlaceholder":358},[597,1389,1390],{"class":599,"line":718},[597,1391,1392],{"class":603},"# Принудительно удалить запущенный контейнер (данные потеряются!)\n",[597,1394,1395,1397,1399,1402],{"class":599,"line":724},[597,1396,370],{"class":609},[597,1398,1381],{"class":612},[597,1400,1401],{"class":656}," -f",[597,1403,1347],{"class":612},[89,1405,1407],{"id":1406},"просмотр-логов-контейнера","Просмотр логов контейнера",[29,1409,1411],{"className":591,"code":1410,"language":593,"meta":38,"style":38},"docker logs web-server\n",[36,1412,1413],{"__ignoreMap":38},[597,1414,1415,1417,1420],{"class":599,"line":600},[597,1416,370],{"class":609},[597,1418,1419],{"class":612}," logs",[597,1421,1347],{"class":612},[20,1423,426,1424,192,1427,1430],{},[36,1425,1426],{},"-f",[36,1428,1429],{},"--follow"," для отслеживания логов в реальном времени.",[15,1432,1434],{"id":1433},"шаг-5-создание-собственного-образа-через-dockerfile","Шаг 5: Создание собственного образа через Dockerfile",[20,1436,1437],{},"Dockerfile — это текстовый файл с инструкциями для сборки образа.",[94,1439,1440,1587,1611,1648],{},[50,1441,1442,1443,1013,1445],{},"Создайте пустую директорию и в ней файл ",[36,1444,70],{},[29,1446,1448],{"className":591,"code":1447,"language":593,"meta":38,"style":38},"mkdir my-nginx && cd my-nginx\ncat > Dockerfile \u003C\u003C 'EOF'\n# Используем официальный легковесный образ Alpine Linux\nFROM alpine:3.18\n\n# Устанавливаем nginx\nRUN apk add --no-cache nginx\n\n# Копируем кастомный конфиг (если есть) или используем дефолтный\n# COPY nginx.conf /etc/nginx/nginx.conf\n\n# Создаём директорию для файлов сайта\nRUN mkdir -p /var/www/html\n\n# Копируем локальный файл index.html в образ\nCOPY index.html /var/www/html/index.html\n\n# Открываем порт 80\nEXPOSE 80\n\n# Запускаем nginx в foreground\nCMD [\"nginx\", \"-g\", \"daemon off;\"]\nEOF\n",[36,1449,1450,1467,1483,1488,1493,1497,1502,1507,1511,1516,1521,1525,1530,1535,1539,1544,1549,1553,1558,1564,1569,1575,1581],{"__ignoreMap":38},[597,1451,1452,1455,1458,1461,1464],{"class":599,"line":600},[597,1453,1454],{"class":609},"mkdir",[597,1456,1457],{"class":612}," my-nginx",[597,1459,1460],{"class":767}," && ",[597,1462,1463],{"class":656},"cd",[597,1465,1466],{"class":612}," my-nginx\n",[597,1468,1469,1472,1474,1477,1480],{"class":599,"line":301},[597,1470,1471],{"class":609},"cat",[597,1473,790],{"class":681},[597,1475,1476],{"class":612}," Dockerfile",[597,1478,1479],{"class":681}," \u003C\u003C",[597,1481,1482],{"class":612}," 'EOF'\n",[597,1484,1485],{"class":599,"line":308},[597,1486,1487],{"class":612},"# Используем официальный легковесный образ Alpine Linux\n",[597,1489,1490],{"class":599,"line":637},[597,1491,1492],{"class":612},"FROM alpine:3.18\n",[597,1494,1495],{"class":599,"line":643},[597,1496,640],{"emptyLinePlaceholder":358},[597,1498,1499],{"class":599,"line":649},[597,1500,1501],{"class":612},"# Устанавливаем nginx\n",[597,1503,1504],{"class":599,"line":669},[597,1505,1506],{"class":612},"RUN apk add --no-cache nginx\n",[597,1508,1509],{"class":599,"line":700},[597,1510,640],{"emptyLinePlaceholder":358},[597,1512,1513],{"class":599,"line":713},[597,1514,1515],{"class":612},"# Копируем кастомный конфиг (если есть) или используем дефолтный\n",[597,1517,1518],{"class":599,"line":718},[597,1519,1520],{"class":612},"# COPY nginx.conf /etc/nginx/nginx.conf\n",[597,1522,1523],{"class":599,"line":724},[597,1524,640],{"emptyLinePlaceholder":358},[597,1526,1527],{"class":599,"line":733},[597,1528,1529],{"class":612},"# Создаём директорию для файлов сайта\n",[597,1531,1532],{"class":599,"line":751},[597,1533,1534],{"class":612},"RUN mkdir -p /var/www/html\n",[597,1536,1537],{"class":599,"line":778},[597,1538,640],{"emptyLinePlaceholder":358},[597,1540,1541],{"class":599,"line":796},[597,1542,1543],{"class":612},"# Копируем локальный файл index.html в образ\n",[597,1545,1546],{"class":599,"line":801},[597,1547,1548],{"class":612},"COPY index.html /var/www/html/index.html\n",[597,1550,1551],{"class":599,"line":807},[597,1552,640],{"emptyLinePlaceholder":358},[597,1554,1555],{"class":599,"line":816},[597,1556,1557],{"class":612},"# Открываем порт 80\n",[597,1559,1561],{"class":599,"line":1560},19,[597,1562,1563],{"class":612},"EXPOSE 80\n",[597,1565,1567],{"class":599,"line":1566},20,[597,1568,640],{"emptyLinePlaceholder":358},[597,1570,1572],{"class":599,"line":1571},21,[597,1573,1574],{"class":612},"# Запускаем nginx в foreground\n",[597,1576,1578],{"class":599,"line":1577},22,[597,1579,1580],{"class":612},"CMD [\"nginx\", \"-g\", \"daemon off;\"]\n",[597,1582,1584],{"class":599,"line":1583},23,[597,1585,1586],{"class":612},"EOF\n",[50,1588,1589,1590,1593,1594],{},"Создайте простой ",[36,1591,1592],{},"index.html"," в той же директории:",[29,1595,1597],{"className":591,"code":1596,"language":593,"meta":38,"style":38},"echo \"\u003Ch1>Hello from my custom Docker image!\u003C/h1>\" > index.html\n",[36,1598,1599],{"__ignoreMap":38},[597,1600,1601,1603,1606,1608],{"class":599,"line":600},[597,1602,727],{"class":656},[597,1604,1605],{"class":612}," \"\u003Ch1>Hello from my custom Docker image!\u003C/h1>\"",[597,1607,790],{"class":681},[597,1609,1610],{"class":612}," index.html\n",[50,1612,1613,1614,1635],{},"Соберите образ:",[29,1615,1617],{"className":591,"code":1616,"language":593,"meta":38,"style":38},"docker build -t my-custom-nginx:latest .\n",[36,1618,1619],{"__ignoreMap":38},[597,1620,1621,1623,1626,1629,1632],{"class":599,"line":600},[597,1622,370],{"class":609},[597,1624,1625],{"class":612}," build",[597,1627,1628],{"class":656}," -t",[597,1630,1631],{"class":612}," my-custom-nginx:latest",[597,1633,1634],{"class":612}," .\n",[47,1636,1637,1643],{},[50,1638,1639,1642],{},[36,1640,1641],{},"-t"," — тег (имя:версия) образа.",[50,1644,1645,1647],{},[36,1646,230],{}," — контекст сборки (текущая директория).",[50,1649,1650,1651,1677,1680,1681,1684],{},"Запустите контейнер из нового образа:",[29,1652,1654],{"className":591,"code":1653,"language":593,"meta":38,"style":38},"docker run -d -p 8081:80 --name my-app my-custom-nginx:latest\n",[36,1655,1656],{"__ignoreMap":38},[597,1657,1658,1660,1662,1664,1666,1669,1671,1674],{"class":599,"line":600},[597,1659,370],{"class":609},[597,1661,1025],{"class":612},[597,1663,663],{"class":656},[597,1665,1245],{"class":656},[597,1667,1668],{"class":612}," 8081:80",[597,1670,1191],{"class":656},[597,1672,1673],{"class":612}," my-app",[597,1675,1676],{"class":612}," my-custom-nginx:latest\n",[1678,1679],"br",{},"Откройте ",[36,1682,1683],{},"http://localhost:8081"," — вы увидите свой заголовок.",[15,1686,1688],{"id":1687},"проверка-результата","Проверка результата",[20,1690,1691],{},"Вы успешно освоили базовый цикл работы с Docker, если можете:",[94,1693,1694,1697,1704,1710],{},[50,1695,1696],{},"Установить Docker на чистую систему Linux.",[50,1698,1699,1700,1703],{},"Запустить контейнер из образа ",[36,1701,1702],{},"nginx"," и увидеть страницу в браузере.",[50,1705,1706,1707,1709],{},"Создать ",[36,1708,70],{},", собрать из него образ и запустить контейнер.",[50,1711,1712,1713],{},"Остановить и удалить все созданные ресурсы:\n",[29,1714,1716],{"className":591,"code":1715,"language":593,"meta":38,"style":38},"docker stop my-ubuntu web-server my-app\ndocker rm my-ubuntu web-server my-app\ndocker rmi ubuntu:22.04 nginx:alpine my-custom-nginx:latest\n",[36,1717,1718,1731,1743],{"__ignoreMap":38},[597,1719,1720,1722,1724,1726,1728],{"class":599,"line":600},[597,1721,370],{"class":609},[597,1723,1344],{"class":612},[597,1725,1194],{"class":612},[597,1727,1242],{"class":612},[597,1729,1730],{"class":612}," my-app\n",[597,1732,1733,1735,1737,1739,1741],{"class":599,"line":301},[597,1734,370],{"class":609},[597,1736,1381],{"class":612},[597,1738,1194],{"class":612},[597,1740,1242],{"class":612},[597,1742,1730],{"class":612},[597,1744,1745,1747,1749,1751,1754],{"class":599,"line":308},[597,1746,370],{"class":609},[597,1748,1155],{"class":612},[597,1750,1197],{"class":612},[597,1752,1753],{"class":612}," nginx:alpine",[597,1755,1676],{"class":612},[15,1757,1759],{"id":1758},"возможные-проблемы","Возможные проблемы",[89,1761,1763,1764],{"id":1762},"ошибка-got-permission-denied-while-trying-to-connect-to-the-docker-daemon-socket","Ошибка: ",[36,1765,1766],{},"Got permission denied while trying to connect to the Docker daemon socket...",[20,1768,1769,1772,1773,1775,1776,1779,1780,1783,1784,143],{},[24,1770,1771],{},"Причина:"," Текущий пользователь не в группе ",[36,1774,370],{}," или сессия не перезагружена.\n",[24,1777,1778],{},"Решение:"," Выполните ",[36,1781,1782],{},"sudo usermod -aG docker $USER",", выйдите из терминала и зайдите заново (или ",[36,1785,1786],{},"newgrp docker",[89,1788,1790],{"id":1789},"контейнер-мгновенно-завершается-после-запуска","Контейнер мгновенно завершается после запуска",[20,1792,1793,1795,1796,1799,1800,1802,1803,1806,1807,1810],{},[24,1794,1771],{}," Основной процесс внутри контейнера завершился (например, команда ",[36,1797,1798],{},"docker run ubuntu echo \"test\"",").\n",[24,1801,1778],{}," Для долгоживущих контейнеров (веб-серверы, базы) основной процесс должен работать в foreground (как ",[36,1804,1805],{},"nginx -g 'daemon off;'","). Используйте ",[36,1808,1809],{},"docker logs \u003Ccontainer_id>"," для просмотра причины завершения.",[89,1812,1814],{"id":1813},"не-хватает-места-на-диске","Не хватает места на диске",[20,1816,1817,1819,1820,1822],{},[24,1818,1771],{}," Накопление образов, контейнеров, вольюмов.\n",[24,1821,1778],{}," Очистите неиспользуемые ресурсы:",[29,1824,1826],{"className":591,"code":1825,"language":593,"meta":38,"style":38},"# Удалить все остановленные контейнеры, неиспользуемые сети и dangling-образы\ndocker system prune\n\n# Удалить ВСЕ неиспользуемые данные (осторожно!)\ndocker system prune -a --volumes\n",[36,1827,1828,1833,1843,1847,1852],{"__ignoreMap":38},[597,1829,1830],{"class":599,"line":600},[597,1831,1832],{"class":603},"# Удалить все остановленные контейнеры, неиспользуемые сети и dangling-образы\n",[597,1834,1835,1837,1840],{"class":599,"line":301},[597,1836,370],{"class":609},[597,1838,1839],{"class":612}," system",[597,1841,1842],{"class":612}," prune\n",[597,1844,1845],{"class":599,"line":308},[597,1846,640],{"emptyLinePlaceholder":358},[597,1848,1849],{"class":599,"line":637},[597,1850,1851],{"class":603},"# Удалить ВСЕ неиспользуемые данные (осторожно!)\n",[597,1853,1854,1856,1858,1861,1864],{"class":599,"line":643},[597,1855,370],{"class":609},[597,1857,1839],{"class":612},[597,1859,1860],{"class":612}," prune",[597,1862,1863],{"class":656}," -a",[597,1865,1866],{"class":656}," --volumes\n",[1868,1869,1870],"style",{},"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 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);}",{"title":38,"searchDepth":301,"depth":301,"links":1872},[1873,1874,1875,1880,1881,1887,1894,1895,1896],{"id":522,"depth":301,"text":523},{"id":546,"depth":301,"text":547},{"id":580,"depth":301,"text":581,"children":1876},[1877,1878,1879],{"id":587,"depth":308,"text":588},{"id":840,"depth":308,"text":841},{"id":926,"depth":308,"text":927},{"id":948,"depth":301,"text":949},{"id":1040,"depth":301,"text":1041,"children":1882},[1883,1884,1885,1886],{"id":1050,"depth":308,"text":1051},{"id":1086,"depth":308,"text":1087},{"id":1111,"depth":308,"text":1112},{"id":1142,"depth":308,"text":1143},{"id":1163,"depth":301,"text":1164,"children":1888},[1889,1890,1891,1892,1893],{"id":1173,"depth":308,"text":1174},{"id":1223,"depth":308,"text":1224},{"id":1274,"depth":308,"text":1275},{"id":1326,"depth":308,"text":1327},{"id":1406,"depth":308,"text":1407},{"id":1433,"depth":301,"text":1434},{"id":1687,"depth":301,"text":1688},{"id":1758,"depth":301,"text":1759,"children":1897},[1898,1900,1901],{"id":1762,"depth":308,"text":1899},"Ошибка: Got permission denied while trying to connect to the Docker daemon socket...",{"id":1789,"depth":308,"text":1790},{"id":1813,"depth":308,"text":1814},"2026-02-17 16:41:25","Пошаговая инструкция по Docker для начинающих. Установка, управление контейнерами и образы. Начните работать с контейнеризацией за 10 минут.","easy","10-15 мин",[1907,1910,1913,1916],{"question":1908,"answer":1909},"В чём разница между Docker-образом и контейнером?","Образ — это неизменяемый шаблон (как рецепт), а контейнер — запущенный экземпляр этого образа (как приготовленное блюдо).",{"question":1911,"answer":1912},"Нужно ли использовать sudo с каждой командой docker?","По умолчанию — да. Чтобы избежать этого, добавьте текущего пользователя в группу docker: `sudo usermod -aG docker $USER` и перезайдите в систему.",{"question":1914,"answer":1915},"Как удалить все остановленные контейнеры?","Используйте команду `docker container prune`. Она удалит все остановленные контейнеры, сети и неиспользуемые образы (с флагом `--all`).",{"question":1917,"answer":1918},"Можно ли запускать Docker без root-прав в production?","Да, но это требует тонкой настройки безопасности (user namespaces, seccomp-профили). Для продакшена рекомендуется использовать rootless Docker или изолированные среды.",[1920,1923,1926,1929,1932],{"name":1921,"text":1922},"Установите Docker Engine","Установите официальный пакет Docker для вашего дистрибутива через репозиторий. Это гарантирует получение обновлений.",{"name":1924,"text":1925},"Запустите тестовый контейнер","Выполните простую команду `docker run hello-world` для проверки корректности установки и настройки прав.",{"name":1927,"text":1928},"Управление образами","Изучите основные команды для поиска, загрузки и удаления образов из Docker Hub или приватного реестра.",{"name":1930,"text":1931},"Запуск и управление контейнерами","Научитесь запускать контейнеры в фоновом режиме, просматривать логи и останавливать/удалять их.",{"name":1933,"text":1934},"Создайте простой Dockerfile","Напишите минимальный Dockerfile для сборки собственного образа на основе Alpine Linux с веб-сервером.","PT15M",[1937,1938,1939,1940,1941,1942,1943,1944],"docker установка ubuntu","docker команды для начинающих","что такое docker контейнер","docker run пример","управление образами docker","docker linux инструкция","как запустить docker контейнер","dockerfile простой пример",{},[1947,1948,1949],"/guides/linux/docker-compose-basics","/guides/linux/dockerfile-best-practices","/errors/linux/docker-permission-denied","Гайды Docker",{"title":513,"description":1903},"guides/linux/docker-basics","Это руководство поможет новичкам освоить Docker на Linux: от установки до управления контейнерами. Вы сможете запускать изолированные приложения и создавать собственные образы.",[1955,370,360,1956,1957],"контейнеризация","cli","devops","guide","-eMjuBTBf9JPaBLzCojzmY0S5u31tg0Z94a-1R7Q7Ag"]