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 身分執行。在這種情況下,權限並不重要。

相關內容