Maison > Article > Opération et maintenance > Quelle est la différence entre créer et exécuter dans Docker
Dans Docker, la commande create et la commande run peuvent créer un nouveau conteneur. La différence est que la commande create crée un nouveau conteneur mais ne le démarre pas, tandis que la commande run crée un nouveau conteneur et exécute une commande.
L'environnement d'exploitation de ce tutoriel : système Linux7.3, version Docker-1.13.1, ordinateur Dell G3
Quelle est la différence entre créer et exécuter dans Docker
Voici les utilisations de ces commandes :
La commande docker create crée un tout nouveau conteneur à partir d'une image Docker. Cependant, il ne l'exécutera pas immédiatement.
La commande docker start démarrera tous les conteneurs arrêtés. Si vous avez créé un conteneur à l'aide de la commande docker create, vous pouvez utiliser cette commande pour le démarrer.
La commande docker run est une combinaison de create et start car elle crée un nouveau conteneur et le démarre immédiatement. En fait, la commande docker run peut même extraire l'image de Docker Hub si elle ne trouve pas l'image ci-dessus sur votre système.
Voyons cela avec des exemples pour que vous puissiez savoir les choses plus clairement.
Voyons cela à travers un exemple
Si vous souhaitez suivre l'exemple, assurez-vous que Docker est installé.
Supposons que vous utilisiez la commande docker pull ubuntu pour télécharger l'image Ubuntu depuis Docker Hub.
Vous pouvez afficher toutes les images Docker disponibles sur votre système. Dans cet exemple, je n'ai qu'ubuntu (pour éviter toute confusion) :
# docker images REPOSITORY TAG IMAGE ID CREATED SIZE ubuntu latest 775349758637 5 weeks ago 64.2MB
Maintenant, créez un nouveau conteneur docker nommé conteneur-1 à l'aide de la commande docker create :
# docker create --name container-1 ubuntu 6a81a998658e9e0d3b612ee65b07d76a45d79812d860baf3f1cbc60fe997ebec
Vous pouvez voir qu'il a créé un nouveau conteneur. Si vous essayez d'afficher tous les conteneurs en cours d'exécution, vous ne verrez pas le conteneur-1 car, bien qu'il ait été créé, il n'a jamais été démarré.
# docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
Si vous vérifiez tous les conteneurs, qu'ils soient en cours d'exécution ou non, vous verrez que le conteneur-1 a le statut "Créé":
# docker ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 6a81a998658e ubuntu "/bin/bash" 18 seconds ago Created container-1
Maintenant, utilisons la commande docker run pour créer et exécuter un conteneur nommé conteneur- 2 :
# docker run -it -d --name container-2 ubuntu bash 6391c1a0cac6c9f5fc6f5cfb05d75a22c208e63223c3b231035a40a4b134c521
Vous pouvez voir que le conteneur-2 est en cours d'exécution car son statut est "Démarré" :
# docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 6391c1a0cac6 ubuntu "bash" About a minute ago Up About a minute container-2
Arrêtons ce conteneur en cours d'exécution :
# docker stop container-2 container-2 # docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES # docker ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 6391c1a0cac6 ubuntu "bash" 2 minutes ago Exited (0) 28 seconds ago container-2 6a81a998658e ubuntu "/bin/bash" 3 minutes ago Created container-1
Maintenant, nous avons un conteneur arrêté que vous pouvez utiliser. Redémarrez-le avec la commande docker start :
# docker start container-2 container-2 # docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 6391c1a0cac6 ubuntu "bash" 2 minutes ago Up 2 seconds container-2
Mais qu'arrive-t-il au conteneur-1 créé avec la commande docker create ? Vous pouvez démarrer ce conteneur à l'aide de la commande docker start, puis utiliser docker exec pour exécuter des éléments spécifiques.
Apprentissage recommandé : "Tutoriel vidéo Docker"
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!