一尘不染

实际上,docker run -dit(-itd)与docker run -d有什么区别?

docker

我曾经docker run -it以交互方式启动容器并docker run -d在后台启动它们。这两个选项似乎是排他的。但是,现在我注意到docker run -dit(或docker run -itd)很常见。那么区别是什么呢?何时-it真正需要与-d


阅读 9917

收藏
2020-06-17

共1个答案

一尘不染

是的,有时候-it甚至有必要包括-d

  1. ENTRYPOINTis bashsh

docker run -d ubuntu:14.04将立即停止,原因bash是找不到要分配的任何伪终端。您必须指定-it以便bashsh可以分配给伪终端。

    docker run -dit ubuntu:14.04
  1. 如果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.

2020-06-17