加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

将参数传递给Docker容器

发布时间:2020-12-16 03:42:41 所属栏目:安全 来源:网络整理
导读:我创建了一个集装箱码头.哪个应该给出以下内容: docker run --rm container1 Hello World!docker run --rm container1 Bob Hello Bob! 我的Dockerfile: FROM ubuntu:14.04ENTRYPOINT ["/bin/echo","Hello"]CMD ["World!"] 我的输出: docker run --rm cont

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

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!

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读