在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"
你可以通过ENTRYPOINT
和CMD
的组合来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