首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

重新创建MongoDB容器不会重新运行docker-entrypoint-initdb.d中的config.js文件

MongoDB是一种开源的、高性能、无模式的NoSQL数据库管理系统。在使用Docker容器部署MongoDB时,如果重新创建MongoDB容器,通常不会重新运行docker-entrypoint-initdb.d目录中的config.js文件。

config.js文件是用于配置和初始化MongoDB的脚本文件。它可以包含一系列命令,用于创建数据库、集合、索引等操作。在容器首次启动时,MongoDB会自动执行该目录下的config.js文件来初始化数据库。然而,如果重新创建容器,MongoDB会检测到已存在的数据库文件,因此不会再次执行config.js文件。

为了解决这个问题,可以考虑以下几种方法:

  1. 手动执行config.js文件:可以通过进入MongoDB容器,使用mongo命令手动执行config.js文件来完成数据库的初始化。首先,进入容器的命令行界面,可以使用以下命令:
代码语言:txt
复制
docker exec -it <容器名称或ID> /bin/bash

然后,使用以下命令执行config.js文件:

代码语言:txt
复制
mongo < config.js

这样就能重新运行config.js文件完成数据库的初始化。

  1. 使用Docker的ENTRYPOINT命令:在Dockerfile中,可以通过自定义ENTRYPOINT命令来执行config.js文件。这样,在每次启动容器时,都会运行config.js文件,确保数据库的初始化操作得以执行。以下是一个示例的Dockerfile:
代码语言:txt
复制
FROM mongo

COPY config.js /docker-entrypoint-initdb.d/

ENTRYPOINT ["docker-entrypoint.sh"]

CMD ["mongod"]

在上述示例中,将config.js文件复制到了docker-entrypoint-initdb.d目录下,并通过自定义ENTRYPOINT命令执行config.js文件。

  1. 使用云平台的托管服务:如果希望自动化管理MongoDB数据库的初始化和配置,可以考虑使用云平台的托管服务,如腾讯云的云数据库MongoDB。这些托管服务通常提供了简单的配置和管理界面,可以轻松完成数据库的初始化和配置操作,无需手动处理config.js文件。

总结起来,重新创建MongoDB容器不会重新运行docker-entrypoint-initdb.d中的config.js文件。为了重新运行该文件,可以手动执行、自定义Docker的ENTRYPOINT命令,或者考虑使用云平台的托管服务来简化数据库初始化和配置的操作。

相关搜索:重新运行将文件作为numpy数组读入的python脚本实际上不会重新读取吗?Node.js:当docker容器上的文件发生更改时重新运行程序当docker容器中的代码发生更改时,nodemon不会重新启动服务器在docker容器中运行的应用程序如何检测到docker主机已重新启动?AppleScript - Indesign中的重新链接文件-无法从给定的URI创建链接资源从文件系统中的目录中删除ATR文件后,如何重新创建该文件?“为什么在Dockerfile中运行的命令不能在容器中创建持久文件?”重新运行主镜像Dockerfile中的复制指令,替换基础镜像中已存在的同名文件在docker容器中运行的Splunk索引器在docker重新启动时覆盖inputs.conf将卷添加到docker-compose是否会重新创建容器并删除定义已更改的容器中的数据?新游戏不会刷新py文件中的高分,但会在重新打开游戏时刷新。为什么?片段不会从后台堆栈中恢复,也会使用片段的生命周期重新创建ViewModelRabbitMQ,Kubernetes :队列中的消息在容器重新启动之间不会持久,即使在添加了卷之后也是如此cythonize不会在一个运行时中的第二次调用后重新拷贝修改过的pyx文件即使它们位于与主机相同的文件系统中,也不会在docker容器中创建硬链接在Portainer中有没有可能从运行的容器中创建docker-compose yml文件?创建脚本以重新启动主机名位于文本文件中的计算机Airflow Subdag任务在CLI中回填正在创建新任务,而不是重新运行失败的任务,并且仅运行1天非范围由于与64位版本的Windows不兼容,从字节数组重新创建的可执行文件无法运行在K8s环境中运行的ActiveMQ Artemis集群中,要从故障节点重新创建活动节点(Pod),应该保留哪些目录?
相关搜索:
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

  • kubectl管理kubernetes集群

    [root@master ~]# kubectl get nodes  查看集群节点 NAME      STATUS    AGE node1    Ready    25m node2    Ready    19m [root@master ~]# kubectl version  查看版本 Client Version: version.Info{Major:"1", Minor:"5", GitVersion:"v1.5.2", GitCommit:"269f928217957e7126dc87e6adfa82242bfe5b1e", GitTreeState:"clean", BuildDate:"2017-07-03T15:31:10Z", GoVersion:"go1.7.4", Compiler:"gc", Platform:"linux/amd64"} Server Version: version.Info{Major:"1", Minor:"5", GitVersion:"v1.5.2", GitCommit:"269f928217957e7126dc87e6adfa82242bfe5b1e", GitTreeState:"clean", BuildDate:"2017-07-03T15:31:10Z", GoVersion:"go1.7.4", Compiler:"gc", Platform:"linux/amd64"} [root@master ~]# kubectl run nginx --image=docker.io/nginx --replicas=1 --port=9000 deployment "nginx" created [root@master ~]# kubectl get deployment NAME      DESIRED  CURRENT  UP-TO-DATE  AVAILABLE  AGE nginx    1        1        1            0          15s [root@master ~]# kubectl get pods NAME                    READY    STATUS    RESTARTS  AGE nginx-2187705812-8r0h4  1/1      Running  0          1h [root@master ~]# kubectl get pods -o wide NAME                    READY    STATUS    RESTARTS  AGE      IP          NODE nginx-2187705812-8r0h4  1/1      Running  0          1h        10.255.4.2  node1 想要删除一个容器的时候:

    01
    领券