Skip to main content

Docker: Escenarios multicontenedor en Docker

Despliegue de Nextcloud

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

1.- Instala docker-compose en tu ordenador.

sudo apt install docker-compose

2.- 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_docker
cd nextcloud_docker
nano docker-compose.yml
 version: '3.7'
services:
nextcloud:
image: nextcloud:latest
container_name: nextcloud
restart: always
ports:
- 8080:80
volumes:
- nextcloud:/var/www/html
environment:
- MYSQL_HOST=nextcloud-db
- 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:

3.- Levanta el escenario con docker-compose.

docker-compose up -d

4.- Muestra los contenedores con docker-compose.

docker-compose ps

*Nota: Tenemos que estar en el directorio y hay que darle permisos al usuario para que pueda ejecutar docker-compose sin sudo:

sudo usermod -aG docker $USER
newgrp docker

DOCKER

5.- Accede a la aplicación y comprueba que funciona.

DOCKER

6.- Comprueba el almacenamiento que has definido y que se ha creado una nueva red de tipo bridge.

docker network ls docker volume ls

DOCKER

7.- Borra el escenario con docker-compose.

docker-compose down -v

DOCKER

*Nota: Habría que borrar también los volúmenes y la red creada si queremos borrar todo:

docker volume rm nextcloud_docker_nextcloud nextcloud_docker_nextcloud-db
docker network rm nextcloud_docker_default

Entrega

1. Contenido del fichero docker-compose.yml.

 version: '3.7'
services:
nextcloud:
image: nextcloud:latest
container_name: nextcloud
restart: always
ports:
- 8080:80
volumes:
- nextcloud:/var/www/html
environment:
- MYSQL_HOST=nextcloud-db
- 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:

2. Instrucción para levantar el escenario con docker-compose.

docker-compose up -d

3. Instrucción para ver los contenedores con docker-compose.

docker-compose ps

4. Pantallazos accediendo a nextcloud para comprobar que funciona de manera correcta.

DOCKER

5. Comprobación del almacenamiento que has definido y que se ha creado una nueva red de tipo bridge.

docker network ls
docker volume ls

DOCKER

6. Instrucción para borrar el escenario con docker-compose.

docker-compose down -v

DOCKER