Что на самом деле делает `docker run -it` 🐳 Когда контейнеру нужен… — DevOps — TG.ME

Что на самом деле делает `docker run -it` 🐳

Когда контейнеру нужен интерактивный shell, REPL или текстовый редактор, обычно запускают:


docker run -it ...


Но -i и -t делают разные вещи.

- -i (`--interactive`) — оставляет STDIN открытым, чтобы процесс внутри контейнера мог получать ввод с клавиатуры.
- -t (`--tty`) — создаёт pseudo-TTY, поэтому приложение ведёт себя как в обычном терминале.

Вместе они дают полноценную интерактивную сессию:


docker run -it ubuntu bash


Без -i не будет нормального интерактивного ввода.

Без -t приложение может работать, но без привычного терминального поведения: prompt, цветов, управления курсором и нормальной работы vim, top, less и других TTY-программ.

Под капотом схема примерно такая:


Terminal

Docker CLI

pseudo-TTY

bash внутри контейнера


То есть -i отвечает за ввод, а -t — за сам терминал.

Если вы годами пишете docker run -it, но никогда не разбирались, зачем нужны оба флага, у iximiuz есть отличный практический challenge:

https://labs.iximiuz.com/challenges/docker-101-container-run-tty
🔥8👍1🥰1
September 4, 2026 927 27