将参数传递给Docker容器

前端之家收集整理的这篇文章主要介绍了将参数传递给Docker容器前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

我创建了一个集装箱码头.哪个应该给出以下内容

docker run --rm container1
> Hello World!

docker run --rm container1 Bob
> Hello Bob!

我的Dockerfile:

FROM ubuntu:14.04
ENTRYPOINT ["/bin/echo","Hello"]
CMD ["World!"]

我的输出

docker run --rm container1
> Hello World!

docker run --rm container1 Bob
> Hello Bob

我有一个损失“!”

最佳答案
你的问题可能来自你的Ubuntu shell完成的字符串连接的底层不理解

$echo "Hello" "I" "am" "a" "developer"
Hello I am a developer

这是有效的,因为shell没有连接运算符.因此,实际上用字符串提供回声会使所有这些字符串连接成回声,其中没有真正的黑魔法,而且据我所知,字符串按它们传递给echo的顺序连接起来.

现在你真正想要实现的目标可以很容易地用printf来完成,它可以从参数中替换一种格式:

printf 'Hello %s!' 'Bob'
> Hello Bob!

有关printf substitution的更多信息,请访问there.

所以如果你的Dockerfile是:

FROM ubuntu:14.04
ENTRYPOINT ["printf","Hello %s!"]
CMD ["World"]

您将获得预期的结果.

$cat Dockerfile 
FROM ubuntu:14.04
ENTRYPOINT ["printf","Hello %s!"]
CMD ["World"]

$docker build -t demo .

$docker run --rm demo Bob
Hello Bob!

猜你在找的Docker相关文章