您能否澄清何时应该在“docker run”命令中使用“-it”?

问题描述

如果我使用

docker run  myimage /bin/bash -c "pwd"

docker run  -it myimage /bin/bash -c "pwd"

结果是一样的。那么,“-it”是什么意思呢?我了解到“-i”用于交互式,“-t”用于 tty。但这些对我来说都是抽象名词。你能澄清一下什么时候应该在“docker run”命令中使用“-it”吗?

解决方法

当您想与容器交互时,您可以使用 -it 标志。 例如:

 $ docker run -it myimage /bin/bash 

这会给你一个容器内的外壳,让你保持与 bash 的连接

/ # 

这将运行任何命令,但关闭连接并将您放入主机的外壳

 $ docker run  myimage /bin/bash -c "pwd"
/ 
test@host $

因此您将使用 -it 在容器内连接并执行更多命令。

最后退出容器

/ # exit
exited
,

提到 docs

对于交互式进程(如 shell),您必须一起使用 -i -t 以便为容器进程分配一个 tty。

本质上,它的作用是添加一个终端驱动程序,它允许您作为终端会话与容器进行交互。

运行您的容器后,您可以运行 docker ps 来获取您的容器的哈希 ID,然后您可以通过运行:

docker exec -it containeridhash sh

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...