将参数传递给docker镜像上的app

时间:2014-10-01 18:16:02

标签: docker

我环顾四周,看到一些简单的HelloWorld示例在这样的docker容器上运行: http://dotnet.dzone.com/articles/docker-%E2%80%98hello-world-mono

在Dockerfile的末尾,作者调用:

CMD     ["mono", "/src/hello.exe"]

我们想要做的是在构建我们的控制台应用程序时拥有可重用的图像。使用Dockerfile将它放在docker镜像上。那部分对我有意义。但后来我希望能够传递ConsoleApp参数。这可能吗?

例如,

sudo docker run crystaltwix/helloworld -n "crystal twix" 

其中-n是我在helloworld app中定义的参数。

2 个答案:

答案 0 :(得分:3)

@ seanmcl的答案是最简单的......如果你必须传递像应用程序密钥这样的秘密值,你可能不得不担心暴露它们是进程列表....所以,你可以使用环境变量你应用程序在启动期间查找:

SECRET_KEY="crystal twix"
docker run -e APP_KEY=$SECRET_KEY crystaltwix/helloworld

答案 1 :(得分:2)

您可以使用ENTRYPOINT foo而不是CMD foo来实现此目的。 docker run之后的所有参数都传递给foo。