|
|
@@ -4,7 +4,8 @@
|
|
|
##### Creación, instanciación y provisionamiento de contenedores docker.
|
|
|
|
|
|
En este documento se van a detallar las actividades que se han realizado paso por paso
|
|
|
-durante la realización de las tareas descritas en el guión de la práctica 2.
|
|
|
+durante la realización de las tareas descritas en el guión de la práctica 2, este documento
|
|
|
+siempre es accesible desde su [repositorio en Gogs](https://makefile.es:3000/okynos/Practica2CC2).
|
|
|
|
|
|
|
|
|
### Paso 1 - Descripción general de despliegue de contenedores
|
|
|
@@ -52,4 +53,33 @@ exit
|
|
|
Con el vi modificamos la linea de acceso a la base de datos cambiando docker.ugr.es:15035 por hadoop.ugr.es:14037 que es el puerto que le asignamos a nustro contenedor con mongo.
|
|
|
Tambien editamos el fichero de congifuración de nginx para añadir la lectura de phpy el fichero pho.ini y le añadimos extension=mongo.so.
|
|
|
Con esto ya tendríamos configurada la parte de nginx en la que se muestra nestro index con acceso a la base de datos pero la base de datos todavia no se ha configurado vamos a pasar a ello
|
|
|
-Nos conectamos a nuestro contenedor o directamente desde una aplicación externa como compass a nuestra base de datos mongo y replicamos la base de datos que teníamos en la practica anterior y podemos observar como nuestro servidor http se conecta a nuestro servicio mongodb.
|
|
|
+Nos conectamos a nuestro contenedor o directamente desde una aplicación externa como compass a nuestra base de datos mongo y replicamos la base de datos que teníamos en la practica anterior y podemos observar como nuestro servidor http se conecta a nuestro servicio mongodb y que todo funciona correctamente.
|
|
|
+
|
|
|
+Hemos usado un contenedor con ubuntu ya que al probar alpine y otros contenedores con nginx no incluian alguno de los plugins de php o no tenían forma de agregar la extensión de mongo en php, por lo tanto hemos escogido una imagen estandar que contiene todas las herramientas y realizamos el mismo proceso que en OpenNebula.
|
|
|
+
|
|
|
+Este sería el aspecto de nuestra aplicación como en la práctica anterior:
|
|
|
+
|
|
|
+
|
|
|
+### Paso 3 - Instanciando nuestro contenedor NextCloud
|
|
|
+La instalación y despliegue del contenedor de nextcloud (análogo a owncloud) es muy sencillo y rápido debido a que ya viene preparado y configurado completamente para funcionar, aún así nos hemos complicado un poco la instalación ya que la base de datos que nos incorpora por defecto es sqlite y es un tanto ineficiente, es por ello que vamos a instalar un cuarto contenedor con una base de datos SQL llamada Postgres la cual funciona de manera similar a mysql, vamos a realizar los pasos para desplegar estas dos aplicaciones:
|
|
|
+
|
|
|
+```
|
|
|
+docker run --name PostgresOkynos -e POSTGRES_PASSWORD=NUESTRAPASS -d --restart=always -p 14039:5432 postgres
|
|
|
+docker run -d -p 14038:80 --restart=always --name NextCloudOkynos nextcloud
|
|
|
+```
|
|
|
+
|
|
|
+Tan sencillo como ejecutar estos dos comandos y tendremos funcionando nuestro servicio nextcloud, nos dirigimos a la dirección donde tenemos alojado [NextCloud](http://hadoop.ugr.es:1438) y en ella se nos mostraría si es la primera vez que lo ejecutamos la pantalla de instalación en la que debemos definir el usuario administrador, su contraseña y tenemos la opción de definir la base de datos para ello seleccionamos postgres y le damos los parámetros necesarios los cuales pueden ser como los siguientes:
|
|
|
+
|
|
|
+```
|
|
|
+Usuario: postgres
|
|
|
+Clave: NUESTRACLAVE
|
|
|
+Nombre de la BD: nextcloud
|
|
|
+Dirección: http://hadoop.ugr.es:14039
|
|
|
+```
|
|
|
+
|
|
|
+Y al darle a comenzar la instalación nos retornará a la pantalla principal donde se nos mostrarán los archivos que poseemos, adjuntamos aquí una captura:
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+### Paso 4 - Redundancia
|
|
|
+Aunque ya se ha podido observar en los comandos, a la pregunta si replicando contenedores se podría obtener una mejora respecto a la robustez es cierto que se podría mejorar si los contenedores se crean en nodos u ordenadores distintos con un balanceador de carga si un contenedor cayese funcionaria como si esa máquina hubiera caido y le mandaría el tráfico a los demás contenedores, aún así si el contenedor cae por algún fallo software, con la opción --restart=always nos estamos curando en ese tipo de errores ya que al caer el contenedor si la máquina no cae éste volverá a levantarse y a funcionar.
|