Docker Build vs Docker Run: ¿Cuál es la diferencia?

Docker se ha convertido en una herramienta popular para desarrolladores y administradores de sistemas. Les permite crear aplicaciones que se ejecutan en contenedores, los cuales son entornos de recursos aislados que pueden ser gestionados de forma independiente. Sin embargo, al trabajar con Docker, es importante entender las diferencias entre los comandos "docker build" y "docker run".
¿Qué es Docker Build?
El comando "docker build" permite a los desarrolladores crear una imagen personalizada de Docker. Una imagen es un paquete autocontenido que contiene todo lo necesario para ejecutar una aplicación: código, librerías, dependencias, configuraciones, etc. Docker Build ejecuta una serie de comandos en un archivo Dockerfile, que describe cómo debe construirse la imagen. Los comandos del Dockerfile incluyen la instalación de paquetes y dependencias, la copia de archivos, la configuración del entorno y la asignación de puertos.
¿Cómo se utiliza Docker Build?
Para utilizar Docker Build, primero necesitas crear un archivo Dockerfile en el directorio raíz de tu proyecto. Luego, desde la terminal, puedes ejecutar el comando "docker build" con el nombre y la ubicación del directorio.
Un ejemplo de Dockerfile para una aplicación en Node.js podría tener el siguiente aspecto:
FROM node:10-alpine
WORKDIR /app
COPY package*.json ./
RUN npm install
COPY . .
EXPOSE 3000
CMD ["npm", "start"]
¿Qué es Docker Run?
El comando "docker run" permite a los desarrolladores ejecutar una imagen personalizada de Docker. Una vez que la imagen ha sido creada con Docker Build, puedes ejecutarla en un contenedor utilizando Docker Run. Docker Run también te permite ajustar los parámetros de la imagen según sea necesario.
¿Cómo se utiliza Docker Run?
Para utilizar Docker Run, primero debes tener una imagen creada por Docker Build o disponible en Docker Hub. Desde la terminal, puedes ejecutar el comando "docker run" con el nombre de la imagen y cualquier parámetro adicional que sea necesario.
Por ejemplo:
docker run -p 80:80 nginx
Este comando ejecuta la imagen de Nginx en un contenedor, exponiendo el puerto 80 para que pueda ser utilizado por una aplicación web.
Conclusión
En general, Docker Build se utiliza para construir imágenes personalizadas, mientras que Docker Run se utiliza para ejecutarlas. Para trabajos más avanzados, como la publicación de imágenes en Docker Hub o la creación y gestión de servicios, es posible que se requieran comandos adicionales.
Preguntas frecuentes
¿Cómo elimino una imagen de Docker?
Para eliminar una imagen de Docker, puedes utilizar el comando "docker rmi". Por ejemplo:
docker rmi nginx
¿Cómo puedo hacer que mi imagen de Docker sea pública en Docker Hub?
Para publicar tu imagen en Docker Hub, primero debes crear una cuenta de Docker Hub y etiquetar tu imagen con tu nombre de usuario y nombre de repositorio. Luego, puedes ejecutar el comando "docker push" para subir la imagen a Docker Hub.
¿Puedo ejecutar múltiples contenedores a partir de la misma imagen de Docker?
Sí, puedes ejecutar múltiples contenedores a partir de la misma imagen de Docker. Cada contenedor tendrá su propio entorno aislado y recursos, pero utilizará la misma imagen como base.
¿Cómo puedo saber qué contenedores están ejecutándose en Docker?
Puedes utilizar el comando "docker ps" para ver una lista de todos los contenedores que están actualmente en ejecución. Si quieres ver una lista de todos los contenedores, incluyendo aquellos que no están en ejecución, puedes utilizar el comando "docker ps -a".
Ejemplos de código o comandos
- Para utilizar Docker Build:
docker build -t myapp .
- Para utilizar Docker Run:
docker run -d --name myapp -p 8080:8080 myapp
- Para eliminar una imagen de Docker:
docker rmi nginx
- Para ver una lista de todos los contenedores que están en ejecución:
docker ps
[nekopost slugs="escala-de-composicion-de-docker,docker-adjunto-vs-exec,servidor-de-lamparas-docker,correccion-de-docker-compose-comando-no-encontrado-error,establecer-el-nombre-de-host-docker-compose,buildizacion-de-docker-de-imagen-limpia-usando-sin-cache,comando-de-inicio-de-sesion-de-docker,use-la-red-host-para-docker-compose,ejecute-el-contenedor-en-segundo-plano-usando-el-comando-docker-ejecut"]

Deja una respuesta