Ubuntu 20.04 + Docker:正确的文件夹权限

Ubuntu 20.04 + Docker:正确的文件夹权限

当我设置 Ubuntu 20.04 时,我选择同时安装 Docker。除了创建一个docker组并将我的用户添加到其中之外,我没有对其设置进行任何更改(即我相信 Docker 以 root 身份运行)。

我的容器将其数据存储在 中/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 身份运行。在这种情况下,权限无关紧要。

相关内容