![](/img/trans.png)
[英]Error when running mongo image - docker-entrypoint.sh: line 381
[英]Permission error with mongo when running docker
我的 docker-compose:
version: "2"
services:
api:
build: .
ports:
- "3007:3007"
links:
- mongo
volumes:
- .:/opt/app
mongo:
image: mongo
volumes:
- /data/db:/data/db
ports:
- "27017:27017"
我得到權限錯誤:
mongo_1 | chown: changing ownership of '/data/db/diagnostic.data/metrics.2017-06-27T13-32-30Z-00000': Operation not permitted
mongo_1 | chown: changing ownership of '/data/db/journal/WiredTigerLog.0000000054': Operation not permitted
mongo_1 | chown: changing ownership of '/data/db/journal/WiredTigerPreplog.0000000001': Operation not permitted
mongo_1 | chown: changing ownership of '/data/db/journal/WiredTigerPreplog.0000000002': Operation not permitted
mongo_1 | chown: changing ownership of '/data/db/WiredTiger.turtle': Operation not permitted
mongo_1 | chown: changing ownership of '/data/db/WiredTigerLAS.wt': Operation not permitted
ls-la 數據:
ls -la data
total 0
drwxrwxrwx 3 root wheel 102 Dec 1 2016 .
drwxr-xr-x 35 root wheel 1258 Jun 25 04:29 ..
drwxrwxrwx@ 118 root wheel 4012 Jun 27 15:33 db
如果我手動更改/data/db
的權限,它將被改回。
這里有什么問題? 如果我在本地運行 mongo 沒有問題。
只有sudo組的根或成員才能更改文件/目錄的所有權。 當您在docker中運行mongodb並從主機附加卷時,mongo嘗試以mongod用戶身份運行。 由於該用戶在您的主機上不存在,並且root擁有mongod / docker試圖擁有該操作系統的卷,因此將其視為權限問題,您將看到該錯誤。 您有幾種選擇:
通過編輯mongo配置並在docker構建過程中復制它,將mongo配置為以root身份運行。 假設您正在使用docker文件構建該映像。 這樣,訪問附加卷將沒有問題。
在主機上創建一個mongod用戶和組,然后將數據目錄的所有權更改為該操作系統在所有權/權限上沒有區別的用戶。
重新設計系統,以便mongo可以在其生命周期內使用默認的容器數據存儲大小,並完全放棄卷裝載。
我在CentOS中遇到了這個問題,解決方案是打開SELinux:
setenforce 0
這不是mongo問題。 實際上,這是一個碼頭工人問題。 當docker想要映射該卷時,它嘗試更改權限,但對用戶/組/ selinux限制失敗。
更新:
entrypoint.sh中有一個chown命令,嘗試更改映射卷中目錄和文件的權限。 在這里閱讀更多。
您可以更改為使用卷掛載,而不是使用目錄掛載。
version: "2" services: api: build: . ports: - "3007:3007" links: - mongo volumes: -.:/opt/app mongo: image: mongo volumes: - mongodata:/data/db ports: - "27017:27017" volumes: mongodata
這是mongo中的問題: https://github.com/docker-library/mongo/issues/232#issuecomment-355423692
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.