我有一個Synology NAS,它具有docker支持,並且想要運行一些docker容器(我對Docker相當新穎)。例如pocketmine-pm(但我相信我也有其他容器的寫入問題)。如何給Docker容器寫映射卷的chmod權限?
我在主機上創建了一個卷,並將其映射到容器設置中。 (並且在卷映射的Synology泊塢窗設置中,我沒有點擊「只讀」)。
根據Dockerfile在容器中創建一個新用戶'pocketmine',並且該用戶用於啓動服務器。用戶似乎擁有用戶標識1000(新的Linux用戶的第一個UID)。該容器還使用Entrypoint.sh腳本來啓動服務器。
最初容器無法將文件寫入映射目錄。我必須SSH進入主機'chown'UID 1000的目錄:
sudo chown 1000:1000 /volXy/docker/pocketminemp -R
之後,可以下載和提取存檔。
不幸的是我無法從我的iOS設備連接到服務器。服務器被列爲「在線」,但連接失敗,沒有任何特定消息。然後我檢查了容器的日誌,看到下面的條目(不知道這是否真的可以防止連接,但我會試試看):
[*] Everything done! Run ./start.sh to start PocketMine-MP
chown: changing ownership of '/pocketmine/entrypoint.sh': Operation not permitted
chown: changing ownership of '/pocketmine/server.properties.original': Operation not permitted
Loading pocketmine.yml...
顯然,容器不能執行chown一個文件,它是以前能夠下載。
有沒有人知道可以做些什麼來解決這個問題?我需要chmod
映射的卷,爲什麼我需要chown
目錄到UID 1000(主機上並不存在的用戶) - 是否有更好的方法來修復權限?
OK,將檢查了這一點,但我相信,我讀的地方運行容器時的Synology不允許通過--user標誌作爲參數 - 但是它比一臺Synology問題一般的碼頭問題。 – Patric