带mongod的ENTRYPOINT&CMD命令会导致未知的选项错误

我正在使用多个Dockerfiles来设置我的服务器基础结构。 我构build的一个Dockerfiles是一个MongoDB服务器,它将在后面的步骤中连接到一个运行的Web服务器应用程序。 目前,我在运行MongoDB服务器时遇到了以下错误:

"Error parsing command line: unknown option port 27017" 

在我的Dockerfile中有:

 CMD ["--port 27017", "--dbpath /data/db", "--smallfiles"] ENTRYPOINT ["/usr/bin/mongod"] 

当我使用而不是上面的命令时,下面的一切工作:

 CMD /usr/bin/mongod --port 27017 --dbpath /data/db --smallfiles 

我更喜欢CMD – 数组和入口点的方法更多,但不知道为什么我收到错误。

使用json语法时,需要分别传递每个参数。 它会将每个元素视为一个,而在非json语法中,它将被shell分割并被视为两个。

CMD ["--port", "27017", "--dbpath", "/data/db", "--smallfiles"]将起作用。

另外,我不知道mongo是否支持它,但大多数软件都支持,你可以这样做:

CMD ["--port=27017", "--dbpath=/data/db", "--smallfiles"]所以它会作为一个元素传递,但会被mongo解释。