docker exec和docker exec -it有什么区别?

Are*_*Lin 6 docker

我是Docker的新手。我试图使用Docker容器实现MySQL。

在Docker容器中执行mysql命令时,本教程将显示此命令 docker exec -it mysql1 mysql -uroot -p

提到的Docker文档docker exec意味着在容器中运行命令。
可选i标签表示“即使未连接也请保持STDIN打开”。
可选t标签的意思是“分配伪tty”。

什么意思是“保持STDIN打开”,什么意思是“附加”?
什么是“分配伪tty”?

我对shell命令不熟悉。我不知道为什么在这里添加“-”。
如果我只是打字会有所不同docker exec mysql1 mysql -uroot -p吗?

很困惑,期待任何帮助...谢谢...

Wil*_*ain 6

-i-不要只是在后台运行程序而无法发送数据;保持开放以接受某种形式的输入。

-t -具体来说,请给我一个键入命令以发送到程序的位置,就像我对可以向其提供命令的远程计算机打开ssh或telnet会话一样。

它们实质上共同构成了它,因此您可以mysql1像在Docker容器外部一样在本地正常运行程序那样运行程序。

  • 所以,`-t` 给了我一个写命令的接口,`-i` 为容器内的程序提供了一个隧道来接收写的命令。我做对了吗? (3认同)