Los contenedores se han incrustado en el paisaje de las TI. De hecho, la contenerización de aplicaciones y servicios ha hecho posible que las empresas sean aún más ágiles de lo que eran antes.

¿Y quién no quiere un poco más de agilidad para su empresa?

¿Pero qué es un contenedor? Un contenedor es una forma de enrollar software en pequeños paquetes autocontenidos que incluyen todas las librerías y configuraciones necesarias para que el software funcione como si se instalara a través del método estándar. Por ejemplo, si quieres desplegar un servidor NGINX, en lugar de instalar el servidor y todas sus dependencias en hardware estándar o virtual, puedes simplemente sacar la imagen de NGINX y desplegar un contenedor basado en esa imagen. En segundos tendrás ese servidor web NGINX listo para trabajar.

Podrías estar pensando: «¿Por qué no usar simplemente una máquina virtual?». A diferencia de una máquina virtual, un contenedor no requiere un sistema operativo completo para hacerlo funcionar. De hecho, los contenedores son independientes de la plataforma. Siempre que tengas un sistema que soporte tu contenedor, puede ser desplegado. Incluso mejor, los contenedores siempre se ejecutan de la misma manera, independientemente de la plataforma en la que se desplieguen.

¿Pero qué se utiliza para desplegar contenedores? Un sistema es Docker. Docker es una de las herramientas más sencillas que existen para desplegar software en contenedores. Es gratuito y está disponible para su instalación en la mayoría de las plataformas.

¿Cuáles son las ventajas de los contenedores?

Las ventajas de usar contenedores (sobre los métodos tradicionales o las máquinas virtuales) son muchas. He aquí algunas:

  • Despliegue rápido: Con una imagen descargada del Docker Hub, puede desplegar rápidamente un contenedor con un solo comando).
  • Crear uno, desplegar muchos: Puedes crear tantos contenedores como quieras a partir de una sola imagen.
  • Menos sobrecarga: Los contenedores requieren muchos menos recursos del sistema que los métodos tradicionales.
  • Portabilidad: Las aplicaciones que se ejecutan como contenedores pueden desplegarse en diferentes sistemas operativos y plataformas de hardware.
  • Fácil desarrollo de aplicaciones: Por su diseño, los contenedores admiten ciclos de desarrollo ágiles.
  • Inicio casi instantáneo: Los contenedores pueden iniciarse casi instantáneamente, mientras que una máquina virtual puede tardar en arrancar.
  • Modularidad: Las aplicaciones complejas pueden dividirse en módulos, como una base de datos, un servidor web y un front-end.

Ahora que ya entiendes un poco mejor qué son los contenedores y por qué deberías usarlos, vamos a descubrir cómo instalar Docker en dos de los sistemas operativos de servidor de código abierto más populares, Ubuntu Server (versión 18.04) y CentOS 7.

Instalación de Docker en CentOS 7

Primero, instalaremos Docker CE (Community Edition) en CentOS 7. La instalación se realiza a través de la línea de comandos, así que inicia sesión en tu servidor CentOS 7 y prepárate para escribir.

El primer paso es instalar cualquier dependencia necesaria para Docker. Para ello, emite el siguiente comando:

1
sudo yum install -y yum-utils device-mapper-persistent-data lvm2

Una vez que ese comando se complete, tendrás que añadir el repositorio docker-ce con el comando

1
sudo yum-config-manager –add-repo https://download.docker.com/linux/centos/docker-ce.repo

Con el repositorio en su lugar, instala docker-ce con el comando:

1
sudo yum install docker-ce

Se le pedirá el visto bueno a la instalación (y a la importación de su clave GPG – Figura A).

Figura A

Cuando esto se complete, tendrá que añadir su usuario al grupo Docker. Si te saltas este paso, sólo podrás ejecutar los comandos de Docker utilizando sudo, lo que supone un riesgo de seguridad. Para añadir tu usuario al grupo Docker, emite el comando

1
sudo usermod -aG docker $(whoami)

Salga de CentOS 7 y vuelva a entrar para que el cambio surta efecto.

Por último, hay que iniciar el demonio Docker y habilitarlo para que se inicie al arrancar el sistema. Esto se puede hacer con los siguientes dos comandos:

1
2
3

sudo systemctl enable docker
. sudo systemctl start docker

Si emites el comando docker images (que es el comando para listar cualquier imagen disponible que se encuentre en el sistema), no sólo verás que Docker está funcionando, sino que actualmente no tiene imágenes disponibles (Figura B).

docker_b.jpg

Docker está funcionando, pero no contiene imágenes.

Si quieres sacar la imagen de NGINX de Docker Hub, emite el comando:

1
docker pull nginx

Vuelve a emitir el comando docker images y verás la imagen recién extraída disponible (Figura C).

Figura C

La imagen de NGINX está lista para ser utilizada para el despliegue de contenedores.

Instalar Docker en Ubuntu Server 18.04

Instalar Docker en Ubuntu Server es en realidad bastante más fácil. Dado que Docker se encuentra en el repositorio estándar, todo lo que tienes que hacer es iniciar sesión en tu Ubuntu Server y emitir el comando:

1
sudo apt-get install docker.io -y

El comando anterior instalará todas las dependencias necesarias para que Docker se ejecute. Una vez que se complete, habilite e inicie el servicio Docker con los comandos:

1
2
3

sudo systemctl enable docker
sudo systemctl start docker

Finalmente, añádase al grupo docker con el comando:

1
sudo usermod -aG docker $(whoami)

Salga del servidor y vuelva a entrar. Ahora puede emitir los mismos comandos que en CentOS 7. Liste las imágenes disponibles con el comando:

1
docker images

Como era de esperar, no verá ninguna imagen listada (Figura D).

Figura D

Todavía no hay imágenes disponibles para Ubuntu Server.

Baja la imagen de NGINX con el comando:

1
docker pull nginx

Una vez descargada la imagen, vuelve a emitir el comando docker images para verla listada (Figura E).

Figura E

La imagen de NGINX disponible en Ubuntu Server.

Conclusión

Y así es como se instala Docker tanto en CentOS 7 como en Ubuntu Server 18.04. En nuestra próxima instalación de esta serie, aprenderemos a desplegar un contenedor, utilizando la imagen de NGINX extraída de Docker Hub.

Imagen de características por _jinnie_ de .

Deja una respuesta

Tu dirección de correo electrónico no será publicada.