【发布时间】:2017-03-19 22:19:37
【问题描述】:
我有以下 docker 命令
docker run -v //c/data:/data/db mongo
我从 docker / mongo 得到以下错误响应
MongoDB starting : pid=1 port=27017 dbpath=/data/db 64-bit host=8706cbf1b78f
db version v3.4.2
git version: 3f76e40c105fc223b3e5aac3e20dcd026b83b38b
OpenSSL version: OpenSSL 1.0.1t 3 May 2016
allocator: tcmalloc
modules: none
build environment:
distmod: debian81
distarch: x86_64
target_arch: x86_64
options: {}
wiredtiger_open config: create,cache_size=478M,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),
WiredTiger error (1) [1489982988:687653][1:0x7fec9df0ccc0], connection: /data/db/WiredTiger.wt: handle-open: open: Operation not permitted
Assertion: 28595:1: Operation not permitted src/mongo/db/storage/wiredtiger/wiredtiger_kv_engine.cpp 267
exception in initAndListen: 28595 1: Operation not permitted, terminating
shutdown: going to close listening sockets...
removing socket file: /tmp/mongodb-27017.sock
shutdown: going to flush diaglog...
now exiting
shutting down with code:100
现在,当我删除卷时,mongo 可以工作,但我需要保留我的数据,所以我需要以某种方式安装卷,只是不确定此时我做错了什么。
我确实看到文件出现在我的文件夹中,但不知道为什么会出现 100 错误
【问题讨论】:
-
通过 VM 层持久化数据会很慢,可能会导致这样的问题。您可以使用命名/本地卷吗?
docker run -c mongo_data:/data/db mongo -
这行不通; MongoDB 和 Windows 上 Docker 中的映射卷不兼容,如 mongo docker image documentation 中所述。注意:这个问题之前已经提出并回答过,例如stackoverflow.com/q/42756776/174843
-
@VinceBowdren 我看到了,但是上面列出了两种安装方法,我不确定这两种安装方法是否由于我的操作系统而无法实现
-
@VinceBowdren 是否可以使用 docker-compose 文件为 linux 挂载但不能为 windows 挂载?
-
@LoganMurphy 是的,MongoDB 可以毫无问题地在 linux 主机上使用 docker 映射卷(以some other technical requirements为准)
标签: mongodb docker docker-compose mounted-volumes