我是Docker的新手,我知道运行交互式容器的一种方法如下:
$ docker run -it image-name bash
或
$ docker run -it image-name /bin/bash
但是,如果我使用以下内容:
$ docker run -it image-name
我似乎得到了相同的结果。如果有任何不同,有人可以解释一下这些命令之间的区别。
答案 0 :(得分:3)
前两个启动容器,然后分别运行程序bash
/bin/bash
(大多数情况下都是相同的)。
最后一个版本启动容器,然后使用CMD指令运行映像中指定的程序。某些图像,特别是仅包含基本操作系统的图像,还有/bin/bash
或其他一些shell定义。在这些情况下没有区别。
但是如果你使用另一个指定为命令的程序的图像(例如mysql),你会注意到它的不同。
为了使事情变得更复杂,图像还可以指定ENTRYPOINT,这又会改变行为。请参阅相关文档。