Instalación de Docker-Compose en Debian 12

docker-compose

¿Que es docker-compose?

Docker Compose es una herramienta de orquestación de contenedores que permite definir y ejecutar aplicaciones Docker de múltiples contenedores. Con Compose, se define una aplicación multi-contenedor en un único archivo, luego con un solo comando, se crea y se inicia todos los contenedores a la vez.

Requisitos

  • Debian 12 instalado.
  • Acceso a internet.
  • privilegios de sudo o root.

Instalación de docker-compose

Instalar docker-compose en Debian 12 es muy sencillo, solo tenemos que ejecutar el siguiente comando:

root@docker:~# apt install docker-compose -y

Prueba de funcionamiento

Para proba que docker-compose funciona correctamente vamos a desplegar con un archivo docker-compose.yml una base de datos mariadb y las aplicaciones nextcloud y phpmyadmin.

Primero creamos el fichero docker-compose.yml con el siguiente contenido:

version: '3.3'
services:
    database:
        image: mariadb
        container_name: db_mariadb
        restart: always
        environment:
            MYSQL_ROOT_PASSWORD: root
            MYSQL_DATABASE: nextcloud
            MYSQL_USER: nextcloud
            MYSQL_PASSWORD: nextcloud
        volumes:
            - /opt/db_mariadb:/var/lib/mysql
    nextcloud:
        image: nextcloud
        container_name: nextcloud
        restart: always
        ports:
            - 8080:80
        environment:
            MYSQL_HOST: database
            MYSQL_DATABASE: nextcloud
            MYSQL_USER: nextcloud
            MYSQL_PASSWORD: nextcloud
        volumes:
            - /opt/nextcloud:/var/www/html
    phpmyadmin:
        image: phpmyadmin/phpmyadmin
        container_name: phpmyadmin
        restart: always
        ports:
            - 8081:80
        environment:
            PMA_HOST: database
            MYSQL_ROOT_PASSWORD: root

Ahora ejecutamos el siguiente comando para desplegar los contenedores:

root@docker:~# docker-compose -f docker-compose.yml up -d
Creating phpmyadmin ... done
Creating db_mariadb ... done
Creating nextcloud  ... done

Podemos comprobar que los contenedores se han creado correctamente con el comando:

root@Docker:~# docker ps -a
CONTAINER ID   IMAGE                   COMMAND                  CREATED          STATUS          PORTS                                   NAMES
1de4c0227fb4   phpmyadmin/phpmyadmin   "/docker-entrypoint.…"   22 seconds ago   Up 20 seconds   0.0.0.0:8081->80/tcp, :::8081->80/tcp   phpmyadmin
8e597794b8bd   nextcloud               "/entrypoint.sh apac…"   22 seconds ago   Up 20 seconds   0.0.0.0:8080->80/tcp, :::8080->80/tcp   nextcloud
44054fe36109   mariadb                 "docker-entrypoint.s…"   22 seconds ago   Up 20 seconds   3306/tcp                                db_mariadb

Para acceder a nextcloud solo tenemos que abrir un navegador y poner la dirección IP de la maquina docker seguido del puerto 8080:

nextcloud1

Creamos un usuario y contraseña para nextcloud y pulsamos en “Instalar” para que se genere la base de datos.

nextcloud2

Para acceder a phpmyadmin solo tenemos que abrir un navegador y poner la dirección IP de la maquina docker seguido del puerto 8081:

phpmyadmin

Introducimos el usuario root y la contraseña root que hemos definido en el archivo docker-compose.yml y pulsamos en “Iniciar sesión”.

phpmyadmin2

Como podemos ver, está la base de datos nextcloud que hemos creado en el archivo docker-compose.yml.

phpmyadmin3

Con esto ya tendríamos instalado docker-compose en Debian 12 y funcionando correctamente.