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

Instalación de un CMS Python usando Django

En este post se instala el CMS CMS-Django usando un entorno virtual.

Leer

Comandos básicos en Docker

En este post se muestran algunos de los comandos básicos para la creación y gestión de contenedores usando Docker

Leer

Uso básico de Wireshark

Wireshark es una herramienta que captura del tráfico que circula por una red y permite analizar el contenido de los paquetes que se envían y reciben desde las máquinas conectadas. Este software permite capturar los paquetes que viajan por una red, filtrarlos, y ver su contenido para poder analizar el tipo de tráfico del que se trata.

Leer