hub - docker tutorial
¿Cuándo usaría `--interactive` sin`--tty` en un contenedor Docker? (1)
Dado que -i
mantiene STDIN abierto incluso si no está conectado, permite la composición (tuberías).
Por ejemplo:
docker run ubuntu printf "line1/nline2/n" | docker run -i ubuntu grep line2 | docker run -i ubuntu sed ''s/line2/line3/g''
(Fuente: número 14221 )
O:
$ echo hello | docker run -i busybox cat
hello
(Fuente: número 12401 )
Ahora imagine que no está delante de un teclado y que se usa en un script donde realmente puede escribir en los procesos a través de algo mejor que un shell
|
: ejemplo github.com/docker/docker/blob/…
Hice algo de googlear y no he tenido la suerte de encontrar un caso en el que hubiera ejecutado la ejecución de docker run -i some_image
lugar de la docker run -it some_image
.
Si ejecuto docker run -i --name sample some_image bash
, el contenedor se ejecuta en primer plano, pero no puedo interactuar con él desde el shell en el que estoy. No puedo detenerlo con CTRL + C. Sin embargo, puedo abrir otro shell y ejecutar el docker exec -it sample bash
y obtener acceso al contenedor.
Si ejecuto el docker run -i -d --name sample some_image bash
, el contenedor se docker run -i -d --name sample some_image bash
inmediatamente. Puedo reiniciarlo con el docker start sample
y luego se mantiene activo, así que puedo ejecutar el docker exec -it sample bash
e interactuar con él nuevamente.
Sin embargo, en todos estos casos, finalmente termino usando -it
para interactuar con mis contenedores. ¿En qué mundo no necesitaría la bandera -t
?
Aclamaciones