DockerLinuxterminal

Instalar docker-compose en linux y primeros pasos

En este artículo te enseñamos qué es docker-compose, cómo se instala y por qué deberías usarlo. Si quieres trabajar en serio con contenedores, deberás aprender a conocer este tipo de herramientas, sus parámetros principales, utilidad y configuración, pues son mucho más eficientes que trabajar directamente en la línea de comandos con docker.

Contenidos

¿Qué es docker-compose?

¿Te imaginas poder instalar tus contenedores docker de manera rápida y cómoda, decir dónde se van a almacenar los datos, decir qué puertos usarán, en qué redes, con qué nombre de servicios, y todo en un fichero de configuración fácilmente legible? ¡Olvídate de los «one liner» de docker!

Docker-compose es un wrapper («empaquetador» en castellano, aunque sencillamente no lo hemos escuchado usar… ¿qué usáis vosotros?) de docker que nos permite configurar nuestros contenedores a partir de ficheros de configuración yaml. En muchos de los artículos que mostramos (por ejemplo cuando te enseñamos a crear tu propia nube con NextCloud) os damos un fichero docker-compose.yml que incluye toda la configuración de los contenedores. Un ejemplo de fichero de configuración podría ser el siguiente:

version: "3.9"  # optional since v1.27.0
services:
  web:
    build: .
    ports:
      - "5000:5000"
    volumes:
      - .:/code
      - logvolume01:/var/log
    links:
      - redis
  redis:
    image: redis
volumes:
  logvolume01: {}

Con Compose, puedes gestionar completamente el ciclo de vida de tus aplicaciones, servicios y programas, como por ejemplo:

  • Arrancar, parar y reconstruir servicios
  • Ver el estado de los servicios en ejecución
  • Centralizar el flujo de las salidas de log de los servicios en ejecución
  • Ejecutar un comando sobre un servicio
  • Administrar una red interna entre los servicios
  • Gestionar el almacenamiento interno y los logs de los servicios

Ya sea para un entorno de desarrollo, un entorno de test automatizado o hacer despliegues en un sólo servidor, docker-compose es una herramienta que hará tu vida como desarrollador, administrador de sistemas, devops o simple aficionado al selfhosting mucho más simple.

Instalación de docker-compose

Para instalar docker-compose, descarga la versión estable y dale permisos al ejecutable de la siguiente forma:

$sudo curl -L "https://github.com/docker/compose/releases/download/1.28.5/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
$sudo chmod +x /usr/local/bin/docker-compose
$docker-compose --version #este paso no es necesario, pero sí lo es si quieres comprobar que la instalación se ha hecho correctamente.

Ojo: Comprueba la página web de instalación de docker-compose para saber la última version, cambia el número que viene después de la palabra «download» por la última versión disponible. No deja de ser curioso que docker, que tiene el concepto de «latest» para sus contenedores, no tenga un directorio para su última versión estable en sus fuentes de instalación. En casa del herrero…

¡Y por cierto! La mayoría de las aplicaciones que vayas a instalar en tus servidores tienen un fichero docker-compose para que las pruebes con las opciones más comunes ya elegidas por tí: nextcloud, wordpress, postgres… ¡un sinfín de aplicaciones que puedes configurar y gestionar de forma contenedorizada y muy sencilla!

Inicializar los contenedores la primera vez

La primera vez que docker-compose utiliza un fichero .yml, deberás de utilizar el siguiente comando:

$docker-comose up -d

Esto hará que se inicialicen las redes, los contenedores, los volúmenes y… que te salga algún error si tienes algo mal configurado, pero si todo va bien, con esto tendrás todos tus servicios arrancados.

Mirar los logs de docker-compose

En docker-compose tienes muchas formas de mirar los logs, pero lo más común es mirar los últimos registros generados y dejar el terminal conectado por si se escriben nuevos logs. De este modo, podrás encontrar fácilmente un posible error en tus contenedores. El siguiente comando muestra los logs de todos los contenedores en el ficher .yml a medida que se van generando, empezando por los últimos 200.

$docker-compose logs -f --tail=200

Arrancar los servicios

$docker-compose start

Parar los servicios

$docker-compose stop

Arrancar o parar solo un servicio del fichero .yml

$docker-compose start/stop nombreservicio

¿Quieres saber algo más sobre docker-compose? ¡Te esperamos en los comentarios!

(Visto 274 vecess, 1 visitas hoy)
¡Comparte este articulo!

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *