Ejemplos reales de despliegues usando Docker Compose
En la actualidad la mayoría de los despliegues reales que se hacen con Docker, se realizan usando la herramienta Docker Compose, veamos algunos ejemplos:
Despliegue de Jitsi
Jitsi es una aplicación de videoconferencia, VoIP, y mensajería instantánea con aplicaciones nativas para iOS y Android, y con soporte para Windows, Linux y Mac OS a través de la web. Es compatible con varios protocolos populares de mensajería instantánea y de telefonía, y se distribuye bajo los términos de la licencia Apache, por lo que es software libre y de código abierto.
Podemos encontrar las instrucciones para desplegarlo con Docker en esta página:
-
Descargamos los ficheros del repositorio, descomprimimos el fichero zip y accedemos al directorio:
$ wget $(curl -s https://api.github.com/repos/jitsi/docker-jitsi-meet/releases/latest | grep 'zip' | cut -d\" -f4) $ unzip stable-9258 $ cd jitsi-docker-jitsi-meet-c92026a/
-
Utilizamos el fichero de variables globales para configurar la aplicación:
$ cp env.example .env
Tenemos que generar contraseñas dentro de este fichero ejecutando:
$ ./gen-passwords.sh
Además tenemos que indicar el parámetro
PUBLIC_URL
, que está comentado, con la URL que vamos a usar para acceder a la aplicación, por ejemplo:PUBLIC_URL=https://localhost:8443
-
Creamos los directorios donde vamos a guardar la información de la aplicación:
$ mkdir -p ~/.jitsi-meet-cfg/{web,transcripts,prosody/config,prosody/prosody-plugins-custom,jicofo,jvb,jigasi,jibri}
-
Levantamos el escenario y accedemos a la URL que hemos indicado anteriormente desde un navegador web:
$ docker compose up -d
Se crean 4 contenedores que corresponde a cuatro componentes de Jitsi:
web
: Jitsi Meet web UI, aplicación web servida por nginx.prosody
: Prosody, servidor XMPP.jicofo
: [Jicofo], el componente JItsi COnference FOcus.jvb
: Jitsi Videobridge, el enrutador de vídeo.
Despliegue de Guacamole
Apache Guacamole es un cliente (aplicación web HTML5) capaz de ofrecer funcionalidades para acceso remoto a servidores y otros equipos remotos desde cualquier parte solo con la ayuda de una conexión y un navegador web.
Podemos instalar Guacamole con docker y aunque en esa página no tenemos el fichero docker-compose.yml
podemos encontrar ejemplos de instalaciones de muchos usuarios en GitHub.
Las instrucciones que tenemos que ejecutar son las siguientes:
$ git clone https://github.com/boschkundendienst/guacamole-docker-compose.git
$ cd guacamole-docker-compose
$ ./prepare.sh
$ docker compose up -d
El sript prespare.sh
inicializa la base de datos PostgreSQL, y genera los certificados autofirmados que se van a usar para el acceso por https.
Si vemos el fichero docker-compose.yml
se van a crear cuatro contenedores:
guacd
: Es el demonio de Jitsi encargado de gestionar las conexiones remotas.PostgreSQL
: Base de datos donde vamos a guardar la información.Guacamole
: Es la aplicación web que utilizamos para gestionar las conexiones remotas.nginx
: Proxy inverso para acceder a la aplicación web.
Accedemos al la URL https://localhost:8443
para entrar en la aplicación. El usuario y la contraseña por defecto son guacadmin
.