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