GNU/Linux >> Tutoriales Linux >  >> Panels >> Docker

Docker Run vs Start vs Create:diferencia explicada

Si es nuevo en Docker y lo está aprendiendo siguiendo varios tutoriales, es posible que encuentre términos como iniciar el contenedor de la ventana acoplable, ejecutar el contenedor de la ventana acoplable o crear el contenedor de la ventana acoplable.

Estos términos son suficientes para confundir a un principiante de docker porque los tres comandos de docker parecen similares.

De hecho, es especialmente difícil notar la diferencia entre la ejecución de la ventana acoplable y el inicio de la ventana acoplable.

¿No es lo mismo ejecutar un contenedor que iniciarlo? No realmente.

Déjame explicártelo.

Diferencia entre la ejecución de Docker, el inicio de Docker y la creación de Docker

Esto es lo que hacen estos comandos:

Comando de creación de Docker crea un nuevo contenedor nuevo a partir de una imagen acoplable. Sin embargo, no lo ejecuta inmediatamente.

Comando de inicio de Docker iniciará cualquier contenedor detenido. Si usó el comando docker create para crear un contenedor, puede iniciarlo con este comando.

Comando de ejecución de Docker es una combinación de crear y comenzar, ya que crea un nuevo contenedor y lo inicia de inmediato. De hecho, el comando docker run puede incluso extraer una imagen de Docker Hub si no encuentra la imagen mencionada en su sistema.

Veámoslo con ejemplos para que te quede más claro.

Veámoslo con ejemplos

Asegúrese de haber instalado Docker si desea seguir los ejemplos.

Supongamos que descarga la imagen de Ubuntu desde Docker Hub usando el comando docker pull ubuntu.

Puede ver todas las imágenes acoplables disponibles en su sistema. Solo tengo ubuntu en este ejemplo (para evitar confusiones):

[email protected]:~$ docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
ubuntu              latest              775349758637        5 weeks ago         64.2MB

Ahora, cree un nuevo contenedor acoplable denominado contenedor-1 con el comando docker create:

[email protected]:~$ docker create --name container-1 ubuntu
2d9a8c190e6c9b3cbbc032a87762bfbc92f1dc0dd30abbe9bdb3ed7e74a6480f

Puede ver que ha creado un nuevo contenedor. Si intenta ver todos los contenedores en ejecución, no verá el contenedor 1 porque, aunque se creó, nunca se inició.

[email protected]:~$ docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES

Si comprueba todos los contenedores, independientemente de si se están ejecutando o no, verá que el contenedor 1 tiene el estado Creado:

[email protected]:~$ docker ps -a
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
2d9a8c190e6c        ubuntu              "/bin/bash"         18 seconds ago      Created                                 container-1

Ahora usemos el comando docker run para crear y ejecutar un contenedor llamado container-2:

[email protected]:~$ docker run -it -d --name container-2 ubuntu bash
13dc0f4226dc8d9d86e41d927c5616654d8263da2cc8c667aaa5b4dbd7f7e9b3

Puede ver que el contenedor-2 se está ejecutando ya que su estado es Activo:

[email protected]:~$ docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED              STATUS              PORTS               NAMES
13dc0f4226dc        ubuntu              "bash"              About a minute ago   Up About a minute                       container-2

Detengamos este contenedor en ejecución:

[email protected]:~$ docker stop container-2
container-2
[email protected]:~$ docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
[email protected]:~$ docker ps -a
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS                      PORTS               NAMES
13dc0f4226dc        ubuntu              "bash"              2 minutes ago       Exited (0) 28 seconds ago                       container-2
2d9a8c190e6c        ubuntu              "/bin/bash"         3 minutes ago       Created                                         container-1

Ahora que tenemos un contenedor detenido, puede volver a iniciarlo con el comando de inicio de la ventana acoplable :

[email protected]:~$ docker start container-2
container-2
[email protected]:~$ docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
13dc0f4226dc        ubuntu              "bash"              2 minutes ago       Up 2 seconds                            container-2

Pero, ¿qué sucede con el contenedor-1 que se creó con el comando docker create? Puede iniciar este contenedor con el comando docker start y luego usar docker exec para ejecutar algo específico con él.

Espero que este artículo le haya dado una mejor comprensión de los comandos docker run, docker start y docker create. Aconsejaré aprender sobre el ciclo de vida del contenedor para comprender mejor este tema.

Comandos de Docker para gestionar el ciclo de vida de los contenedoresConozca el concepto del ciclo de vida de los contenedores. Aprende también los comandos de Docker para gestionar cada etapa del ciclo de vida de los contenedores. Manual de LinuxDebdut Chakraborty

Si tiene preguntas o sugerencias, no dude en dejar un comentario a continuación.


Docker
  1. Cómo ejecutar Nginx en un contenedor Docker:una guía paso a paso

  2. Cómo crear, enumerar y eliminar contenedores Docker en Linux

  3. diferencia entre podman y docker.

  4. ¿Cómo ejecutar un programa dentro de un contenedor Docker?

  5. Cómo ejecutar un comando en un contenedor Docker en ejecución

Cómo ejecutar Grafana en un contenedor Docker

Cómo crear una imagen de Docker desde un contenedor en ejecución

Cómo crear un contenedor de aplicaciones Django Docker

Cómo ejecutar contenedores Docker

Cree un simple contenedor Docker Hello World de Node.js desde cero

Ejecutar Docker Container en segundo plano (modo separado)