Dockerfile CMD 命令运行脚本简介

在使用 Docker 构建镜像的过程中,我们通常会使用 Dockerfile 文件来定义镜像的构建步骤和配置。在 Dockerfile 中,CMD 命令用于指定容器启动时要运行的默认命令或脚本。

Dockerfile CMD 命令语法

CMD 命令有两种不同的语法形式:

  1. shell 格式:CMD <command>
  2. 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 命令可以使得镜像的运行更加方便和高效。