Ubuntu 20.04 + Docker: правильные права доступа к папкам

Ubuntu 20.04 + Docker: правильные права доступа к папкам

Когда я настраивал 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. В этом случае разрешения не будут иметь значения.

Связанный контент