Instalando Docker
3.1. ¿Quiero instalar, vamos allá?
Bueno, dado que ya sabes qué es un container y qué es Docker, ha llegado la hora de poner manos a la obra. ¡Vamos a instalar Docker por primera vez!
El daemon de Docker se ejecuta nativamente en distribuciones Linux, y por eso la instalación en sistemas operativos que no sean Linux consiste básicamente en levantar una VM y ejecutar el daemon desde allí. El cliente, sin embargo, puede instalarse en los principales sistemas operativos disponibles actualmente.
Para realizar la instalación de Docker en máquinas Linux es bastante simple. Solo necesitamos observar algunos puntos:
-
Docker no soporta procesadores de 32 bits.
-
Docker es soportado (stable) solamente en la versión del kernel 3.8 o superior.
-
El kernel debe tener soporte para los sistemas de archivos utilizados por Docker, como AUFS, Device Mapper, OverlayFS, etc.
-
El kernel deberá tener soporte para cgroups y namespaces, lo que normalmente ya viene habilitado por default en la mayoría de las distros.
También puedes acceder a la URL: https://docs.docker.com/install/. Allí es posible aprender a instalar Docker en diversas distribuciones Linux, en las principales clouds y también en MacOS y Windows.
En este libro vamos a utilizar la distribución Ubuntu Linux, pero no cambia nada para otras distribuciones. ¡Basta de charla, vamos allá!
Primero, vamos a verificar la versión del kernel para saber si es compatible con Docker:
# uname -r
3.2. Instalando en Debian/Centos/Ubuntu/Suse/Fedora
La instalación de Docker es bastante simple. Puedes optar por instalarlo utilizando los paquetes disponibles para tu distro -- por ejemplo, apt-get o yum.
Preferimos hacer la instalación a través de la ejecución del curl que sigue, que ejecutará un script y detectará cuál es la distribución que estamos utilizando, para luego agregar el repositorio oficial de Docker en nuestro gestor de paquetes, rpm o apt, por ejemplo.
# curl -fsSL https://get.docker.com/ | sh
Así siempre buscará la versión más reciente de Docker. :)
3.3. Instalando 'manualmente' en Debian
En caso de que estés utilizando Debian y quieras realizar la instalación a través de los paquetes disponibles en el repositorio, haz:
# apt-key adv --keyserver \
hkp://pgp.mit.edu:80 --recv-keys 58118E89F3A912897C070ADBF76221572C52609D
Ahora vamos a crear/editar el archivo "/etc/apt/sources.list.d/docker.list" y agregar la dirección del repositorio correspondiente a la versión de tu Debian. En nuestro caso estamos utilizando la versión Debian 8, también conocida como Jessie.
# vim /etc/apt/sources.list.d/docker.list # Debian Jessie
deb https://apt.dockerproject.org/repo debian-jessie main
Después de agregar la línea anterior, es necesario actualizar la lista de repositorios ejecutando:
# apt-get update
Después de finalizar la actualización de la lista de repositorios disponibles, ya podemos hacer la instalación de Docker. El nombre del paquete es "docker-ce". :)
# apt-get install docker-ce
Vamos a verificar si Docker está en ejecución. Escribe en la línea de comandos lo siguiente:
# /etc/init.d/docker status
O:
# service docker status
docker container stop/waiting
Con esto, podemos verificar si el proceso está en ejecución. Como podemos notar, el daemon de Docker no está en ejecución, por lo tanto vamos a iniciarlo.
# service docker start
docker container start/running, process 4303
# service docker status
docker container start/running, process 4303
¡Perfecto! Ahora ya tenemos Docker instalado y listo para empezar a jugar con los containers. \o/
3.3.1. Consejo importante
Por defecto, el daemon de Docker hace bind en un socket Unix, y no en un puerto TCP. Los sockets Unix, a su vez, son propiedad y de uso exclusivo del usuario root (por eso Docker siempre se inicia como root), pero también pueden ser accedidos a través de sudo por otros usuarios.
Para evitar que tengas que estar usando sudo al ejecutar comandos de Docker, crea un grupo llamado docker y agrega tu usuario a él. Detén el servicio e inícialo nuevamente.
Desafortunadamente, no todo son flores. Este procedimiento hace que el usuario tenga los mismos privilegios del usuario root en operaciones relacionadas con Docker. Más información en el enlace: https://docs.docker.com/engine/security/.
Para crear un grupo en Linux y agregar un usuario no tiene secreto, basta con ejecutar:
sudo usermod -aG docker user
Consejo de un millón de dólares: user = tu usuario. :D