Cómo instalar Docker

Sep 2020

Docker es un sistema de virtualización que permite arrancar máquinas virtuales en local o en un servidor en Internet, cada una de ellas con una aplicación o servicio especializado, por ejemplo para levantar una base de datos MySQL. Averigua cómo se hace.

Qué es Docker

Docker es un servicio de virtualización, que se puede desplegar en local o en la nube, que permite gestionar contenedores virtuales. Los contenedores son similares a máquinas virtuales, pero que comparten algunas capas comunes para aliviar el trabajo de host o del servidor que debe ejecutar todas ellas.

Cada contenedor normalmente tendrá una aplicación pre-instalada en lo que se denomina una imagen. Los programadores y administradores de sistemas, construyen dicha imagen introduciendo en ella la aplicación, ficheros de configuración y demás recursos, para poder arrancar o levantar un contenedor que sea capa de ejecutar la aplicación.

Si quieres aprender más acerca de esta herramienta consulta nuestro tutorial de Docker.

Qué ventajas tiene usar Docker

Docker simplifica enormemente arrancar aplicaciones pre-configuradas, gracias a que la comunidad ha dejado miles de servicios bien empaquetados en imágenes que fácilmente pueden ser arrancados en un PC normal, como una base de datos MySQL o una aplicación Java con Spring Boot. Con pocos conocimientos un usuario avanzado podrá empaquetar sus propias aplicaciones que podrá distribuir al resto de usuarios.

Estas imágenes se pueden distribuir de forma local o de forma pública en Internet en unas plataformas web llamadas registros o registry de manera similar a los repositorios de artefactos de Maven. Para dar flexibilidad a las aplicaciones, éstas suelen aceptar parámetros en forma de variables de entorno, que permiten adaptar la aplicación según el entorno. Por ejemplo, algunas imágenes permiten ser parametrizadas con la dirección donde está ubicada la base de datos.

Otra de la gran ventaja del uso de Docker, es que a estos contenedores se les asignan cuotas de cpu, de memoria y disco para mantenerlos aislados respecto al resto de procesos y contenedores que se ejecutan en el host. Y típicamente se hace una redirección del tráfico de red con reglas TCP/IP para que las comunicaciones entrantes del host se propaguen hasta el contenedor adecuado, ya sea mediante el uso de puertos diferentes o mediante algún proxy reverso como Traefik que usa diferentes nombres de dominios o rutas Http para redirigir el tráfico.

Cómo instalar Docker

Independientemente de si tienes Windows, Linux o Mac, la mejor manera de instalar Docker es vía los paquetes oficiales preparados por el proyecto que proporcionan instaladores muy fáciles de ejecutar. Todos ellos necesitan los permisos de administrador del equipo, ya que el software requiere interactuar activamente con los servicios de red para la redirección del tráfico que se origine o vaya destinado a cualquiera de los contenedores que administra.

Las únicas limitaciones que hay sobre la instalación de Docker es que tu pc o portátil debe tener cierta capacidad y potencia. Por otro lado, en el caso de que seas usuario de Windows, deberás tener la versión Professional para poder instalar Docker. Si no es así, visita el tutorial de instalación de ubuntu, el mejor sistema operativo para programar totalmente gratis y Open Source.

A continuación dejamos los enlaces para proceder a la instalación según el sistema operativo usado:

Cómo usar Docker / Compose

Una vez que Docker esté instalado en tu equipo, éste se estará ejecutando como un servicio en segundo plano orquestando los diferentes contenedores que arranques. Obviamente, nada más instalar Docker, no habrá ninguno ejecutándose, puedes probar arrancar un contenedor de prueba con la siguiente orden en la consola de comandos:

docker run hello-world

Este comando lanzará una imagen de prueba que únicamente imprime un mensaje por consola y finaliza el contenedor acto seguido. Como la imagen no estará disponible localmente, ésta será descargada de los repositorios públicos de imágenes para poder pasar a ejecución.

docker : Unable to find image 'hello-world:latest' locally
latest: Pulling from library/hello-world
1b930d010525: Pull complete
Digest: sha256:c3b4ada4687bbaa170745b3e4dd8ac3f194ca95b2d0518b417fb47e5879d9b5f
Status: Downloaded newer image for hello-world:latest

Hello from Docker!
This message shows that your installation appears to be working correctly.
...

Si te ha ido bien, enhorabuena! Ya tienes en tu PC un gestor de contenedores con el que levantar aplicaciones rápidamente. Ahora bien, levantar un contenedor puede requerir que previamente exista otro, por ejemplo una aplicación que dependa de una base datos. O incluso, configurar una imagen para que se adapte al entorno donde se va a ejecutar puede requerir varios parámetros.

Así que para simplificar el proceso se usa un fichero de configuración denominado docker-compose.yml que es usado por una utilidad denominada Docker Compose. Ésta no es más que una capa ligera por encima de Docker que traduce el fichero de configuración a invocaciones al servicio de Docker. Conviene instalarlo y familiarizarse con la sintaxis Yaml usada en estos ficheros de configuración, ya que se usa mucho en todo lo que tiene que ver con virtualización.

Si eres usuario de Docker Desktop para Windows o para Mac, Docker Compose ya estará instalado. Pero si eres usuario de Ubuntu o alguna distribución de Linux en general basta que ejecutes estos comandos en la consola:

# descarga del script de docker-compose
sudo curl -L "https://github.com/docker/compose/releases/download/1.25.4/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

# habilitar permiso de ejecución al script
sudo chmod +x /usr/local/bin/docker-compose

# añadirlo a un directorio visible por la variable Path
sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose

A partir de este momento, podrás ejecutar docker-compose desde un terminal de comandos correcta e independientemente de donde estés ubicado.

Más acerca de Docker

Si quieres aprender más acerca de esta herramienta consulta nuestro tutorial de Docker o prueba de arrancar una base de datos en local en un contenedor con MySQL o otra del tipo PostgreSQL con Docker.

Cómo instalar Docker

¿Con ganas de seguir leyendo?

Nuestra guía de Java

Cerca de 450 páginas en un libro de tapa blanda que podrás utilizar para aprender a programar en Java desde cero sin conocimientos previos. Explicamos como usar las herramientas más usadas en el mundo empresarial, todas ellas son totalmente gratis y Open Source.

Aprende conceptos como TDD para desarrollar software con garantías. Conecta tus apps con JPA en bases de datos SQL. Integra tus proyectos con Maven y mantenlos bajo control con Git. Mantente al día con la programación funcional de Java 8+.

Nuestra guía de Java
Libro Javañol