世界容器如何打印欢迎文本?

问题描述 投票:0回答:1

[我从某处读到hello-world docker映像是从头开始的,因此它没有外壳,然后它如何执行hello可执行文件?我们不需要外壳程序来执行文件吗?

linux docker dockerfile containers docker-container
1个回答
0
投票

因为docker CMD设计为运行可执行文件。

CMD

CMD指令具有三种形式:

CMD ["executable","param1","param2"] (exec form, this is the preferred form)
CMD ["param1","param2"] (as default parameters to ENTRYPOINT)
CMD command param1 param2 (shell form)

Dockerfile中只能有一条CMD指令。如果列出一个以上的CMD,则只有最后一个CMD才会生效。

CMD的主要目的是为执行提供默认值容器。这些默认值可以包含可执行文件,也可以省略可执行文件,在这种情况下,您必须指定一个ENTRYPOINT指令。

因此CMD和入口点运行可执行文件,您不需要外壳程序。如果运行,您将得到相同的响应

docker run -it --entrypoint ./hello --rm hello-world
docker run -it --rm hello-world
© www.soinside.com 2019 - 2024. All rights reserved.