Docker courir vs créer

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

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 

Est-ce que cela signifie que l’ run est utilisée lorsque nous devons passer une commande à un nouveau conteneur? Quel est le but de create alors?

De la documentation de docker

La commande docker create crée un calque de conteneur accessible en écriture sur l’image spécifiée et le prépare pour l’exécution de la commande spécifiée. L’ID du conteneur est ensuite imprimé sur STDOUT. Ceci est similaire à docker run -d sauf que le conteneur n’est jamais démarré . Vous pouvez ensuite utiliser la commande docker start pour démarrer le conteneur à tout moment.

Ceci est utile lorsque vous souhaitez configurer une configuration de conteneur à l’ avance afin qu’elle soit prête à démarrer lorsque vous en avez besoin. Le statut initial du nouveau conteneur est créé.

Techniquement, docker run = docker create + docker start

docker create commande docker create crée un conteneur accessible en écriture à partir de l’image et le prépare à l’exécution .

docker run commande docker run crée le conteneur (identique à docker create ) et le lance .

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

Mon avis est que Docker Run fait essentiellement ce qui suit: (dans l’ordre de ..) docker create , docker start , docker attach , car il se connecte immédiatement au shell actif après avoir exécuté la commande ‘run’ .

Les autres réponses ont ceci couvert mais je pensais que je montrerais les lignes de commande shell équivalentes car cela rend vraiment 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 à partir de l’image nommée et génère l’ ID du conteneur créé et docker start est utilisé pour démarrer le conteneur avec cet identifiant. L’option -a oblige le terminal à se connecter pour que le conteneur s’exécute au premier plan, qui est le comportement par défaut de l’ docker run de docker run .

Un conteneur qui a été créé mais n’a jamais démarré aura un statut Created ; Cela peut être vu avec le docker container ls -a .

Docker run est essentiellement pour exécuter des commandes dans le conteneur.

 docker run -it  /bin/bash 

Ce qui précède sert à créer un terminal bash. Et faites-nous utiliser les commandes bash dans le conteneur.

Docker create consiste à créer un conteneur à partir d’une image Docker.

 docker create -d /var/lib:/var/lib --name docker-ubuntu ubuntu 

Ce qui précède est de créer un docker un conteneur du nom “docker-ubuntu” de l’image “ubuntu”