Dockerfile CMD 命令
时间: 2023-10-02 13:08:55 浏览: 101
Dockerfile 中的 CMD 命令用于指定容器启动时要执行的命令。CMD 命令有两种形式:
1. Shell 形式:
```
CMD command param1 param2
```
在容器启动时,会运行指定的 shell 命令。
2. Exec 形式:
```
CMD ["executable","param1","param2"]
```
在容器启动时,会直接执行指定的可执行文件。
注意事项:
- Dockerfile 中只能有一个 CMD 命令,多个 CMD 命令只有最后一个会生效。
- 如果在构建镜像时使用了 `docker run` 命令中的参数,CMD 命令会被覆盖。
- CMD 命令是可选的,如果没有指定,则默认使用基础镜像中的默认 ENTRYPOINT 命令。
示例:
```
FROM ubuntu
CMD echo "Hello, World!"
```
上述示例中,构建的镜像在容器启动时会执行 `echo "Hello, World!"` 命令。
相关问题
dockerfile CMD命令
Dockerfile中的CMD命令用于指定容器启动时要执行的命令或者程序。根据官方文档,CMD命令有三种格式。
第一种格式是exec form,使用JSON数组的方式指定可执行文件及其参数。例如,CMD ["executable","param1","param2"]。
第二种格式是as default parameters to ENTRYPOINT,也是使用JSON数组的方式指定参数作为ENTRYPOINT的默认参数。例如,CMD ["param1","param2"]。
第三种格式是shell form,使用类似于shell脚本的方式指定命令及其参数。例如,CMD command param1 param2。
需要注意的是,Dockerfile中可以有多个CMD指令,但只有最后一个生效,因为只有最后一个CMD指令会被docker run执行。
所以,根据Dockerfile中的CMD命令的不同格式,可以指定容器启动时要执行的命令或者程序,并且可以设置参数或者作为ENTRYPOINT的默认参数。<span class="em">1</span><span class="em">2</span><span class="em">3</span>
#### 引用[.reference_title]
- *1* *3* [Dockerfile CMD 命令详解](https://blog.csdn.net/xyz/article/details/118269856)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"]
- *2* [Dockerfile常用命令](https://download.csdn.net/download/weixin_38570278/14885523)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"]
[ .reference_list ]
dockerfile CMD
Dockerfile 中的 CMD 和 ENTRYPOINT 指令用于指定容器启动时默认运行的命令。
CMD 指令用于指定容器启动时的默认命令,在容器运行时可以被覆盖。
ENTRYPOINT 指令用于指定容器启动时的默认命令,在容器运行时不能被覆盖。
CMD 和 ENTRYPOINT 可以同时存在,但 ENTRYPOINT 指令会覆盖 CMD 指令的默认命令。
阅读全文