Taller Docker - Escenarios multicontenedor en Docker

Despliegue de Nextcloud en Docker

Vamos a desplegar la aplicación nextcloud con una base de datos utilizando la aplicación docker-compose. Puedes coger cómo modelo el fichero docker-compose.yml el que hemos estudiado para desplegar WordPress.

  • Instala docker-compose en tu ordenador.
    sudo apt install docker-compose
    
  • Dentro de un directorio crea un fichero docker-compose.yml para realizar el despliegue de nextcloud con una base de datos. Recuerda las variables de entorno y la persistencia de información.
    mkdir nextcloud
    cd nextcloud
    nano docker-compose.yml
    

Dentro del fichero docker-compose.yml debes definir los siguientes servicios:

        version: '3.7'
        services:
          nextcloud:
            image: nextcloud:latest
            container_name: nextcloud
            restart: always
            ports:
              - 8080:80
            volumes:
              - nextcloud:/var/www/html
            environment:
              - MYSQL_HOST=mariadb
              - MYSQL_DATABASE=nextcloud
              - MYSQL_USER=nextcloud
              - MYSQL_PASSWORD=admin
              - MYSQL_ROOT_PASSWORD=nextcloud
          db:
            image: mariadb:latest
            container_name: nextcloud-db
            restart: always
            volumes:
              - nextcloud-db:/var/lib/mysql
            environment:
              - MYSQL_DATABASE=nextcloud
              - MYSQL_USER=nextcloud
              - MYSQL_PASSWORD=admin
              - MYSQL_ROOT_PASSWORD=nextcloud
        volumes:
            nextcloud:
            nextcloud-db:
            
  • Levanta el escenario con docker-compose.
    docker-compose up -d
    

1

  • Muestra los contenedores con docker-compose.
    docker-compose ps
    

2

  • Accede a la aplicación y comprueba que funciona.
    http://localhost:8080
    

3

  • Comprueba el almacenamiento que has definido y que se ha creado una nueva red de tipo bridge.
    docker volume ls
    docker network ls
    

4

  • Borra el escenario con docker-compose.
    docker-compose down
    

5

6