MongoDB是一种开源的、高性能、无模式的NoSQL数据库管理系统。在使用Docker容器部署MongoDB时,如果重新创建MongoDB容器,通常不会重新运行docker-entrypoint-initdb.d目录中的config.js文件。
config.js文件是用于配置和初始化MongoDB的脚本文件。它可以包含一系列命令,用于创建数据库、集合、索引等操作。在容器首次启动时,MongoDB会自动执行该目录下的config.js文件来初始化数据库。然而,如果重新创建容器,MongoDB会检测到已存在的数据库文件,因此不会再次执行config.js文件。
为了解决这个问题,可以考虑以下几种方法:
docker exec -it <容器名称或ID> /bin/bash
然后,使用以下命令执行config.js文件:
mongo < config.js
这样就能重新运行config.js文件完成数据库的初始化。
FROM mongo
COPY config.js /docker-entrypoint-initdb.d/
ENTRYPOINT ["docker-entrypoint.sh"]
CMD ["mongod"]
在上述示例中,将config.js文件复制到了docker-entrypoint-initdb.d目录下,并通过自定义ENTRYPOINT命令执行config.js文件。
总结起来,重新创建MongoDB容器不会重新运行docker-entrypoint-initdb.d中的config.js文件。为了重新运行该文件,可以手动执行、自定义Docker的ENTRYPOINT命令,或者考虑使用云平台的托管服务来简化数据库初始化和配置的操作。
领取专属 10元无门槛券
手把手带您无忧上云