dockerfile CMD和ENTRYPOINT区别
dockerfile entrypoint和cmd区别
CMD:
1、在docker run时候运行,dockerfile中如果存在多个CMD指令,仅最后一个生效。
2、docker run时CMD会被新参数覆盖原因命令
案例:
1、创建dockerfile1文件
cat Dockerfile1 FROM centos CMD ["touch","11.java"] CMD ["ls","-a"]
2、执行构建
docker build -f Dockerfile1 -t mycentos:1.0 .
3、查看结果
4、执行docker run mycentos:1.0 ls -l,其中cmd的ls -a被覆盖,执行ls -l
5、执行docker run mycentos:1.0 -l报错,覆盖了原有命令
ENTRYPOINT:docker run时运行,可以追加命令
案例:
FROM centos ENTRYPOINT ["ls","-a"]
1、执行docker run mycentos:2.0 ls -l报错,ls -l 接在ls -a后面执行,故报错