我创建一个容器 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
我不知所措“!”
Best Answer-推荐答案
您的问题可能来自您的Ubuntu Shell对字符串连接的底层理解 $ echo "Hello" "I" "am" "a" "developer"
Hello I am a developer
这是有效的,因为Shell没有串联运算符。因此,实际上将回声与字符串一起馈入将使所有这些字符串串联在一起成为echo ,其中没有真正的黑魔法,而且据我所知,字符串是按照传递给echo 的顺序进行串联的。 现在,您真正想要实现的目标可以通过 printf 轻松完成,它可以从参数中替换格式:printf 'Hello %s!' 'Bob'
> Hello Bob!
有关printf替换的更多信息,请参见there。 因此,如果您的Dockerfile 是:FROM ubuntu:14.04
ENTRYPOINT ["printf", "Hello %s!"]
CMD ["World"]
您将得到预期的结果。$ docker build -t demo .
$ docker run --rm demo
Hello World!
$ docker run --rm demo Bob
Hello Bob!
关于docker - 将参数传递给Docker容器,我们在Stack Overflow上找到一个类似的问题:
https://stackoverflow.com/questions/44197704/
|