Conociendo Docker – Introducción

Docker es una tecnología que inicio a principios del 2013, que a lo largo de estos años ha madurado y tomado presencia para temas de desarrollo, pruebas y produccion de microservicios.

En si, lo que hace Docker es virtualizar a nivel de sistema operativo en pequeños contenedores (containers) todo un ambiente de ejecución/desarrollo de uno o más paquetes de softwares.

Para los que vienen de la vieja escuela, es digamos la evolucion de ejecutar algun servicio como apache2,bind,etc… con “chroot“, en esos tiempos teniamos que copiar o enlazar todas las librerias que este paquete requeriera y corria bajo un ambiente “aislado“.

Bien, Docker Inc, vino a evolucionar esto con los contenedores, estos contenedores que AWS Amazon define como “Los contenedores son un método de virtualización del sistema operativo que le permite ejecutar una aplicación y sus dependencias en procesos de recursos aislados.

monolith_2-VM-vs-Containers

Imagen 1. Diferencia entre contenedores y VM

En si, lo que creas es una imagen con todas las dependencias de tu aplicación o servicio, la cual es ejecutada con el Docker Engine y en la cual tienes control de versiones, portabilidad, uso eficiente de los recursos de computo y separación en microservicios independientes.

No confundamos Virtualización de Docker con algo como VMware ESXi, XenServer o Hyper-V, en realidad los contenedores reutilizan el Kernel de del servidor Host, se ejecutan como un proceso y utilizan unicamente la cantidad de memoria asignada. A diferencia de una solución de virtualización donde se emula todo un conjunto de recursos computacionales y se instala todo un sistema operativo con su propio Kernel, ocupando más recursos de CPU y Memoria para dichas operaciones.

Existen dos versiones de Docker, la Community Edition (CE) y la Enterprise Edition (EE).

Ahora instalemos Docker, para esto podemos usar las guias que nos ofrece https://docs.docker.com en la URL: Docker Install

Solo pondré los pasos que uso para mis servidores con Ubuntu.

El repositorio de Docker solo soporta las siguientes versiones:

  • Bionic 18.04 (LTS)
  • Xenial 16.04 (LTS)
  • Trusty 14.04 (LTS)

Primero debemos asegurarnos que no existe alguna otra instalación Docker por defecto en nuestro Linux:

$ sudo apt-get remove docker docker-engine docker.io

Está bien si se reporta que no hay nada instalado, así que procedemos a instalar el repositorio oficial.

$ sudo apt-get update && apt-get install \
apt-transport-https \
ca-certificates \
curl \
software-properties-common

$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -

$ sudo apt-key fingerprint 0EBFCD88

Nos debe aparecer algo así:

pub 4096R/0EBFCD88 2017-02-22
Key fingerprint = 9DC8 5822 9FC7 DD38 854A E2D8 8D81 803C 0EBF CD88
uid Docker Release (CE deb)
sub 4096R/F273FCD8 2017-02-22

Ya solo nos resta instalar Docker con el siguiente comando:

$ sudo apt-get update && sudo apt-get install docker-ce

Verificamos nuestra versión con:

docker --version

Si deseas usar Docker sin tener que invocar “sudo“, debes agregar tu usuario que maneja docker al grupo docker en tu Ubuntu. Debes saber que esto tiene riesgos de seguridad, ya que Docker ejecuta ciertos componentes como root, para más información aquí: Docker Dameon Attack Surface

sudo usermod -aG docker mi-usuario

Para comprobar que todo está en orden, ejecuta:

$ sudo docker run hello-world

Y si no aparece ningun error y ves “Hello from Docker!“, todo está correcto.

En subsecuentes entradas, explicare componentes según vaya usandolos, como por ejemplo el uso de Docker Compose.

Alejandro M.

Ingeniero Mexicano especialista en Seguridad Informática. Conocimientos en Cisco con la certificación Cisco Certified Network Professional - Security, Fortinet con ahora NSE-4, Certified Ethical Hacker. Trabajo con sistema operativos Linux para servidores de servicios web, dns, balanceo de carga, etc... Fanático de los MMORPG

Leave a comment

Your email address will not be published. Required fields are marked *