web-dev-qa-db-fra.com

qu'est-ce que docker run -it flag?

Je travaillais sur des tâches complexes avec docker, mais en fin de compte, je ne sais pas ce que signifie -it. Récemment, je suis tombé sur un exemple de commande docker run qui m'a un peu dérouté.

docker run -itd ubuntu:xenial /bin/bash 

Ma question est de savoir ce qui est sensé d'écrire -it flag ici, si le conteneur lors de l'instanciation s'exécute bin/bash

Dans la documentation, nous avons un exemple

docker run --name test -it debian

avec explication

Il demande à Docker d’allouer un pseudo-TTY connecté au stdin du conteneur; créer un shell bash interactif dans le conteneur.

et explication de l'option -t depuis la page d'aide

-t, --tty Allouer un pseudo-ATS

si je supprime -il flag pendant

docker run -d ubuntu:xenial /bin/bash

mon conteneur nouvellement créé ne vit pas tellement

dans docker ps -a

il est désigné comme sorti

Désolé, si ma question est assez stupide, je ne peux pas trouver d'explication sur Internet (j'ai un malentendu important sur ce point).

48
Alex

-it est l'abréviation de --interactive + --tty lorsque vous docker run avec cette commande .. vous emmèneriez directement à l'intérieur du conteneur, où -d est l'abréviation de --detach ce qui signifie que vous exécutez simplement le conteneur puis en détachez , vous devez donc exécuter le conteneur en arrière-plan .. edit: so si vous exécutez le conteneur docker avec-itd, il lancera les options-it et vous détachera du conteneur. Votre conteneur continuera donc à s'exécuter en arrière-plan, même sans application par défaut à exécuter.

53
Fendi D

docker run -it ubuntu:xenial /bin/bash démarre le conteneur en mode interactif (d'où le drapeau -it qui permet d'interagir avec /bin/bash du conteneur. Cela signifie que vous allez maintenant avoir bash session à l'intérieur le conteneur, de sorte que vous pouvez ls, mkdir ou faire une commande bash à l'intérieur du conteneur.

La clé ici est le mot "interactif". Si vous omettez l'indicateur, le conteneur exécute toujours /bin/bash mais se ferme immédiatement. Avec l'indicateur, le conteneur exécute /bin/bash puis attend patiemment votre entrée.

25
dvnguyen