2017-01-29 11 views
6

Konteynerleri etkileşimli olarak başlatmak için docker run -it kullanıyorum ve arka planda başlatmak için docker run -d kullanıyorum. Bu iki seçenek özel görünüyordu. Ancak, şimdi ben docker run -dit oldukça yaygın olduğunu fark ettim. Peki fark nedir? -it gerçekten -d ile birlikte mi gerekiyor?Pratik olarak, docker run -dit vs docker run -d arasındaki fark nedir?

+2

' yoluyla

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

Olacak bir tty benzetilmiştir. Ama -d, Docker'a arka planda ayrılıp kaçmasını söyler. Birlikte anlam ifade etmiyorlar ... –

+0

@DanLowe Bu yüzden sordum. [Docker sitesinde] (https://docs.docker.com/engine/reference/commandline/container_update/) ve başka yerlerde kullanılır. – vehsakul

+0

Evet, bir noktanız var. Belki de "docker attach" ın davranışını değiştireceğini düşündüm ... ama hiçbir fark görmüyorum. İyi soru. –

cevap

7

Evet, bazen, ENTRYPOINTbash veya sh bile sen -d

  1. zaman -it dahil etmek gerekli

    docker run -d ubuntu:14.04 derhal duracaktır, bash olmak için herhangi bir sahte terminalini bulamıyorum neden tahsis etti. -it belirtmeniz gerekir, böylece bash veya sh sözde bir terminale tahsis edilebilir. İleride herhangi bir konteyner ile nano kullanmak istiyorsanız

    docker run -itd ubuntu:14.04 
    
  2. , resim başladığında -it belirtmek gerekir. Aksi takdirde hata alırsınız. Örneğin, interaktif bir oturum ve `-t` başlar -i` bir hata

    Error opening terminal: unknown.