Docker:docker run -it容器和docker run -it容器bash有什么区别

我是Docker的新手,我知道运行交互容器的一种方式如下:

$ docker run -it image-name bash 

要么

 $ docker run -it image-name /bin/bash 

但是,如果我使用以下内容:

 $ docker run -it image-name 

看来我得到了同样的结果。 有人可以解释一下这些命令之间的区别吗?

前两个启动容器,然后分别运行程序bash /bin/bash (在大多数情况下它们将是相同的)。

最后一个版本启动容器,然后使用CMD指令运行图像中指定的程序。 一些图像,特别是只包含基本操作系统的图像,还有/bin/bash或其他一些在此定义的shell。 在这些情况下,没有区别。

但是,如果您使用具有另一个程序指定为命令(例如MySQL)的图像,您将注意到不同之处。

为了使事情变得更加复杂,图像还可以指定一个入口点,这又改变了行为。 请参阅相关文档。