He usado docker run -it para lanzar contenedores de forma interactiva y docker run -d para iniciarlos en segundo plano. Estas dos opciones parecían exclusivas. Sin embargo, ahora me he dado cuenta de que docker run -dit (o docker run -itd ) es bastante común. Entonces cuál es la diferencia? ¿Cuándo -it es realmente necesario junto con -d ?
Sí, a veces es necesario incluir -it even you -d
Cuando el ENTRYPOINT es bash o sh
docker run -d ubuntu:14.04 se detendrá inmediatamente, porque bash no puede encontrar ningún pseudo terminal para asignar. Debe especificar -it para que bash o sh puedan asignarse a un pseudo terminal.
docker run -dit ubuntu:14.04 Si desea usar nano o vim con cualquier contenedor en el futuro, debe especificarlo cuando -it la imagen. De lo contrario, obtendrá un error. Por ejemplo,
docker run --name mongodb -d mongo docker exec -it mongodb bash apt-get update apt-get install nano nano somefileTirará un error
Error opening terminal: unknown.