찾다

 >  Q&A  >  본문

在docker中部署mongodb,报错directory-sync: fdatasync: Invalid argument.

在docker中部署mongodb,数据文件持久化到mac(我本机)中,测试发现,只要将数据文件目录放到docker中就没问题,一旦将文件放到通过docker -v命令挂载过来的文件夹中就回爆出如下错误:

docker启动命令:

docker run -it -v /Usr/happyhour7/code/data:/data mongodb /bin/bash

root@aba9b0873a23:/# mongod --dbpath=/data/db
2017-01-05T08:40:32.211+0000 I CONTROL [initandlisten] MongoDB starting : pid=15 port=27017 dbpath=/data/db 64-bit host=aba9b0873a23
2017-01-05T08:40:32.211+0000 I CONTROL [initandlisten] db version v3.4.1
2017-01-05T08:40:32.211+0000 I CONTROL [initandlisten] git version: 5e103c4f5583e2566a45d740225dc250baacfbd7
2017-01-05T08:40:32.211+0000 I CONTROL [initandlisten] OpenSSL version: OpenSSL 1.0.2g 1 Mar 2016
2017-01-05T08:40:32.211+0000 I CONTROL [initandlisten] allocator: tcmalloc
2017-01-05T08:40:32.211+0000 I CONTROL [initandlisten] modules: none
2017-01-05T08:40:32.211+0000 I CONTROL [initandlisten] build environment:
2017-01-05T08:40:32.211+0000 I CONTROL [initandlisten] distmod: ubuntu1404
2017-01-05T08:40:32.211+0000 I CONTROL [initandlisten] distarch: x86_64
2017-01-05T08:40:32.211+0000 I CONTROL [initandlisten] target_arch: x86_64
2017-01-05T08:40:32.211+0000 I CONTROL [initandlisten] options: { storage: { dbPath: "/data/db" } }
2017-01-05T08:40:32.218+0000 I STORAGE [initandlisten] wiredtiger_open config: create,cache_size=489M,session_max=20000,eviction=(threads_max=4),config_base=false,statistics=(fast),log=(enabled=true,archive=true,path=journal,compressor=snappy),file_manager=(close_idle_time=100000),checkpoint=(wait=60,log_size=2GB),statistics_log=(wait=0),
2017-01-05T08:40:32.229+0000 E STORAGE [initandlisten] WiredTiger error (22) 1483605632:229032, connection: /data/db/: directory-sync: fdatasync: Invalid argument
2017-01-05T08:40:32.230+0000 I - [initandlisten] Fatal Assertion 28561 at src/mongo/db/storage/wiredtiger/wiredtiger_kv_engine.cpp 264
2017-01-05T08:40:32.230+0000 I - [initandlisten]

*aborting after fassert() failure

我本机:mac,docker系统:ubuntu@14.04

曾经蜡笔没有小新曾经蜡笔没有小新2757일 전2507

모든 응답(1)나는 대답할 것이다

  • 怪我咯

    怪我咯2017-05-02 09:26:13

    MacBook에서 Docker를 직접 실행하고 있나요? Volume에 대한 공식 문서에는 다음과 같이 나와 있습니다.

    파일 공유

    Mac에서 컨테이너와 공유할 디렉토리를 결정할 수 있습니다.

    디렉토리 추가 - +를 클릭하고 추가하려는 디렉토리로 이동하세요.

    적용 및 다시 시작을 클릭하면 Docker의 바인드 마운트(-v) 기능을 사용하여 컨테이너에서 디렉터리를 사용할 수 있습니다.

    볼륨을 사용하려면 먼저 Docker를 구성해야 한다는 뜻입니다

    참조:
    Mac용 Docker 시작하기

    회신하다
    0
  • 취소회신하다