CMD和ENTRYPOINT的区别

CMD # 指定这个容器启动的时候要运行的命令,只有最后一个会生效,可被代替
ENTRYPOINT # 指定这个容器启动的时候要运行的命令,可以追加命令

1.测试CMD

dockerfile-cmd-test

FROM centos
CMD ["ls","-a"]
# 构建镜像
docker build -f dockerfile-cmd-test -t cmdtest .

# run运行,发现我们的命令ls -a生效
docker run 镜像id

# 想追加一个命令 -l
#使用CMD的情况下,-l会替换命令

2.测试ENTRYPOINT

dockerfile-cmd-entrypoint

FROM centos
ENTRYPOINT ["ls","-a"]
# 构建镜像
docker build -f dockerfile-cmd-entrypoint -t entrypoint-test .

# run运行,发现我们的命令ls -a生效
docker run 镜像id

#此时可以追加命令
docker run 镜像id -l

Dockerfile中很多命令都十分的相似,我们需要了解它们的区别,最好的学习方式就是对比他们然后测试效果