在Dockerfiles中有两个看起来与我类似的命令:CMD和ENTRYPOINT.但是我猜它们之间存在着一种(微妙的?)差异 - 否则对于同样的事情来说两个命令就没有任何意义.
文档说明了 CMD
CMD的主要目的是为执行容器提供默认值.
并为ENTRYPOINT:
ENTRYPOINT可帮助您配置可作为可执行文件运行的容器.
那么,这两个命令之间的区别是什么?
我正在从另一个设置特定入口点的图像创建图像.但是我希望我的图像具有默认图像.如何重置ENTRYPOINT?
我尝试了以下Dockerfile:
FROM some-image
ENTRYPOINT ["/bin/sh", "-c"]
Run Code Online (Sandbox Code Playgroud)
不幸的是,它不像默认入口点那样工作,因为它需要引用命令.
docker run myimage ls -l / # "-l /" arguments are ignored
file1 file2 file3 # files in current working directory
docker run myimage "ls -l /" # works correctly
Run Code Online (Sandbox Code Playgroud)
如何在不引用的情况下使用命令?