gpt4 book ai didi

docker - Dockerfile 中是否需要提及 CMD 或 ENTRYPOINT?

转载 作者:行者123 更新时间:2023-12-02 18:27:00 25 4
gpt4 key购买 nike

我已阅读有关 CMD 和 ENTRYPOINT 的文档
https://docs.docker.com/engine/reference/builder/#entrypoint
在这里,他们在表中提到“不允许使用 CMD 和 NO ENTYRPOINT”,但是我创建了一个没有 CMD 和 ENTRYPOINT 的 Dockerfile,并且镜像构建成功。
从这里下载 Alpine tar Alpine Tar
文件

from scratch 
ADD alpine-minirootfs-3.11.2-x86_64.tar.gz /
COPY . /
构建图像:
docker build -t test:1 .
Sending build context to Docker daemon 2.724MB
Step 1/3 : from scratch
-----
Successfully tagged test:1

docker run -ti test:1 /bin/sh
/ #
有效!!那么为什么在文档中提到 CMD 或 ENTRYPOINT 是必要的?

最佳答案

docker run 的末尾指定命令命令行供应(或覆盖)CMD ;同样,docker run --entrypoint选项供应(或覆盖)ENTRYPOINT .在您的示例中,您给出了一个命令 /bin/sh所以容器有一些事情要做;如果你离开它,你会得到一个错误。

就风格而言,您的 Dockerfiles 应该几乎总是声明 CMD ,除非您要扩展已经自动运行应用程序的基本镜像( nginxtomcat )。那会让你docker run图像并启动嵌入其中的应用程序,而无需记住更具体的命令行调用。

关于docker - Dockerfile 中是否需要提及 CMD 或 ENTRYPOINT?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59599659/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com