Docker 中的 RUN、CMD 和 ENTRYPOINT

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
Gear(夕照)的博客。记录开发、生活,以及一些不足为道的思考……