2016-02-13 773 views
2

我是新來的集裝箱和碼頭工人,請耐心等待。我試圖讓mongo啓動並在Synology NAS上運行,其中db文件存儲在共享文件夾中(與創建的docker文件夾不同)。所有用戶都具有完整的讀/寫訪問權限,但以下錯誤不斷出現。通過Synology NAS上的docker啓動mongo

STORAGE [initandlisten] exception in initAndListen std ::exception:boost::filesystem::status: Permission denied: "/data/db/storage.bson", terminating

Mongo Error

這是我怎麼有容器的文件夾結構設置。我認爲這個問題是虛擬驅動器映射的結果,但我不確定。一如既往,任何幫助將不勝感激。 Drive Mapping

編輯:以下添加權限/共享/數據/分貝。

Folder permissions

+1

您可能遇到UID問題,因爲mongo沒有以DSM知道的用戶身份運行,您能顯示爲'/ share/data/db'配置的權限嗎? –

+0

@KevinBurdett謝謝Kevin - 我在該文件夾中添加了對'Everyone'的讀/寫,現在它正在工作。擁有廣泛的許可方案似乎並不理想。你知道DSM用來運行docker的用戶嗎? – user1991179

+0

沒問題,問題不在於用戶DSM正在使用什麼,而是在容器內部mongo服務正在使用的用戶**。我不熟悉那個容器,所以我不能說。最終,容器是一個虛擬機,並擁有自己的用戶。這些用戶通常不會映射到主機上的有效用戶。如果服務以root身份運行,我認爲Docker會處理這個問題(或者因爲root始終擁有相同的UID?)。 看看這個帖子在這裏,它是非常詳細的: http://stackoverflow.com/questions/23544282/what-is-the-best-way-to-manage-permissions-for-docker-shared-volumes –

回答

3

從添加爲後人評論的答案...

這個問題從MongoDB的過程莖內泊塢窗容器中運行的不具有在主機上權限的用戶。最簡單但可能最不安全的修復方法是使用每個人的讀寫權限標記主機卷(chmod 777)。

看看這篇文章的更多細節和更「適當」的解決方案。 What is the (best) way to manage permissions for docker shared volumes

+0

它不適合我 –