为什么运行一些docker图像必须添加一个命令?

我发现在使用docker run命令的时候,有时不需要添加“command”,而有时候“command”是必须的。 例如,没有命令运行ubuntu图像是好的:

 # docker run ubuntu # 

运行这个mstormo/suse映像时必须添加一个命令:

 # docker run mstormo/suse Error response from daemon: No command specified # docker run mstormo/suse bash # 

那么这与指定的图像有关吗?

Docker镜像可以select包含一个默认命令 ,在命令行上没有任何命令时运行。

如果没有给出默认命令,则它必须由调用者提供。

如果你看看Ubuntu的Dockerfile ,他们有

 CMD ["/bin/bash"] 

所以,如果你不这样说,它会为你运行。

在mstormo / suse中没有这样的设置。