dockerfile entrypoint 语法

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

dockerfile entrypoint 语法
Dockerfile是用于构建Docker镜像的文本文件,其中可以定
义一系列指令来描述镜像的构建过程。

其中,ENTRYPOINT指令用于
指定在容器启动时要运行的命令或可执行文件。

ENTRYPOINT指令有两种不同的语法形式:shell形式和exec形式。

1. Shell形式:
```
ENTRYPOINT command param1 param2
```
在shell形式下,command可以是任何可以在容器内执行的
命令,例如bash、python等。

param1和param2是可选的参数,用
于传递给command命令。

例如,以下是一个使用shell形式的ENTRYPOINT指令的示例:
```
FROM ubuntu
ENTRYPOINT echo "Hello, World!"
```
在这个例子中,当容器启动时,将会执行echo命令并输出"Hello, World!"。

注意:在shell形式下,ENTRYPOINT指令的参数将会被解
释为字符串,因此可以使用shell的特性,如变量替换、重定向等。

2. Exec形式:
```
ENTRYPOINT ["executable", "param1", "param2"]
```
在exec形式下,executable是要执行的可执行文件,
param1和param2是可选的参数。

参数必须以字符串形式给出,并
用双引号括起来。

例如,以下是一个使用exec形式的ENTRYPOINT指令的示例: ```
FROM ubuntu
ENTRYPOINT ["echo", "Hello, World!"]
```
在这个例子中,当容器启动时,将会执行echo命令并输出"Hello, World!"。

注意:在exec形式下,ENTRYPOINT指令的参数将会被解释
为一个可执行文件及其参数,因此不会使用shell的特性。

无论是shell形式还是exec形式,ENTRYPOINT指令都可以与CMD指令结合使用。

CMD指令用于指定容器启动时的默认命令,如果
在运行容器时没有指定其他命令,将会使用CMD指令定义的默认命令。

以下是一个使用ENTRYPOINT和CMD指令的示例:
```
FROM ubuntu
ENTRYPOINT ["echo"]
CMD ["Hello, World!"]
```
在这个例子中,当容器启动时,将会执行echo命令并输出
"Hello, World!"。

如果在运行容器时指定了其他命令,例如
`docker run myimage foo`,将会覆盖CMD指令定义的默认命令,输出"foo"。

总结:
ENTRYPOINT指令用于指定容器启动时要运行的命令或可执行文件。

它可以使用shell形式或exec形式的语法。

通过与CMD指令结合使用,可以定义默认的启动命令,并允许在运行容器时覆盖默认命令。

相关文档
最新文档