La diferencia entre el contenedor de Docker y la imagen de Docker

David Mbochi Njonge 15 febrero 2024
  1. Comprender las capas en Docker
  2. Diferencia entre el contenedor Docker y la imagen
  3. Conclusión
La diferencia entre el contenedor de Docker y la imagen de Docker

En este tutorial, aprenderemos la diferencia entre un contenedor y una imagen mostrando los componentes que forman cada uno y las características que los hacen diferentes.

Comprender las capas en Docker

Para crear una imagen personalizada, normalmente usamos un Dockerfile que define las instrucciones para crear una imagen personalizada usando una imagen base. Las instrucciones que se pueden utilizar para construir una imagen en un Dockerfile son las siguientes.

FROM node:16.17.0-alpine
WORKDIR /app
ADD package*.json ./
RUN npm install
ADD . .
CMD node index.js

Una imagen de Docker se crea utilizando capas que se apilan una encima de la otra. Se agrega una nueva capa a la pila cuando la operación de una instrucción en el Dockerfile es capaz de agregar o eliminar archivos.

Tenga en cuenta que no todas las instrucciones definidas en el Dockerfile crean una nueva capa. Por ejemplo, la instrucción CMD agrega metadatos a la imagen con respecto al comando a ejecutar dentro del contenedor.

Además, tenga en cuenta que las capas creadas con Dockerfile son de solo lectura, excepto la última.

Cuando creamos un contenedor, se crea una nueva capa delgada. La diferencia entre esta capa y la capa anterior es que podemos leer y escribir archivos desde esta capa.

Después de ejecutar un contenedor, las operaciones como escribir nuevos archivos, modificar archivos existentes y eliminar archivos se realizan en la delgada capa de lectura y escritura. La siguiente es una imagen que muestra una pila que contiene capas de solo lectura de la imagen y una capa de lectura y escritura de un contenedor.

capas de imagen y contenedor

Diferencia entre el contenedor Docker y la imagen

En la sección anterior, vimos que la capa superior de la pila es la capa delgada de lectura y escritura que usa el contenedor y las otras capas son las capas de solo lectura que se usan para crear la imagen personalizada.

Esta es la principal diferencia entre un contenedor Docker y una imagen. Cualquier cambio que agregue o elimine archivos de un contenedor se realiza en la fina capa de lectura y escritura del contenedor específico.

Tenga en cuenta que al eliminar un contenedor se elimina su capa asociada. Sin embargo, la imagen base no se elimina.

Cada uno de los contenedores creados tiene su capa de lectura y escritura, lo que les permite compartir la imagen base pero mantener su estado de datos. La siguiente imagen muestra cómo varios contenedores comparten una imagen base.

contenedores que comparten imagen base

Conclusión

Hemos aprendido en este tutorial cómo diferenciar un contenedor acoplable de una imagen acoplable mediante el uso de capas. Hemos aprendido que una imagen se crea usando el archivo llamado Dockerfile, y cada instrucción en el archivo forma una capa de solo lectura apilada encima de otra capa.

Finalmente, hemos aprendido que la capa superior es una capa de lectura y escritura utilizada por el contenedor para agregar o modificar cambios de archivos.

David Mbochi Njonge avatar David Mbochi Njonge avatar

David is a back end developer with a major in computer science. He loves to solve problems using technology, learning new things, and making new friends. David is currently a technical writer who enjoys making hard concepts easier for other developers to understand and his work has been published on multiple sites.

LinkedIn GitHub

Artículo relacionado - Docker Container