我用以下方法创建docker容器
sudo docker run -it ubuntu /bin/bash
在书中,我读过的docker书
容器只在我们指定的命令/ bin / bash运行时运行。
我不是用选项-it创建终端的,不需要/ bin / bash吗?如果我在docker run中不传递任何命令,会发生什么变化?
答案 0 :(得分:2)
如果运行,您将得到相同的行为
sudo docker run -it ubuntu
因为ubuntu
码头工人映像将/bin/bash
指定为默认命令。您可以在ubuntu
Dockerfile中看到它。正如@tadman在回答中所写的那样,提供命令(如/bin/bash
)会覆盖默认的CMD
。
此外,-it
并不意味着bash终端。 -t
分配伪tty,-i
保持STDIN打开(即使未连接)。有关更多详细信息,请参见documentation。
答案 1 :(得分:1)
这是默认CMD
规范的替代。您可以使用默认值运行容器,这是完全正常的,但是/bin/bash
是弹开外壳的技巧,因此您可以四处走走,并查看已构建的容器,以查看其是否已正确组装和配置。