虽然平时就在使用docker但是对于docker命令的一些参数还是不太了解,在这里记录一下。
docker
的 -i
和 -t
经常遇到的一个命令是进入一个docker,往往这样进入
docker exec -it V2.7.8_FinalDocker su - root |
后面的参数就是要执行的命令,su - root
和su -
其实是一样的,加上-
是为了保持环境变量并使用root账号登录,如果不加-
,环境变量无法得到保留。参考链接
那么前面的-it
参数又是做什么的呢?
-i, --interactive Keep STDIN open even if not attached |
保持输入的打开,但是,如果你只加-i
运行,会发现docker马上执行完并关闭了容器,无法进入终端。
-t, --tty Allocate a pseudo-TTY |
分配一个TTY,只有分配了TTY之后才能通过伪终端输入到docker,并输出到伪终端,这就是为什么大多数docker命令都有-it
这个参数。
那么为什么还要-i
这个参数呀,因为也有应用场景,可以作为管道输出。