Creación de un escenario con varios contenedores con docker compose

Índice

Para implantar una aplicación nextcloud en un contenedor docker conectada a otro contenedor con una base de datos MariaDB se puede usar un fichero docker compose para configurar el escenario.

El contenido de este fichero se escribe en formato yaml. En este caso, se definen los dos contenedores, uno para nextcloud y otro para MariaDB, así como el volumen para almacenar la información de la base de datos.

services:
  app:
    container_name: nextcloud
    image: nextcloud:latest
    restart: always
    environment:
      MYSQL_DATABASE: bd_nextcloud
      MYSQL_USER: user_nextcloud
      MYSQL_PASSWORD: asdasd
      MYSQL_HOST: mariadb
    ports:
      - 8080:80
    depends_on:
      - db
  db:
    container_name: mariadb
    image: mariadb:latest
    restart: always
    environment:
      MYSQL_DATABASE: bd_nextcloud
      MYSQL_USER: user_nextcloud
      MYSQL_PASSWORD: asdasd
      MYSQL_ROOT_PASSWORD: asdasd
    volumes:
      - mariadb:/var/lib/mysql
volumes:
  mariadb:

Para levantar el escenario con ambos contenedores y hacerlo, además, de forma desatendida se usa el comando docker compose up.

debian@docker:~/nextcloud$ docker compose up -d
[+] Running 4/4
 ✔ Network nextcloud_default   Created                                     0.1s 
 ✔ Volume "nextcloud_mariadb"  Created                                     0.0s 
 ✔ Container mariadb           Started                                     0.4s 
 ✔ Container nextcloud         Started                                     0.8s

La herramienta docker compose también permite realizar determinadas acciones sobre los contenedores que conforman un escenario. En este caso, por ejemplo, se pueden listar ambos contenedores.

docker compose ps

En concreto, en este fichero docker compose se configura, además, la creación de un volumen.

debian@docker:~$ docker volume ls
DRIVER    VOLUME NAME
...
local     nextcloud_mariadb

Y, como cualquier otro fichero docker compose, su ejecución genera también una red virutal de tipo bridge.

debian@docker:~$ docker network ls
NETWORK ID     NAME                DRIVER    SCOPE
...
f6167b095613   nextcloud_default   bridge    local

Cuando se terminan de utilizar los contenedores del escenario levantado a partir del fichero docker compose se pueden eliminar con el comando docker compose down. Al usar la opción -v se eliminan también los volúmenes creados al levantar el escenario con el fichero docker compose.

debian@docker:~/nextcloud$ docker compose down -v
[+] Running 4/4
 ✔ Container nextcloud        Removed                                      3.3s 
 ✔ Container mariadb          Removed                                     10.2s 
 ✔ Volume nextcloud_mariadb   Removed                                      0.0s 
 ✔ Network nextcloud_default  Removed                                      0.2s
comments powered by Disqus

Relacionados

Cómo crear una instancia basada en un volumen en OpenStack

OpenStack es un proyecto de cloud computing (computación en la nube) de software libre y código abierto. Ofrece una estructura como servicio (IaaS) y permite virtualizar equipos en los servidores en los que esté configurado. En este post se muestra, a través de un ejemplo práctico cómo se puede crear una instancia basada en un volumen en OpenStack y cómo se puede volcar el contenido de un sistema a un nuevo volumen con mayor capacidad de almacenamiento.

Leer

Implantación de aplicaciones web Python en Docker

Para implantar una aplicación Python en Docker se genera un entorno LAMP usando varios contenedores a través de un fichero docker-compose como se muestra en este post

Leer

Creación de política de grupo en Windows Active Directory

Una directiva de grupo es un conjunto de reglas que controlan el entorno de trabajo de cuentas de usuario y cuentas de equipo. La directiva de grupo permite gestionar y configurar de forma centralizada sistemas operativos, aplicaciones y configuración de los usuarios en un entorno de Directorio Activo.

Leer