您能否说明什么时候应该在 "docker run" 命令中使用“-it”?

Could you clarify when "-it" should be used in a "docker run" command?

如果我用

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

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

结果是一样的。那么,“-it”的意义是什么?我了解到“-i”用于交互,“-t”用于 tty。但那些对我来说是抽象名词。您能否说明什么时候应该在“docker 运行”命令中使用“-it”?

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

 $ docker run -it myimage /bin/bash 

这会给你一个 shell 内部容器,让你连接到 bash

/ # 

这将 运行 任何命令,但会关闭连接并将您带到主机的 shell

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

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

最后退出容器

/ # exit
exited

提到 docs,

For interactive processes (like a shell), you must use -i -t together in order to allocate a tty for the container process.

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

在 运行ning 你的容器后,你可以 运行 docker ps 获取你的容器的哈希 ID,然后你可以通过 运行ning 访问它:

docker exec -it containeridhash sh