Docker LinuxWindowsmacOS

Docker: permission denied при работе с томом (bind mount)

  • Обновлено
  • Чтение ≈ 2 минуты

Краткий ответ

Пользователь внутри контейнера не имеет прав на смонтированный каталог. Согласуйте UID/GID или используйте именованные тома.

В этой статье
  1. Что означает ошибка
  2. Причины и признаки
  3. Пошаговое решение
  4. Если проблема осталась

#Что означает ошибка

Сообщение
permission denied volume

Пользователь внутри контейнера не имеет прав на смонтированный каталог. Согласуйте UID/GID или используйте именованные тома.

#Причины и признаки

Возможная причинаКак узнатьЧто делать
Разные UIDUID/GID внутри контейнера не имеет доступа.Уточните идентификаторы и выдайте права только каталогу.
SELinuxSELinux запрещает операцию по контексту.Проверьте журнал и согласованный режим :z/:Z.
Права каталогаУ владельца хоста нет нужных прав.Установите адресные ACL вместо chmod 777.
Read-onlyТом подключён как :ro.Проверьте, ожидается ли запись, и отдельно согласуйте rw.

#Пошаговое решение

  1. Определите каталог и пользователяВ docker compose.yml или команде docker run найдите конкретное сопоставление ./data:/app/data и проверьте, какой путь находится на компьютере-хозяине. Сохраните сведения о данных перед изменением разрешений. В Linux ls -ld ./data, в работающем контейнере docker exec КОНТЕЙНЕР id покажут владельца/UID процесса (подставьте действительное имя).
  2. Проверьте режим томаЕсли сопоставление помечено :ro или read_only: true, попытка записи закономерно завершится отказом — не меняйте этот режим, если приложение должно только читать. Для записи уточните требования программы к каталогу и проверьте, что путь существует и не является корнем чужих данных.
  3. Назначьте доступ только нужному каталогуВ Linux администратор может выдать необходимому UID/GID права на отдельную папку данных через владельца или ACL после проверки резервной копии. Не выполняйте chmod -R 777 и не применяйте chown -R к /var/lib/docker или всему проекту. Для SELinux сверяйте контекст и документированные опции тома :z/:Z только если они подходят разделению данных между контейнерами.
  4. Проверка из-под нужного пользователяПерезапустите только нужный контейнер способом проекта, затем выполните тестовую запись в выделенный каталог, не трогая существующие файлы. Если отказ сохраняется, запишите docker inspect (секция Mounts), id, права и сообщение; не переходите на root внутри контейнера как постоянное решение.

#Если проблема осталась

Если «Docker: permission denied при работе с томом (bind mount)» повторяется, сохраните время, состояние подключения и точный текст ошибки. Не меняйте сразу несколько настроек — иначе станет трудно понять, какое действие повлияло на результат.

Так эту ошибку тоже называют

Источники и обновления

Последнее обновление статьи: 2 ноября 2026. Версии программ и интерфейсы меняются — если шаги не совпадают с вашей версией, сверяйтесь с документацией производителя.