2017-01-29 21 views
6

私はdocker run -itを使って対話的にコンテナを起動し、docker run -dをバックグラウンドで起動しました。これらの2つのオプションは排他的に見えました。しかし、今私はdocker run -ditがかなり一般的であることに気づいた。違いは何ですか? -dと一緒に-itが本当に必要な場合は?実際には、ドッカーランドッドとドッカーランドの違いは何ですか?

+2

'を通じてます。しかし '-d'はDockerにバックグラウンドで切り離して実行するよう指示します。彼らは本当に一緒に意味をなさない... –

+0

@DanLoweだから私は尋ねた。 [docker site](https://docs.docker.com/engine/reference/commandline/container_update/)と他の場所で使用されています。 – vehsakul

+0

ええ、あなたはポイントがあります。 「ドッカーの添付」の動作が変わるかもしれないと思ったのですが、違いは見られません。良い質問。 –

答えて

7

はい、時々、それはENTRYPOINTbashまたはshでも、あなたが-d

  1. とき-itを含める必要があります

    docker run -d ubuntu:14.04ただちに停止します、bashがする任意の疑似端末を見つけることができない原因割り当てられた。擬似端末にbashまたはshが割り当てられるように、-itを指定する必要があります。

    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 
    

    それは、対話型セッションを開始し、 `-t`がttyをエミュレートし-i`エラー

    Error opening terminal: unknown.

関連する問題