El Docker Compuesto

  En una entrada anterior del presente blog se ha explicado qué es Docker, un sistema de virtualización ligero sin entorno gráfico, mientras que en otra de nuestras entradas, se comentó el modo genérico de uso de este programa.
  En esta ocasión se hablará de una herramienta más avanzada de Docker: El Docker Compuesto ("Docker Compose", en inglés).
  Se trata de una herramienta que permite describir un conjunto de contenedores que se relacionan entre ellos. Esto significa que permite utilizar varias imágenes y comunicarlas, para obtener los requisitos necesarios para hacer funcionar una aplicación del usuario.

  Existen aplicaciones basadas en microservicios que suelen usar múltiples contenedores, cada uno con un servicio diferente. Esta herramienta permite al usuario definir una aplicación multicontenedor en un archivo con las mismas propiedades que se indicarían con el comando docker run individualmente. Con un único comando se pueden iniciar todos los contenedores y en el orden que el usuario especifique.
  El descriptor de los contenedores a usar con Docker Compuesto es un archivo de texto con formato "yaml" (extensión ".yml") en la que se especifican los diferentes contenedores y sus propiedades, pero vayamos por partes.

INSTALAR DOCKER COMPUESTO

  Esta herramienta no suele venir instalada con Docker de manera predeterminada, excepto en la versión de Docker para Mac OS, por lo que habrá que instalarla a posteriori. El modo de hacerlo varía según el sistema operativo donde previamente esté instalado Docker.
  En el caso de Windows, si el sistema operativo es anterior a Windows Server 2016 (sólo Windows 7 y superiores), se debe comprobar que el sistema operativo es de 64-bit descargar el ejecutable Docker Toolbox (conjunto de herramientas de Docker que incluye la que se está tratando aquí) de la página oficial (siempre es mejor), ejecutarlo, y seguir las instrucciones del instalador. Después, se comprueba si todo ha ido bien buscando y pulsando el acceso directo al símbolo del sistema de Docker (si antes de abrirse aparece una ventana pidiendo al usuario que permita a Virtualbox realizar cambios en el equipo se debe acceder), y escribiendo el comando docker run hello-world en este último cuando acabe de configurarse.
  Si, por el contrario, se trata de Windows Server 2016, se debe abrir una ventana de PowerShell con permisos de administrador y permitirle realizar cambios en el equipo. Después, se ejecuta el comando [Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12, que instala el protocolo criptográfico de seguridad de red TLS (requisito para instalar Docker Compuesto); seguidamente se emplea el cmdlet Invoke-WebRequest "https://github.com/docker/compose/releases/download/[Versión de Docker Compuesto]/docker-compose-Windows-x86_64.exe" -UseBasicParsing -OutFile $Env:ProgramFiles\docker\docker-compose.exe, para descargarlo e instalarlo.

  En Linux también se debe instalar aparte, ya que no suele instalarse al instalar Docker. A pesar de ello, puede comprobarse si está instalado o no en un equipo determinado mediante el comando docker-compose --version (el mismo con el que se comprueba si está bien instalado tras su instalación), pero siempre con permisos de administrador.
  Como se ha visto en la imagen anterior, en un sistema operativo de tipo debian, se debe utilizar el comando apt install docker-compose (o apt-get install docker-compose) con permisos de administrador (se antecederá con sudo si no se es administrador). En otras distribuciones de Linux se empleará el comando de instalación de paquetes adecuado a cada una de ellas, pero siempre con privilegios de administrador.
  Una vez instalado, se configura, siempre como administrador, mediante el primer comando que se aprecia en la siguiente imagen (donde se ve "1.12.0" se cambia por la versión del programa que prefiera el usuario, aunque siempre es mejor la más reciente; por otra parte, si al comprobar el resultado da un mensaje de error de sintaxis, o varios, se puede arreglar borrando el archivo recién descargado y escribiendo el mismo comando con el siguiente cambio importante:  "'uname -s'-'uname -m'" se sustituye por "Linux-x86_64"). A continuación, se dan permisos de ejecución a la ruta donde se encuentra el Docker Compuesto empleando el comando chmod +x [ruta del programa]. Finalmente, se utilizará el comando curl -L https://raw.githubusercontent.com/docker/compose/$(docker-compose version --short)/contrib/completion/bash/docker-compose -o /etc/bash_completion.d/docker-compose para terminar la configuración de este programa. Luego se comprueba si todo ha ido bien mediante el comando mencionado más arriba para tal efecto.

COMANDOS BÁSICOS

  Aunque existen más opciones (pueden verse en el siguiente enlace), los siguientes son los comandos básicos de Docker Compuesto (todos ellos se utilizan con permisos de administrador):
  •   docker-compose down: Apaga todos los servicios activados con el penúltimo comando de esta lista.
  •   docker-compose exec [parámetro] [-e CLAVE=VALOR...] COMANDO DEL SERVICIO [ARGUMENTOS]: Permite ejecutar un comando a uno de los servicios activados por Docker Compuesto.
  •   docker-compose help [comando]: Muestra la ayuda sobre el comando especificado.
  •   docker-compose ps: Permite ver los contenedores funcionando.
  •   docker-compose top [servicio]: Muestra los procesos activos de Docker Compuesto.
  •   docker-compose up: Da instrucciones a Docker para crear el contenedor, y ejecutarlo según el archivo yaml que esté en el directorio donde se ejecute.
  •   docker-compose --version:  Indica la versión del Docker Compuesto instalada (o bien si no está instalado este programa).

 USO GENÉRICO

   Para emplear este programa, se debe tener, en un mismo directorio, el archivo yaml que se desea ejecutar con el comando apropiado para ello (se puede descargar o crear), y todos los demás archivos de los que dependa este para su correcta ejecución (si son necesarios), entre los que se suele encontrar un archivo de Docker.
  Primeramente, se accede al directorio donde se encuentran los archivos antes mencionados, y luego se ejecuta el archivo yaml con el penúltimo de los comandos explicados en el apartado anterior. Naturalmente, este comando posee varios parámetros que se pueden consultar en el siguiente enlace.
  Una vez activados los contenedores, pueden usarse los comandos casi del mismo modo que con el Docker.

  Espero que esta entrada haya sido útil y/o interesante al lector. En caso afirmativo, ¿podría compartirla y/o comentarla, por favor?

No hay comentarios:

Publicar un comentario

Deje aquí su comentario, si no puede comentar, pruebe a hacerlo desde otro navegador de red u otro equipo.