簡體   English   中英

docker掛載主機目錄文件權限

[英]docker mounted host directory file permissions

我正在docker映像中運行mqtt經紀人Mosqitto。 我正在使用以下參數

sudo docker run -d -p 1883:1883 -p 1884:1884 -v /home/mosquitto/apps/dev/mosquitto:/mosquitto --restart always -u mosquitto eclipse-mosquitto:1.4.

這會將主機文件夾/ home / mosquitto / apps / dev / mosquitto安裝到映像文件夾/ mosquitto。問題是主機用戶ID(1001)和Docker用戶ID(100)不匹配。

如果我未指定-u mosquitto,則應用程序會抱怨無法寫入/mosquitto/logs/mosquitto.log

因此,我想我要指定-u mosquitto,以使映像中的應用程序以用戶1001的身份運行,因此具有對已裝入文件的寫訪問權。 哪個有效。 但是,Mosquitto應用程序在退出時創建了一個新的數據庫文件。 該文件是由101用戶作為所有者創建的。

當我為docker指定-U時會發生什么。 怎么達到我的期望(允許寫入主機文件)而沒有達到我的期望(仍然使用原始圖像用戶ID制作文件)

也許這與特定的docker映像有關..它在內部運行了一些切換用戶的腳本?

如何對任何用戶進行日志路徑的寫訪問? 它可能不太安全。 但是,如果只是日志,讓我們看看docker內部的應用程序可以對其進行寫入。

或者考慮將一些命令引導至容器以在內部進行權限更改。

如果您在Docker位置使用Linux或OSX,則很可能是安全性或文件權限問題。 轉到此錯誤報告Dockerfile ADD命令#1295自動創建的目錄的權限被拒絕,並跳到最后...有幾個子錯誤報告的鏈接,您很可能在其中找到解決方案。 我有一個非常類似的問題,事實證明這是selinux配置錯誤。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM