- 此问题在此处已有答案**:
what is docker run -it flag?(3个答案)
5小时前关门了。
在执行此命令时,我不能只省略i
或t
来使bash工作。
sudo docker exec -it 69e937450dab bash
它到底是做什么的?什么时候我需要没有这些参数的命令?
what is docker run -it flag?(3个答案)
5小时前关门了。
在执行此命令时,我不能只省略i
或t
来使bash工作。
sudo docker exec -it 69e937450dab bash
它到底是做什么的?什么时候我需要没有这些参数的命令?
2条答案
按热度按时间afdcj2ne1#
在容器中运行交互式环境会话需要使用-i和-t标志:
-i通过保持STDIN打开(即使未连接)使会话交互-t分配伪TTY,允许您使用终端与容器交互
wmomyfyw2#
我自己来回答:
不带任何标志的正常执行:
如果您的命令需要cat这样的输入,您可以尝试:
不会显示任何内容,因为没有输入流进入Docker容器,这可以通过-i标志来实现。
现在,让我们假设,您希望bash作为process启动:
你什么也看不到,因为进程是在容器中启动的。添加标记将完成交易:
但这实际上并没有什么帮助,因为我们需要一个输入流,它接受我们的命令并可以被bash接收。因此,我们需要将两者结合起来:
简短回顾:
-t用于将bash进程附加到我们的终端
-i用于能够通过STDIN发送输入,例如使用键盘发送到容器中的bash
不带-i可以用于不需要输入的命令;不带-t和bash可以用于只需要使用一个命令的情况。