"docker run -ti ubuntu:latest"是否通过"bash"有什么区别?



我是Linux世界的新手,并尝试学习Docker。

我有两个示例:

#example 1
$ docker run -ti ubuntu:latest bash
#example 2
$ docker run -ti ubuntu:latest

在示例1中,它可以允许我访问终端,示例2是相同的结果。我知道添加bash会创建一个bash会话,如果这意味着能够运行bash脚本,我可以在两个示例上进行 echo,因此我并没有真正看到区别。

bash添加到docker run到底是什么?在此上下文的情况下,拥有和没有bash参数的区别是什么?

指定一个显式命令覆盖dockerfile中给出的默认命令。

如果Dockerfile中的默认CMD已经bash,则在命令行上指定bash没有效果。

如果您在Github上查看Ubuntu Dockerfile,则可以看到这里的情况:

CMD ["bash"]

因此,您只是明确地断言命令默认情况下已运行的