默认的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 /"