【问题标题】:Docker-compose and mongoDB: Failed to start up WiredTiger under any compatibility version?Docker-compose 和 mongoDB:在任何兼容版本下都无法启动 WiredTiger?
【发布时间】:2020-07-23 14:44:45
【问题描述】:

我有以下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

在我添加 volumes 之前,这一切正常。但是当我运行时不是: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 卷,它可以在容器出现故障时保持我的数据持久化。

编辑:作为参考,我在 Windows 10 Pro 机器上运行 docker desktop 2.2.0.3

【问题讨论】:

  • 您是否检查了本地共享文件夹中的权限?
  • @matthPen 不,我没有,我该怎么做?我在 Windows 10 Pro 上运行,如果这有什么不同? S
  • @matthPen 我相信我现在已经修复了 - 请在下面查看我的答案

标签: mongodb docker docker-compose docker-volume wiredtiger


【解决方案1】:

我能够通过将volume 添加到我的docker-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:

【讨论】:

  • 你能解释一下这是做什么的吗?
  • @DavutGürbüz 在我的 Mac 上更新 docker 后我遇到了同样的问题,这对我有用。显然,这与 Docker 如何访问卷中的磁盘(解决方案)与绑定挂载(原始 compose 文件)有关
【解决方案2】:

我在使用 Windows 10 时遇到了一些问题。 第一次就有效。

docker run -d -p 27017:27017 -v /c/mongo_data:/data/db --name=container-mongodb mongo

停止容器container-mongodb后,在第二次尝试启动容器container-mongodb时失败。

docker stop container-mongodb
docker start container-mongodb
docker logs container-mongodb
{"t":{"$date":"2021-10-09T09:40:38.082+00:00"},"s":"E",  "c":"STORAGE",  "id":22435,   "ctx":"initandlisten","msg":"WiredTiger error","attr":{"error":1,"message":"[1633772438:82174][1:0x7f9b65426c80], file:WiredTiger.wt, connection: __posix_open_file, 805: /data/db/WiredTiger.wt: handle-open: open: Operation not permitted"}}
{"t":{"$date":"2021-10-09T09:40:38.098+00:00"},"s":"E",  "c":"STORAGE",  "id":22435,   "ctx":"initandlisten","msg":"WiredTiger error","attr":{"error":1,"message":"[1633772438:98526][1:0x7f9b65426c80], file:WiredTiger.wt, connection: __posix_open_file, 805: /data/db/WiredTiger.wt: handle-open: open: Operation not permitted"}}
{"t":{"$date":"2021-10-09T09:40:38.115+00:00"},"s":"E",  "c":"STORAGE",  "id":22435,   "ctx":"initandlisten","msg":"WiredTiger error","attr":{"error":1,"message":"[1633772438:115018][1:0x7f9b65426c80], file:WiredTiger.wt, connection: __posix_open_file, 805: /data/db/WiredTiger.wt: handle-open: open: Operation not permitted"}}

解决方案大同小异,都需要定义一个 docker 卷。并使用卷 mongodata 替换路径 /c/mongo_data。当我想要第二个 docker 启动时它可以工作。

docker volume create --name=mongodata
docker run -d -p 27017:27017 -v mongodata:/data/db --name=container-mongodb mongo

更多详情请参考Windows mount /data/db

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-01-28
    • 1970-01-01
    • 1970-01-01
    • 2011-10-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多