CMD提供容器启动的默认行为,运行不指定运行的命令及参数,会默认执行CMD中的。
例如hello镜像的Dockerfile中有 CMD ["echo","'hello world'"]
- 执行
docker run hello,输出hello world - 执行
docker run hello /bin/sh -c "shit"则会覆盖CMD中所有的东西,输出shit
ENTRYPOINT让容器可以当成一个普通的可执行命令一样使用。
例如echo镜像的Dockerfile中有ENTRYPOINT ["/bin/echo"]
- 执行
docker run echo "hello world",输出hello world
若同时CMD也存在,比如: CMD ["'hello world'"] ,那么CMD中的值就是ENTRYPOINT的默认参数。
- 执行
docker run echo, 即不加参数,也会输出hello world







网友评论