The Docker Run Reference says that running a container with -t
-t : Allocate a pseudo-tty
But only running it with -i allows the user to interact with the containerized process through the terminal. So I wonder, what is the meaning of "Allocating a pseudo-tty", since even when running without -t, content written to STDOUT by the process will be passed to the terminal (The process will have a pipe as stdout instead of a tty) ?
I read this answer which says that you may run docker run -t to have "Terminal support", such as text coloring etc. Well I already done the following experiment:
// Dockerfile
FROM ubuntu:latest
CMD ["echo", "-e", "\u001b[31mHello World"]
And ran this image with no -t. Since I'm running it from a terminal (docker run will always run from some terminal won't it?) I can see a red "Hello World". So I still don't understand why running with -t alone...
 
    