Docker CMD指令如何覆写

在Dockerfile里,CMD指令是可以被覆盖的。

在构建镜像时,可以通过docker build命令的–cmd选项覆盖Dockerfile的CMD:
例如:

FROM ubuntu 
CMD ["echo","hello"]

构建时覆盖CMD:

docker build -t test --cmd "echo world" .

在创建容器时,可以通过docker run命令的–cmd选项覆盖镜像的CMD:

docker run test --cmd "echo hi"

在启动已存在的容器时,通过docker start命令的–cmd选项覆盖:

docker start --cmd "echo hi" mycontainer

在运行中的容器内可以直接执行其他命令,会覆盖CMD指令。
所以Dockerfile中的CMD指令只是提供一个默认的命令,在之后各种使用场景下都是可以被覆盖的。

我们可以通过CMD提供一个应用的默认启动命令,但在具体运行时可以很灵活地修改和覆盖它。

你可能感兴趣的:(系统环境运维,docker,容器,运维)