GNU/Linux >> Tutoriales Linux >  >> Cent OS

Docker Image vs Container:las principales diferencias

Introducción

Docker es un software de código abierto diseñado para facilitar y simplificar el desarrollo de aplicaciones. Es un conjunto de productos de plataforma como servicio que crean entornos virtualizados aislados para crear, implementar y probar aplicaciones.

Aunque el software es relativamente simple de dominar, hay algunos términos específicos de Docker que los nuevos usuarios pueden encontrar confusos. Los Dockerfiles, las imágenes, los contenedores, los volúmenes y otra terminología deberán dominarse y, con el tiempo, se convertirán en una segunda naturaleza.

Es una buena idea tratar de comprender las funciones básicas de estos elementos. Acelerará el aprendizaje de cómo trabajar con ellos. Una de las preguntas que muchos usuarios hacen es:

M ¿Cuál es la diferencia entre una imagen Docker y un contenedor?

Este artículo explica en qué se diferencian los dos, así como también cómo se relacionan. Lea más para averiguarlo.

¿Qué es una imagen acoplable?

Una imagen de Docker es un archivo inmutable (no modificable) que contiene el código fuente, las bibliotecas, las dependencias, las herramientas y otros archivos necesarios para que se ejecute una aplicación.

Debido a su solo lectura calidad, estas imágenes a veces se denominan instantáneas. Representan una aplicación y su entorno virtual en un momento específico. Esta consistencia es una de las grandes características de Docker. Permite a los desarrolladores probar y experimentar el software en condiciones estables y uniformes.

Dado que las imágenes son, en cierto modo, solo plantillas , no puede iniciarlos ni ejecutarlos. Lo que puede hacer es usar esa plantilla como base para construir un contenedor. Un contenedor es, en última instancia, solo una imagen en ejecución. Una vez que crea un contenedor, agrega una capa de escritura encima de la imagen inmutable, lo que significa que ahora puede modificarla.

La base de imágenes en la que crea un contenedor existe por separado y no se puede modificar. Cuando ejecuta un entorno en contenedores, esencialmente crea una copia de lectura y escritura de ese sistema de archivos (imagen acoplable) dentro del contenedor. Esto agrega una capa contenedora  que permite modificaciones de la copia completa de la imagen.

Puede crear una cantidad ilimitada de imágenes de Docker a partir de una base de imágenes . Cada vez que cambia el estado inicial de una imagen y guarda el estado existente, crea una nueva plantilla con una capa adicional encima.

Por lo tanto, las imágenes de Docker pueden consistir en una serie de capas , cada uno diferente pero también originario del anterior. Las capas de imagen representan archivos de solo lectura a los que se agrega una capa contenedora una vez que la usa para iniciar un entorno virtual.

¿Qué es un contenedor Docker?

Un contenedor Docker es un entorno de tiempo de ejecución virtualizado donde los usuarios pueden aislar aplicaciones del sistema subyacente. Estos contenedores son unidades portátiles y compactas en las que puede iniciar una aplicación de forma rápida y sencilla.

Una característica valiosa es la estandarización del entorno informático que se ejecuta dentro del contenedor. No solo garantiza que su aplicación funcione en circunstancias idénticas, sino que también simplifica el uso compartido con otros compañeros de equipo.

Como los contenedores son autónomos, brindan un fuerte aislamiento, lo que garantiza que no interrumpan a otros contenedores en ejecución, así como al servidor que los respalda. Docker afirma que estas unidades "proporcionan las capacidades de aislamiento más sólidas de la industria". Por lo tanto, no tendrá que preocuparse por mantener su máquina segura mientras desarrolla una aplicación.

A diferencia de las máquinas virtuales (VM), donde la virtualización ocurre a nivel de hardware, los contenedores se virtualizan en la capa de la aplicación. Pueden utilizar una máquina, compartir su kernel y virtualizar el sistema operativo para ejecutar procesos aislados. Esto hace que los contenedores sean extremadamente ligeros , lo que le permite retener recursos valiosos.

Imágenes acoplables frente a contenedores

Cuando se discute la diferencia entre imágenes y contenedores, no es justo contrastarlos como entidades opuestas. Ambos elementos están estrechamente relacionados y forman parte de un sistema definido por la plataforma Docker.

Si ha leído las dos secciones anteriores que definen las imágenes de la ventana acoplable y los contenedores de la ventana acoplable, es posible que ya comprenda cómo ambos establecen una relación.

Las imágenes pueden existir sin contenedores, mientras que un contenedor necesita ejecutar una imagen para existir. Por lo tanto, los contenedores dependen de las imágenes y las usan para construir un entorno de tiempo de ejecución y ejecutar una aplicación.

Los dos conceptos existen como componentes esenciales (o más bien como fases) en el proceso de ejecución de un contenedor Docker. Tener un contenedor en ejecución es la "fase" final de ese proceso, lo que indica que depende de los pasos y componentes anteriores. Es por eso que las imágenes acoplables gobiernan y dan forma a los contenedores.

De Dockerfile a imagen a contenedor

Todo comienza con un script de instrucciones que define cómo construir una imagen de Docker específica. Este script se llama Dockerfile. El archivo ejecuta automáticamente los comandos descritos y crea una imagen de Docker .

El comando para crear una imagen desde un Dockerfile es docker build .

Luego, la imagen se usa como plantilla (o base), que un desarrollador puede copiar y usar para ejecutar una aplicación. La aplicación necesita un entorno aislado en el que ejecutarse:un contenedor .

Este entorno no es solo un “espacio” virtual. Se basa completamente en la imagen que lo creó. El código fuente, los archivos, las dependencias y las bibliotecas binarias, que se encuentran en la imagen de Docker, son los que componen un contenedor.

Para crear una capa contenedora a partir de una imagen, use el comando docker create .

Finalmente, después de haber lanzado un contenedor desde una imagen existente, inicia su servicio y ejecuta la aplicación.


Cent OS
  1. 7 funciones divertidas de transporte de imágenes/contenedores de Linux

  2. ¿Extraer archivo de la imagen de Docker?

  3. Actualización de un contenedor implementado en función de una imagen de Docker

  4. Cómo crear una imagen personalizada desde un contenedor Docker

  5. ¿Qué hay dentro de una imagen/contenedor de Docker?

Cómo instalar la imagen de AlmaLinux 8 en Docker Container

Cómo verificar si el demonio Docker o un contenedor se está ejecutando

Cómo inspeccionar el contenido de una imagen Docker sin iniciar un contenedor

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

Cómo actualizar las imágenes de Docker a la última versión

Cómo usar Docker Commit para cambiar imágenes de contenedores