我在 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
CMD
echo hello
有关更多详细信息,请参阅 Dockerfile 参考:https://docs.docker.com/engine/reference/builder/#cmd