Когда я настраивал Ubuntu 20.04, я также выбрал установку Docker. Я не вносил никаких изменений в его настройки (т. е. я считаю, что Docker запускается от имени root), кроме создания группы docker
и добавления в нее своего пользователя.
Мои контейнеры хранят свои данные в /home/docker
. Чтобы иметь возможность зайти в папку по FTP и добавить/отредактировать некоторые файлы, я изменил владельца всех подпапок на myuser:myuser
. В результате сегодня утром SQL не работал должным образом. Я наконец решил, что мне следует восстановить владельца на root:root
, что позволило мне просматривать все базы данных и таблицы с помощью phpMyAdmin.
Однако при попытке подключиться с помощью DBeaver я постоянно получаю ошибку следующего вида:
Невозможно прочитать каталог «./database1/» (errno: 13 «Отказано в доступе»)
Может ли кто-нибудь подсказать мне, как лучше всего настроить права доступа к папке Docker и какие еще настройки мне следует изменить, чтобы все контейнеры работали правильно, а я мог работать по FTP и редактировать файлы.
Спасибо!
решение1
Контейнеры требуют права собственности на каталоги для пользователя, который используется в контейнере. Это зависит от образа, каждый создатель может выбрать, какого пользователя он хочет использовать в контейнере, поскольку контейнер изолирован.
При запуске docker inspect containername
вы можете найти это в конфигурации:
"Config": {
"User": "1001:1002",
В этом случае приложение в контейнере запускается от имени пользователя 1001 и группы 1002. Для этого вам необходимо запустить приложение chown 1001:1002
в папке, которую вы смонтировали как том в контейнере.
Если значение User
пустое, то он запускается как root. В этом случае разрешения не будут иметь значения.