在Docker中传递来自CMD的参数

我有下面的Dockerfile。

FROM node:boron # Create app directory RUN mkdir -p /usr/src/akamai WORKDIR /usr/src/akamai # Install app dependencies COPY package.json /usr/src/akamai/ RUN npm install # Bundle app source COPY . /usr/src/akamai #EXPOSE 8080 CMD ["node", "src/akamai-client.js", "purge", "https://www.example.com/main.css"] 

下面是我在Docker镜像构build之后从CMD运行的命令

 docker run -it "akamaiapi" //It executes the CMD command as given in above Dockerfile. 

CMD [“node”,“src / akamai-client.js”, “purge”“ https://www.example.com/main.css ” ] //我想要这两个参数直接从docker命令传递在Dockerfile中编码,所以我的Docker运行命令可能是这样的:

 docker run -it "akamaiapi" queue docker run -it "akamaiapi" purge "https://www.example.com/main.css" docker run -it "akamaiapi" purge-status "b9f80d960602b9f80d960602b9f80d960602" 

你可以通过ENTRYPOINTCMD的组合来ENTRYPOINT

  • ENTRYPOINT指定一个在容器启动时总是执行的命令。

  • CMD指定将被馈送到进入点的ENTRYPOINT

所以,用Dockerfile

 FROM node:boron ... ENTRYPOINT ["node", "src/akamai-client.js"] CMD ["purge", "https://www.example.com/main.css"] 

正在运行的容器的默认行为:

 docker run -it akamaiapi 

会像命令:

 node src/akamai-client.js purge "https://www.example.com/main.css" 

如果你这样做:

 docker run -it akamaiapi queue 

容器中的底层执行如下所示:

 node src/akamai-client.js queue