运行 docker build 时 Dockerfile 中的 CMD 命令不执行

运行 docker build 时 Dockerfile 中的 CMD 命令不执行

我在 Windows 10 上运行 Docker。

我有一个简单的 Dockerfile:

# Use an exisisting docker image as base
FROM alpine

# Download and install a dependency
RUN apk add --update redis

# Tell the image what to do when it starts as a container
CMD ["redis-server"]

但是当我在命令提示符中运行它时

docker build .

CMD 部分从未执行,并且日志中仅显示两个步骤而不是三个步骤:

在此处输入图片描述

在本教程中,我遵循第三步,CMD 部分确实被执行:

在此处输入图片描述

我的Docker版本是:

在此处输入图片描述

我究竟做错了什么?

答案1

它不应该运行。CMD定义执行容器时运行的默认命令,而不是构建容器时运行的默认命令。检查图像时,您将看到设置的值。

请注意 只有一个值CMD,因此再次设置它会覆盖先前的值,并且可以在创建容器时设置。使用docker run,该覆盖是图像名称后指定的任何内容。例如,使用docker run --rm busybox:latest echo hello覆盖默认值。/bin/sh CMDecho hello

有关更多详细信息,请参阅 Dockerfile 参考:https://docs.docker.com/engine/reference/builder/#cmd

相关内容