¿Cómo podemos ayudarte?

¿Qué es un contenedor?

Contenido

Acerca del proyecto

Este post vamos a explicar ¿qué es un contenedor?, las principales características que posee, adicionalmente vamos a ver porque docker usa contenedores en su estructura para poder trabajar.

Conocimiento previo

Para realizar este proyecto se requiere conocimiento previo de los siguientes temas, si aun no has trabajado con lo que se menciona en la siguiente tabla, allí están los links a los post para que puedas dar un repaso adicional o puedas recordar el conocimiento necesario para poder realizar este proyecto.

Proyecto Descripción
Introducción docker Iniciamos con docker, donde conoceremos los temas que vamos a trabajar en este curso, aprenderemos a usar este gestor de contenedores con todas sus funcionalidades, ademas realizaremos ejercicios prácticos para reforzar el conocimiento aprendido.
¿Qué es docker? ¿Qué es docker?, es una plataforma que permite crear e implementar aplicaciones rápidamente. En este post aprenderás a detalle la definición, sus características y la diferencia con las tecnologías de aplicaciones tradicionales.
¿Qué es una imagen en docker? ¿Qué es una imagen en docker?, es un archivo compuesto por múltiples capas, que se utiliza para ejecutar código en un contenedor de docker. En este post aprenderás la definición y como usar las imagenes para crear contenedores.

Historia

Antes de definir un contenedor entendamos primero porque se crearon, antes de que los contenedores llegarán al mercado lo que se hacía era montar un servidor con todos los programas, procesos, aplicaciones, entre otros, instalados y configurados donde compartían el mismo recurso el mismo disco duro y la misma infraestructura.

En la imagen anterior, tenemos como base un sistema operativo en el servidor, al cual le instalamos todas las librerías, paquetes, programas, entre otros complementos, luego instalamos la aplicación principal en el servidor, en esta forma de trabajo se estan compartiendo los recursos con otras aplicaciones que tengamos en ese mismo servidor. Esto es una gran desventaja porque no se sabe cuántos recursos se estan consumiendo por cada aplicación y el mantenimiento de este servidor se vuelve muy complejo porque al mover una sola variable o un solo programa podemos llegar a alterar los demás programas.

Una de las soluciones prácticas que se utilizaba para poder tener nuestras aplicaciones con el mejor rendimiento era crear un servidor por destino, es decir nuestra aplicación estaría en un servidor, de igual forma tendriamos otro servidor para la base de datos, un servidor para lo que son las peticiones http, servidores de correos, entre otros; pero como podemos observar, tenemos un servidor independiente para cada programa, proceso o servicio y puede que se solucione el problema de los recursos y el rendimiento de la aplicación, pero a nivel de infraestructura se ampliaba y es más complejo hacer el mantenimiento de esta forma.

Una de las soluciones que llegó fueron las máquinas virtuales, las cuales nos permitieron emular en un servidor varios ordenadores, esto permite aprovechar los recursos fisicos donde a cada maquina virtual se le asignaba dichos recursos segun la capacidad requerida por cada aplicación.

Pero esto conlleva a una gran desventaja ya que al momento de iniciar una máquina virtual técnicamente estamos iniciando un sistema operativo completo con todas sus funcionalidades y todas sus configuraciones, esto es lo que hace es utilizar aún más procesador, memoria, entre otros recursos para poder mantener este tipo de infraestructura.

¿Qué es un contenedor?

Qué son los contenedores, básicamente se define el como poder limitar los recursos que se esta ejecutando para una aplicación, donde sola va a contener sus librerías y su configuración respectiva para que la aplicación se puede ejecutar correctamente.[1]

Un servidor de contenedores lo que hace es poner diferentes límites a sus aplicaciones que nosotros vamos a ejecutar, lo que hace es encerrarlas de tal manera que se le asignan una serie de recursos tanto de Hardware como de Software a los que puede acceder colocando como restricción que nunca puede pasar de esos límites, la forma como docker encierra sus contenedor es en un conjunto de tecnologías que ya posee Linux las cuales son los: Namespaces, Cgroups, Chroot entre otras herramientas de Software que permite identificar cada uno de los contenedores.

Esta forma de trabajar permite algunas características adicionales con respecto a lo que son las máquinas virtuales y la forma de manejar las aplicaciones, ya que los contenedores son livianos porque trabajan directamente sobre el kernel y no sobre una máquina virtual, no necesitan instalar nuevos sistemas operativos ya que va a trabajar con el sistema base que contiene, la aplicación al estar contenida permite mejorar sus rendimientos y el uso de pocos recursos, lo cual permite tener más contenedores con más aplicaciones o servicios dentro de un mismo servidor, ademas la portabilidad es una de las ventajas solo se necesita un simple archivo donde se describan las características necesarias para crear un contenedor y este lo podemos utilizar en otro servidor donde docker se encargara de crear el contenedor con las mismas características.

Referencias

[1] docker https://www.docker.com/resources/what-container, Consultado Junio 2020

Comentarios

Para dejar el comentario solo necesitamos tu correo que registraste en la pagina, pero si aun no te haz registrado se creara el usuario automaticamente.

Detalle contenido

base-contenedores-en-docker
Generic placeholder image
Oscar Fernandez Alzate

05, Junio 2020

815
Categorías
DOCKER