これを回避するには、rsyncなどのツールを使用できます。 Mongoの実行中にdbファイルをマップされたディレクトリに移動します。根本的なバグは、Windowsでマップされたボリュームとコンテナー内のバインドパスの間の遅延に関係しています。作業を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として 。