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