Docker 中的 RUN、CMD 和 ENTRYPOINT。Dockerfile中 RUN、CMD 和 ENTRYPOINT 都能够用于执行命令,下面是三者的主要用途: - RUN 命令执行命令并创建新的镜像层,通常用于安装软件包。RUN 执行的结果不会被打印
Docker 中的 RUN、CMD 和 ENTRYPOINT
Dockerfile中 RUN、CMD 和 ENTRYPOINT 都能够用于执行命令,下面是三者的主要用途:
RUN 命令执行命令并创建新的镜像层,通常用于安装软件包。RUN 执行的结果不会被打印出来。希望结果被打印,需要用以下参数
1
docker build -t hello-world ./ --progress= plain --no-cache
CMD 命令设置容器启动后默认执行的命令及其参数
多个 CMD 命令,只会执行最后一个
运行 docker RUN时,后接的命令会替换 CMD 设置的命令。
如果有 ENTRYPOINT ,CMD 命令会接在 ENTRYPOINT 的命令后
ENTRYPOINT配置容器启动时的执行命令,不会被忽略,一定会被执行
运行 docker RUN时,后接的命令会添加到 ENTRYPOINT的后面,而不是替换 ENTRYPOINT命令。
1
2
3
4
5
6
7
8
# 示例
FROM ubuntu:latest
CMD ["echo", "I am CMD 1"]
CMD ["echo", "I am CMD 2"]
RUN echo "I am RUN"
ENTRYPOINT[ "echo","I am ENTRYPOINT" ]
> I am ENTRYPOINTecho I am CMD 2
Licensed under CC BY-NC-SA 4.0