Skip to main content

Docker Compose

docker_compose.png

Docker Compose es una utilidad de Docker que nos ayuda a la hora de crear múltiples contenedores Docker al mismo tiempo. A diferencia de Docker Cli este no hay que crearlo directamente en la terminal, sino que se crea un archivo .yml que es más fácil de ser modificado y configurado que en la propia terminal. Una vez creado solo se tiene que ejecutar un comando por terminal que comprobará el archivo e instalara y configurara lo que le hemos descrito en el mismo.

Creación de WordPress por Docker Cli

Primero se crea el Docker de la base de datos.

docker create \
  --name=mariadb \
  --net=lsio \
  -e PUID=1000 \
  -e PGID=1000 \
  -e MYSQL_ROOT_PASSWORD=mariadbpassword \
  -e TZ=Europe/London \
  -e MYSQL_DATABASE=WP_database \
  -e MYSQL_USER=WP_dbuser \
  -e MYSQL_PASSWORD=WP_dbpassword \
  -v /home/aptalca/appdata/mariadb:/config \
  --restart unless-stopped \
  lscr.io/linuxserver/mariadb

Y de la misma forma que la base de datos tendremos que crear el contenedor donde irá instalado la aplicación de WordPress.

docker create \
  --name=swag \
  --cap-add=NET_ADMIN \
  --net=lsio \
  -e PUID=1000 \
  -e PGID=1000 \
  -e TZ=Europe/London \
  -e URL=linuxserver-test.com \
  -e SUBDOMAINS=wildcard \
  -e VALIDATION=dns \
  -e DNSPLUGIN=cloudflare \
  -p 443:443 \
  -p 80:80 \
  -v /home/aptalca/appdata/swag:/config \
  --restart unless-stopped \
  lscr.io/linuxserver/swag

Una vez creadas los dos contenedores los tendremos que poner en la misma red de docker para que se puedan comunicar. Y pos ultimo dentro del segundo contenedor creado tendermos que instalar Wordpress:

wget https://wordpress.org/latest.tar.gz
tar xvf latest.tar.gz -C /home/aptalca/appdata/swag/www/
rm latest.tar.gz

Creado con Docker Compose

---
version: "2.1"
services:
  mariadb:
    image: lscr.io/linuxserver/mariadb
    container_name: mariadb
    environment:
      - PUID=1000
      - PGID=1000
      - MYSQL_ROOT_PASSWORD=mariadbpassword
      - TZ=Europe/London
      - MYSQL_DATABASE=WP_database
      - MYSQL_USER=WP_dbuser
      - MYSQL_PASSWORD=WP_dbpassword
    volumes:
      - /home/aptalca/appdata/mariadb:/config
    restart: unless-stopped
  swag:
    image: lscr.io/linuxserver/swag
    container_name: swag
    cap_add:
      - NET_ADMIN
    environment:
      - PUID=1000
      - PGID=1000
      - TZ=Europe/London
      - URL=linuxserver-test.com
      - SUBDOMAINS=wildcard
      - VALIDATION=dns
      - DNSPLUGIN=cloudflare
    volumes:
      - /home/aptalca/appdata/swag:/config
    ports:
      - 443:443
      - 80:80
    depends_on:
      - mariadb
    restart: unless-stopped

A diferencia de Docker Cli, en Docker Compose se pude hacer todo en el mismo archivo y despues ejecutarlo en terminal 

docker-compose up -d

Una vez el docker esta creado, si se modifica el archivo se tendra que crear los docker de nuevo y prar eso esta el siguiente comando

docker-compose up -d --force-recreate

Puede ser creado y configurado en un editor de texto y despues trasladarlo al archivo .yml de nuestro server.

docker_compose_VSCode.png

Docker_Compose_terminal.png