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

Creación de Services en kubernetes

Los servicios en Kubernetes permiten a otros pods o al usuario acceder al servicio que ofrece otro pod.

Leer

Ejecutar un pipeline de Jenkins con cada actualización de un repositorio

Para que Jenkins ejecute un pipeline cada vez que se actualice un repositorio git se pueden establecer varias configuraciones diferentes. En este caso, se incluye el Jenkinsfile en el repositorio de GitHub.

Leer

Configuración de ACL en routers Cisco

Las ACL o listas de control de acceso son un mecanismo que permite controlar el tráfico que atraviesa en router en una red. En este post se demuestra el funcionamiento de las ACL en los routers Cisco con un escenario basado en los personajes de la saga “Los juegos del hambre”.

Leer