为什么一些docker镜像在运行时需要命令?

Nan*_*iao 9 docker

我发现在使用时docker run我有时不需要添加"命令",而有时候"命令"是必须的.例如,在运行ubuntu映像时,不需要命令:

# docker run ubuntu
#
Run Code Online (Sandbox Code Playgroud)

在运行时mstormo/suse:

# docker run mstormo/suse
Error response from daemon: No command specified
# docker run mstormo/suse bash
#
Run Code Online (Sandbox Code Playgroud)

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

Thi*_*ilo 12

Docker镜像可以选择包含一个默认命令,在命令行中没有给出时运行.

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

如果你看一下ubuntuDockerfile,他们就有了

CMD ["/bin/bash"]
Run Code Online (Sandbox Code Playgroud)

所以,如果你不这样说,它会bash为你而战.

mstormo/suse中没有这样的设置.