Docker compose和mongoDB:无法在任何兼容版本下启动WiredTiger?

Docker compose和mongoDB:无法在任何兼容版本下启动WiredTiger?,mongodb,docker,docker-compose,docker-volume,wiredtiger,Mongodb,Docker,Docker Compose,Docker Volume,Wiredtiger,我有以下docker compose文件: version: "3" services: # # APIs #---------------------------------------------- pokerstats: image: pokerstats container_name: pokerstats ports: - 8080:8080 depends_o

我有以下
docker compose
文件:

version: "3"

services:

    #
    # APIs
    #----------------------------------------------
       pokerstats:
        image: pokerstats
        container_name: pokerstats
        ports:
          - 8080:8080
        depends_on: 
          - db

    #
    # Utilities
    #----------------------------------------------
      db:
        image: mongo
        container_name: mongo
        volumes:
          - ./data/db:/data/db
        ports:
          - "27018:27017"
        environment:
          MONGO_INITDB_ROOT_USERNAME: admin
          MONGO_INITDB_ROOT_PASSWORD: admin
          MONGO_INITDB_DATABASE: pokerStats
在我添加
卷之前,它运行良好。但是,当我运行:
docker compose up-d
时,mongo容器立即停止,在日志中我看到错误:

2020-04-10T19:17:17.313+0000 I  STORAGE  [initandlisten] wiredtiger_open config: create,cache_size=1457M,cache_overflow=(file_max=0M),session_max=33000,eviction=(threads_min=4,threads_max=4),config_base=false,statistics=(fast),log=(enabled=true,archive=true,path=journal,compressor=snappy),file_manager=(close_idle_time=100000,close_scan_interval=10,close_handle_minimum=250),statistics_log=(wait=0),verbose=[recovery_progress,checkpoint_progress],
2020-04-10T19:17:17.772+0000 E  STORAGE  [initandlisten] WiredTiger error (1) [1586546237:772524][29:0x7fe9f284fb00], connection: __posix_open_file, 667: /data/db/WiredTiger.wt: handle-open: open: Operation not permitted Raw: [1586546237:772524][29:0x7fe9f284fb00], connection: __posix_open_file, 667: /data/db/WiredTiger.wt: handle-open: open: Operation not permitted
2020-04-10T19:17:17.784+0000 E  STORAGE  [initandlisten] WiredTiger error (17) [1586546237:784001][29:0x7fe9f284fb00], connection: __posix_open_file, 667: /data/db/WiredTiger.wt: handle-open: open: File exists Raw: [1586546237:784001][29:0x7fe9f284fb00], connection: __posix_open_file, 667: /data/db/WiredTiger.wt: handle-open: open: File exists
2020-04-10T19:17:17.785+0000 I  STORAGE  [initandlisten] WiredTiger message unexpected file WiredTiger.wt found, renamed to WiredTiger.wt.1
2020-04-10T19:17:17.788+0000 E  STORAGE  [initandlisten] WiredTiger error (1) [1586546237:788283][29:0x7fe9f284fb00], connection: __posix_open_file, 667: /data/db/WiredTiger.wt: handle-open: open: Operation not permitted Raw: [1586546237:788283][29:0x7fe9f284fb00], connection: __posix_open_file, 667: /data/db/WiredTiger.wt: handle-open: open: Operation not permitted
2020-04-10T19:17:17.799+0000 E  STORAGE  [initandlisten] WiredTiger error (17) [1586546237:799215][29:0x7fe9f284fb00], connection: __posix_open_file, 667: /data/db/WiredTiger.wt: handle-open: open: File exists Raw: [1586546237:799215][29:0x7fe9f284fb00], connection: __posix_open_file, 667: /data/db/WiredTiger.wt: handle-open: open: File exists
2020-04-10T19:17:17.801+0000 I  STORAGE  [initandlisten] WiredTiger message unexpected file WiredTiger.wt found, renamed to WiredTiger.wt.2
2020-04-10T19:17:17.803+0000 E  STORAGE  [initandlisten] WiredTiger error (1) [1586546237:803211][29:0x7fe9f284fb00], connection: __posix_open_file, 667: /data/db/WiredTiger.wt: handle-open: open: Operation not permitted Raw: [1586546237:803211][29:0x7fe9f284fb00], connection: __posix_open_file, 667: /data/db/WiredTiger.wt: handle-open: open: Operation not permitted
2020-04-10T19:17:17.805+0000 W  STORAGE  [initandlisten] Failed to start up WiredTiger under any compatibility version.
2020-04-10T19:17:17.806+0000 F  STORAGE  [initandlisten] Reason: 1: Operation not permitted
2020-04-10T19:17:17.806+0000 F  -        [initandlisten] Fatal Assertion 28595 at src/mongo/db/storage/wiredtiger/wiredtiger_kv_engine.cpp 860
我如何解决这个问题?我想要一个mongo卷,它可以在容器关闭时保持数据的持久性


编辑:作为参考,我正在
Windows10Pro
机器上运行
docker desktop 2.2.0.3

我可以通过在我的
docker compose
文件中添加
volume
并在compose文件的mongo部分引用它来解决此问题,如下所示:

  db:
    image: mongo
    container_name: mongo
    volumes:
      - mongodata:/data/db
    ports:
      - "27018:27017"
    environment:
      MONGO_INITDB_ROOT_USERNAME: admin
      MONGO_INITDB_ROOT_PASSWORD: admin
      MONGO_INITDB_DATABASE: golfStats

volumes:
  mongodata:

我通过在我的
docker compose
文件中添加
volume
并在compose文件的mongo部分引用它来解决这个问题,如下所示:

  db:
    image: mongo
    container_name: mongo
    volumes:
      - mongodata:/data/db
    ports:
      - "27018:27017"
    environment:
      MONGO_INITDB_ROOT_USERNAME: admin
      MONGO_INITDB_ROOT_PASSWORD: admin
      MONGO_INITDB_DATABASE: golfStats

volumes:
  mongodata:

您是否检查了本地共享文件夹中的权限?@matthPen否我没有权限如何检查?我在Windows10Pro上运行,如果这有什么不同?S@matthPen我相信我现在已经解决了-请看下面我的答案您是否检查了本地共享文件夹中的权限?@matthPen否我没有我怎么做?我在Windows10Pro上运行,如果这有什么不同?S@matthPen我相信我现在已经解决了——请看下面我的答案。你能解释一下这是怎么回事吗?@DavutGürbüz在我的Mac上更新docker之后,我也遇到了同样的问题,这对我来说很有效。显然,这与Docker在卷(解决方案)和绑定挂载(原始撰写文件)中如何访问磁盘有关。你能解释一下这是怎么回事吗?@DavutGürbüz在Mac上更新Docker后,我也遇到了同样的问题,这对我来说很有效。显然,这与Docker在卷(解决方案)和绑定挂载(原始撰写文件)中访问磁盘的方式有关