Quelle est la différence entre les commandes docker run
et docker create
?
J'utilise habituellement run
mais parfois dans la documentation que je vois create
.
Docker --help
raconte
create Create a new container
run Run a command in a new container
Cela signifie-t-il qu'il run
est utilisé lorsque nous devons passer une commande à un nouveau conteneur? Quel est le but create
alors?
Techniquement,
docker run
=docker create
+docker start
.la source
docker run
=docker create
+docker start
+docker attach
. Sansattach
, le conteneur démarré fonctionne en arrièredocker create
commande crée un conteneur inscriptible de l'image et la prépare pour la course .docker run
La commande crée le conteneur (identique àdocker create
) et le démarre .la source
Les autres réponses ont cela couvert, mais j'ai pensé montrer les lignes de commande shell équivalentes car cela le rend vraiment clair:
est le même que
Ici,
docker create
est utilisé pour créer un conteneur à partir de l'image nommée et génère l' ID de conteneur créé etdocker start
est utilisé pour démarrer le conteneur avec cet ID. L'-a
option entraîne l'attachement du terminal afin que le conteneur s'exécute au premier plan, ce qui est le comportement par défaut dedocker run
.Un conteneur qui a été créé mais jamais démarré aura un
Created
statut; cela peut être vu avecdocker container ls -a
.la source
Je suis nouveau dans docker et je viens juste de jouer avec;
Mon point de vue est que docker run fait essentiellement ce qui suit: (dans l'ordre de ..) docker create , docker start , docker attach , car il s'attache immédiatement au shell actif après avoir exécuté la commande 'run' .
la source
L'exécution de Docker sert essentiellement à exécuter des commandes dans le conteneur.
Ce qui précède est pour 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.
Ce qui précède est de créer un docker un conteneur du nom "docker-ubuntu" à partir de l'image "ubuntu"
la source
docker run -it <Container name>
passer ensuite de / bin / bash. Par exemple, le ruby exécutera automatiquement un exécutable appelé irb. De plus, vous pouvez exécuter -d, c'est fait avec dockersamples / static-site qui ne se connecte pas. Donc je pense que ça ne fait pas d'exec mais ça commence juste.