Practically, what is the difference between docker

2020-05-21 11:16发布

I've used docker run -it to launch containers interactively and docker run -d to start them in background. These two options seemed exclusive. However, now I've noticed that docker run -dit (or docker run -itd) is quite common. So what is the difference? When -it is really needed together with -d?

标签: docker
1条回答
Fickle 薄情
2楼-- · 2020-05-21 11:32

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 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.

查看更多
登录 后发表回答