Docker es una tecnología de virtualización que está revolucionando el mundo de la gestión de la configuración, al poner a la disposición de los desarrolladores, DevOps y SysAdmins una opción fácil y rápida para desplegar aplicaciones en varios ambientes de desarrollo.

Los pasos requeridos para instalar Docker varían dependiendo de la plataforma que se use para desarrollar y la distribución de linux que tus aplicaciones usen en producción. Como Docker es una tecnología construida sobre “contenedores” Linux aquellos que se atrevan a usarlo en una plataforma que no sea linux, necesariamente tendrán que depender de un overhead en la virtualización o de un servidor remoto para varias partes del proceso. Sin embargo en esta guía nos enfocaremos en como instalar Docker en su ambiente nativo… Linux.

Terminologia

Antes de comenzar definamos algunos términos que vamos a utilizar.

  •  Docker Client es el conjunto de comandos que usamos para controlar el flujo de trabajo de Docker y para hablar con servidores docker remotos
  • Docker Server  El comando docker que corre en modo ‘daemon’. Esto convierte un sistema Linux en un docker server que puede tener varios containers desplegados, lanzados y apagados a través de un cliente remoto.
  • Docker Images Las imágenes consisten en una o mas capas de sistemas de archivos y algunos metadatos importantes que representan todos los archivos requeridos para correr una aplicacion “Dockerizada”. Una sola imagen puede ser copiada en varios hosts. Y un container tiene típicamente un nombre y una etiqueta. La etiqueta se usa generalmente para identificar un release de una imagen en particular.
  • Docker Container Un contenedor Docker es un contenedor Linux que ha sido instanciado desde una imagen Docker. Un contenedor en específico puede existir solo una vez, sin embargo, podemos crear múltiples contenedores a partir de la misma imagen.
  • Atomic host Un host atómico es un pequeña pero bien arreglada imagen de sistema operativo, como CoreOs o Project Atomic, que soportan hosting de containers y actualizaciones de atomic OS.

Instalacion

El cliente de docker es soportado únicamente en sistemas operativos unix de 64 bits. Aun cuando han habido personas reportando que pueden correr docker en un sistema de 32 bits, esto no está actualmente soportado y por ende se convierte en una mala práctica.

Manos a la terminal! Pondré como instalarlo en un sistema basado en debian y en un sistema red-hat

Debian

Para instalar docker correr los siguientes comandos en una terminal:

$ sudo apt-get update
$ sudo apt-get install docker.io
$ sudo ln -sf /usr/bin/docker.io /usr/local/bin/docker

Por conveniencia es recomendable agregar autocomplete para los comandos porpios de docker

$ sudo sed -i '$acomplete -F _docker docker' /etc/bash_completion.d/docker.io
$ source /etc/bash_completion.d/docker.io

Red Hat

Para instalar docker correr los siguientes comandos en una terminal:

$ sudo yum -y install docker-io

Docker Daemon

Ahora debemos activar el docker server para poder comenzar a crear nuestros containers y a descargar imágenes. Como dijimos anteriormente esto puede variar drásticamente según las características de linux que tengamos.

El servidor docker está integrado en el mismo binario que usamos como cliente. No es tan obvio cuando lo instalamos porque todos los sistemas de linux en su init previenen que sepamos cuál comando es el que corre realmente para correr el daemon. Entonces es de utilidad que veamos que docker está corriendo el daemon manualmente, y para los sistemas linux solo tenemos que correr el siguiente comando en una terminal:

$ sudo docker -d -H unix:///var/run/docker.sock -H tcp://0.0.0.0:2375

Este comando le dice a Docker que inicie en modo daemon (-d), que cree y escuche en un socket de dominio (-H unix:///var/run/docker.sock), y que lo agregue a todas las IP del sistema usando el puerto para tráfico desencriptado por default (-H tcp://0.0.0.0:2375)

No es común que tengamos que hacer esto manualmente… pero por si pasa algo raro lo dejo por aqui.

Systemd

Si lo queremos correr en un sistema que soporte systemd, tenemos primero que habilitar el servicio:

$ sudo systemctl enable docker

Y luego decirle que lo corra:

$ sudo systemctl start docker

Upstart

En sistemas como ubuntu que usan upstart podemos habilitar el docker daemon asi:

$ sudo update-rc.d docker.io defaults

Y correrlo asi:

$ service docker.io start

init.d

en sistemas de producción es más común ver init.d alrededor, Para habilitar el servicio:

$ chkconfig docker on

Para iniciar el servicio de inmediato:

$ service docker start

Bien eso ha sido todo para instalar docker. En futuros posts seguiremos hablando de como usarlo.

Happy Coding!

Categorized in:

Tagged in:

, , ,