默认的Docker入口点

我从另一个图像创build一个图像,设置一个特定的入口点。 不过,我希望我的图像具有默认的。 如何重置进入点?

我尝试了下面的Dockerfile:

FROM some-image ENTRYPOINT ["/bin/sh", "-c"] 

不幸的是,它不像缺省入口点那样工作,因为它需要引用该命令。

 docker run myimage ls -l / # "-l /" arguments are ignored file1 file2 file3 # files in current working directory docker run myimage "ls -l /" # works correctly 

如何使用不带引号的命令?

要禁用现有的ENTRYPOINT ,请在ENTRYPOINT文件中设置一个空数组

 ENTRYPOINT [] 

然后你的参数docker run将正常。

你的ENTRYPOINT ["/bin/sh", "-c"]需要带引号的string的原因是没有引号, ls的参数被传递给sh

没有引用的结果在大量的参数被发送到sh

 "/bin/sh", "-c", "ls", "-l", "/" 

引用允许完整的命令( sh -c )作为一个parameter passing给sh

 "/bin/sh", "-c", "ls -l /"