关于dockerfile中CMD和ENTRYPOINT的区别
先总结一下
CMD 后面的命令会被用户输入的命令参数替换掉,而ENTRYPOINT 则是在命令后面进行添加
实验步骤
- 创建一个名为cmdAndEntrypoint的文件,然后在其中写入以下内容
FROM centos:7
CMD ["ls","-a"]

- 构建镜像,并且运行
docker build -f cmdAndEntrypoint -t cmdorent .
docker run cmdorent


3. 运行镜像的时候在后面加入参数-l
docker run cmdorent -l

我们发现这样会报错
- 修改cmdAndEntrypoint文件,把CMD修改为ENTRYPOINT
FROM centos:7
ENTRYPOINT ["ls","-a"]

5. 构建镜像,并且运行
docker build -f cmdAndEntrypoint -t cmdandent .
docker run cmdandent


6. 运行镜像的时候在后面加入参数-l
docker run cmdorent -l

实验总结
我们通过上面的结果可以清楚的看见,当CMD后面的命令是会被后面用户输入的命令替换的,而ENTRYPOINT则是被添加到已有命令后面
docker中有很多类似的命令,我们可以通过对比测试来理解

浙公网安备 33010602011771号