RUN:执行命令并创建新的Image Layer
CMD:设置容器启动后默认执行的命令和参数
ENTRYPOINT:设置容器启动时运行的命令
CMD
- 容器启动时默认执行的命令
- 如果docker run 指定了其它命令,CMD命令被忽略
- 如果定义了多个CMD,只有最后一个会执行
比如Dockerfile内容如下
FROM centos
ENV name Docker
CMD echo "hello $name"
执行:(1)docker run [image] 会输出:hello Docker
(2)docker run it [image] /bin/bash则不会输出CMD的命令
ENTRYPOINT
- 让容器以应用程序或者服务的形式运行
- 不会被忽略,一定会执行
比如Dockerfile内容如下
FROM centos
ENV name Docker
ENTRYPOINT echo "hello $name"
执行:(1)docker run [image] 会输出:hello Docker
(2)docker run it [image] /bin/bash 也会输出:hello Docker