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