我已阅读有关 CMD 和 ENTRYPOINT 的文档
https://docs.docker.com/engine/reference/builder/#entrypoint
在这里,他们在表中提到“不允许使用 CMD 和 NO ENTYRPOINT”,但是我创建了一个没有 CMD 和 ENTRYPOINT 的 Dockerfile,并且镜像构建成功。下载高山焦油从这里高山焦油
文件
from scratch
ADD alpine-minirootfs-3.11.2-x86_64.tar.gz /
COPY . /
Run Code Online (Sandbox Code Playgroud)
构建图像:
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
/ #
Run Code Online (Sandbox Code Playgroud)
有效!!那么为什么在文档中提到 CMD 或 ENTRYPOINT 是必要的?
Sha*_*k V 10
文档中的以下行不正确。
Dockerfile should specify at least one of CMD or ENTRYPOINT commands.
Run Code Online (Sandbox Code Playgroud)
大概应该说——
CMD or ENTRYPOINT is necessary for running a container.
在docker run命令行的末尾指定一个命令提供(或覆盖)CMD;同样,该docker run --entrypoint选项提供(或覆盖)ENTRYPOINT. 在您的示例中,您给出了一个命令,/bin/sh因此容器可以执行某些操作;如果你离开它,你会得到一个错误。
作为样式问题,您的 Dockerfiles 几乎总是声明一个CMD,除非您要扩展已经自动运行应用程序的基本映像 ( nginx, tomcat)。这将使您能够docker run获得图像并启动嵌入其中的应用程序,而无需记住更具体的命令行调用。
| 归档时间: |
|
| 查看次数: |
3883 次 |
| 最近记录: |