Practically, what is the difference between docker run -dit(-itd) vs docker run -d?

Yes, sometimes, it’s necessary to include -it even you -d

  1. When the ENTRYPOINT is bash or sh

    docker run -d ubuntu:14.04 will immediately stop, cause bash can’t find any pseudo terminal to be allocated. You have to specify -it so that bash or sh can be allocated to a pseudo terminal.

     docker run -dit ubuntu:14.04
    
  2. If you want to use nano or vim with any container in the future, you have to specify -it when the image starts. Otherwise you’ll get error. For example,

     docker run --name mongodb -d mongo
     docker exec -it mongodb bash
     apt-get update
     apt-get install nano
     nano somefile
    

    It will throw an error

    Error opening terminal: unknown.

Leave a Comment

Hata!: SQLSTATE[HY000] [1045] Access denied for user 'divattrend_liink'@'localhost' (using password: YES)