Dockerfile CMD 命令运行脚本简介
在使用 Docker 构建镜像的过程中,我们通常会使用 Dockerfile 文件来定义镜像的构建步骤和配置。在 Dockerfile 中,CMD
命令用于指定容器启动时要运行的默认命令或脚本。
Dockerfile CMD 命令语法
CMD
命令有两种不同的语法形式:
- shell 格式:
CMD <command>
- exec 格式:
CMD ["executable", "param1", "param2"]
shell 格式会通过 /bin/sh -c
执行命令,而 exec 格式会直接执行可执行文件。通常推荐使用 exec 格式,因为它更加安全和可靠。
Dockerfile CMD 命令示例
下面是一个简单的 Dockerfile 示例,其中使用 CMD
命令运行一个 Python 脚本:
FROM python:3.8
WORKDIR /app
COPY script.py /app
CMD ["python", "script.py"]
在上面的例子中,我们首先指定基础镜像为 Python 3.8,并将当前目录下的 script.py
文件复制到容器的 /app
目录中。然后使用 CMD
命令指定在容器启动时执行 python script.py
命令。
Dockerfile CMD 命令注意事项
CMD
命令只能有一个,如果有多个,则只会执行最后一个。- 如果 Dockerfile 中没有指定
CMD
命令,则会使用基础镜像中的默认启动命令。 - 可以在运行
docker run
命令时覆盖CMD
命令。
Dockerfile CMD 命令关系图
erDiagram
Dockerfile --> CMD
总的来说,CMD
命令在 Dockerfile 中扮演着非常重要的角色,它定义了容器启动时要执行的默认命令或脚本。合理使用 CMD
命令可以使得镜像的运行更加方便和高效。