107 votes

Docker run vs create

Quelle est la différence entre les commandes docker run et docker create ?

J'utilise habituellement run mais parfois dans la documentation, je vois create .

Docker's --help dit

 create    Create a new container
run       Run a command in a new container
 

Cela signifie-t-il que run est utilisé lorsque nous devons passer une commande à un nouveau conteneur? Quel est l'objectif de create alors?

139voto

sriram926 Points 481

Techniquement, docker run = docker create + docker start

113voto

DAXaholic Points 1446

De docker documentation

Le panneau de commande create crée un fichier accessible en écriture conteneur de couche au-dessus de la spécifiée de l'image et la prépare pour l'exécution de la commande spécifiée. L' numéro du conteneur est ensuite affichée sur la sortie standard. Ceci est similaire à docker run -d sauf le conteneur n'est pas démarrée. Vous pouvez ensuite utiliser le menu fixe commande de démarrage pour démarrer le conteneur à tout moment.

Ceci est utile lorsque vous souhaitez configurer un conteneur de configuration à l'avance de temps de sorte qu'il est prêt à commencer quand vous en avez besoin. La première le statut de la nouvelle conteneur est créé.

19voto

NetworkMeister Points 712

9voto

starfry Points 639

Les autres réponses ont couverte, mais je pensais que je l'équivalent shell lignes de commande, car il est très clair:

$ docker run myimage

est le même que

$ docker start -a $(docker create myimage)

Ici, docker create est utilisé pour créer un conteneur de le nom de l'image et des sorties créé numéro du conteneur et de l' docker start est utilisé pour démarrer le conteneur avec cet identifiant. L' -a option est activée, le terminal à fixer de sorte que le conteneur s'exécute en premier plan qui est le comportement par défaut de docker run.

Un conteneur qui a été créé mais n'a jamais commencé aura un Created statut; il peut être vu avec docker container ls -a.

8voto

aaronlhe Points 83

Je suis nouveau chez docker et je viens de jouer avec;

Mon point de vue est que l' exécution de docker effectue essentiellement les opérations suivantes: (dans l'ordre de ..) docker create , docker start , docker attach , car il se connecte immédiatement au shell actif après l' exécution de la commande 'run' .

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X