docker -it
-t, --tty Allocate a pseudo-TTY
-i, --interactive Keep STDIN open even if not attached
-t
的作用可以开启一个伪终端,先来执行一个不带-t参数的命令:
$ docker run centos:7 /bin/sh
$
执行完毕后没有进入交互界面而是直接结束了,再加上-t参数执行:
$ docker run -t centos:7 /bin/sh
sh-4.2# ls -l
这倒是进入交互界面了,但是输入命令不会得到执行,但是可以接受Ctrl-C
命令。
如果使用 -t 和 -i 命令:
$ docker run -i -t centos:7 /bin/bash
# ls -l
total 12
-rw-r--r-- 1 root root 12114 Nov 13 01:55 anaconda-post.log
总结:
-t
是开启tty,使终端和docker进程通信-i
打开tty的输入,把输入得到的数据发送给docker进程