mongodb 容器错误的权限被拒绝,而 docker_compose 文件中的 运行

permission denied for mongodb container error while running from docker_compose file

使用 Windows 10 专业版

这是我的 docker_compose.yml 文件下的服务之一。

version: '3'
networks:
    demo-net:
services:
    mongodb:
        image: mongo:latest
        container_name: mongodb
        restart: always
        environment:
            MONGO_INITDB_ROOT_USERNAME: root
            MONGO_INITDB_ROOT_PASSWORD: root
            MONGO_INITDB_DATABASE: admin
        ports:
            - 27017:27017
        volumes:
            - ./mongo_data:/data/db
        networks:
            - demo-net

当我在 vs 代码中执行 docker_compose 时,出现此错误

mongodb    | 2020-05-07T16:53:34.336+0000 W  STORAGE  [initandlisten] Failed to start up WiredTiger under any compatibility version.
mongodb    | 2020-05-07T16:53:34.337+0000 F  STORAGE  [initandlisten] Reason: 1: Operation not permitted
mongodb    | 2020-05-07T16:53:34.337+0000 F  -        [initandlisten] Fatal Assertion 28595 at src/mongo/db/storage/wiredtiger/wiredtiger_kv_engine.cpp 915
mongodb    | 2020-05-07T16:53:34.337+0000 F  -        [initandlisten]
mongodb    |
mongodb    | ***aborting after fassert() failure
mongodb    |
mongodb    |
mongodb exited with code 14

谁能告诉我我做错了什么? 同一段代码正在朋友的 mac 上运行。 将 MongoDb 保留在我的本地以及在容器中使用它会导致任何问题吗?

编辑:

您的问题是容器/主机权限。 This answer might help.

原始答案:

Will keeping MongoDb in my local as well as using it in the container will cause any problem?

是的,如果您 运行 使用相同的默认端口 (27017)。您可以通过映射不同的本地端口来避免这种情况,例如如果您的 docker 撰写:

    ports:
        - 27018:27017

然后连接到容器的端口 27018 上的mongo。