gpt4 book ai didi

mongodb - Windows Docker mongo 容器不适用于卷安装

转载 作者:可可西里 更新时间:2023-11-01 09:48:30 26 4
gpt4 key购买 nike

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

最佳答案

要解决此问题,您可以使用 rsync 等工具在 Mongo 运行时将 db 文件移动到映射目录中。潜在的错误与 Windows 映射卷和容器内的绑定(bind)路径之间的延迟有关。将工作卸载到 rsync 将延迟与 Mongo 的运行时要求分离开来。

示例

像这样创建一个基本的 Dockerfile:

FROM mongo:latest

RUN apt-get update && \
apt-get install -y \
rsync

ADD init.sh /init.sh

init.sh 是:

#!/bin/bash

migrate_db() {
while true
do
rsync -avh /data/db/* /data/mapped-db
sleep 5
done
}

migrate_db &

#Execute a command
mongod --smallfiles --logpath=/dev/null --verbose &

#Wait
wait $!

然后,在启动容器时,只需以 ./init.sh 作为您的 ENTRYPOINT 开始。

关于mongodb - Windows Docker mongo 容器不适用于卷安装,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42892993/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com