实际上,docker run -dit和docker run -d有什么不同?

我已经使用docker run -it交互式启动容器, docker run -d在后台启动它们。 这两个选项似乎是独占的。 不过,现在我已经注意到docker run -dit很常见了。 那么区别是什么呢? 何时与-d一起真正需要?

是的,有时候,甚至包括你也需要包括-d

  1. ENTRYPOINTbashsh

    docker run -d ubuntu:14.04会立即停止,导致bash找不到任何伪terminal被分配。 您必须指定-it以便可以将bashsh分配给伪terminal。

     docker run -itd ubuntu:14.04 
  2. 如果将来要将nano与任何容器一起使用,则必须在映像启动时指定-it 。 否则,你会得到错误。 例如,

     docker run --name mongodb -d mongo docker exec -it mongodb bash apt-get update apt-get install nano nano somefile 

    它会通过一个错误

    Error opening terminal: unknown.