dockerfile entrypoint 语法
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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指令结合使用,可以定义默认的启动命令,并允许在运行容器时覆盖默认命令。