【发布时间】:2020-03-25 20:29:47
【问题描述】:
我有一个使用 Docker(docker-compose) 和 MongoDB 的简单 NodeJs 应用程序。一切正常,但 Mongo 的挂载卷是在用户 999 的所有权下创建的。
Docker是在非root用户权限下执行的。
这里是挂载的卷权限信息:
drwxr-sr-x 4 999 www-data 4,0K Aug 5 21:56 mongo-data
这是我的 docker-compose.yml 文件:
version: "3.3"
services:
api:
.....
mongodb:
image: mongo:latest
container_name: "mongodb"
environment:
- MONGO_DATA_DIR=/data/db
- MONGO_LOG_DIR=/dev/null
volumes:
- ./mongo-data:/data/db
ports:
- 27017:27017
command: mongod --smallfiles --logpath=/dev/null
volumes:
mongo-data:
下次执行时:docker-compose up -d --build会抛出这个错误:
错误:无法在 http+docker://localunixsocket 连接到 Docker 守护程序 - 它正在运行吗?
如果挂载的卷的所有权发生了变化,一切都会恢复正常,直到下一次。
我提到我之前在 MySQL 和 Redis 中使用过这种配置,但我从未遇到过这个问题。
关于如何解决它的任何想法?
谢谢!
【问题讨论】:
标签: node.js mongodb docker docker-compose