PRÁCTICA NEXTCLOUD-DOCKER SOLUCIÓN¶
Instalación Docker¶
Se realiza la instalación de Docker en una máquina virtual de Ubuntu 22.04 siguiendo el método Install using the repository
- Se realiza un actualización y se instalan los paquetes necesarios para usar el repositorio sobre HTTPS:
- Código para la actualización de paquetes:
sudo apt-get update
- Código para instalar los paquetes necesarios para usar el repositorio sobre HTTPS:
sudo apt-get install ca-certificates curl gnupg lsb-release
- Se añade la clave GPG oficial de Docker y el comando para configurar el repositorio:
- Código para los objetivos comentados en este punto:
sudo mkdir -p /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
- se realiza otra actualización:
- Código para la nueva actualización de paquetes, debido a la configuración realizada:
sudo apt-get update
- Resultado:
- Se Instala Docker Engine, containerd y Docker Compose:
- Código para la instalación de paquetes Docker:
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-compose-plugin
- Resultado:
- Comprobación que la instalación del motor Docker sea correcta ejecutando la imagen hello-world:
- Código para la comprobación de Docker, mediante la ejecución de un contenedor:
sudo docker run hello-world
Instalación contenedor NextCloud sin volumen persistente.¶
La instalación del contenedor se puede consultar en Imagen oficial NextCloud Docker Hub
- Se instala y ejecuta el contenedor:
- Código para la instalación NextCloud:
docker run -d -p 8080:80 nextcloud
- Resultado:
- Comprobación de instalación correcta del contenedor NextCloud:
- Se introduce en un navegador http://"IPmáquinaVirtual":8080 debe aparecer el inicio de NextCloud para crear una cuenta de administrador, como se muestra en la siguiente figura:
- Probamos a subir un archivo para ver donde se guardan:
- Se comprueba en el GUI de NextCloud que esta subido:
- Se comprueba en el bash del contenedor de NextCloud que esta subido:
- Si borramos el contenedor y lo volvemos a crear se comprueba que se ha perdido el fichero:
Instalación contenedor NextCloud con volumen persistente y red interna¶
-
Siguiendo los apuntes en el punto 3 se describen los volúmenes y la importancia de los mismos para salvaguardar los datos si el contenedor se corrompe, o incluso utilizarlo para un segundo contenedor de docker. El ejemplo 3.3 es una buena guía para realizar este punto.
-
Por lo tanto el código a ejecutar para que el volumen se llame "volNextCloud" podría ser:
sudo docker run -d --name nextcloud --ip 192.168.20.2 --mount type=volume,source=volNextCloud,target=/var/www/html/data -p 80:80 nextcloud
Comprobación NextCloud con volumen persistente¶
- Se sube un fichero como el caso anterior.
- Se comprueba que esta en el contenedor.
- Se borra el contenedor, se crea uno nuevo apuntando al volumen y se comprueba que el fichero perdura.
Network¶
- Se observa en el código del apartado anterior en el mismo comando se ha estado introduciendo la IP del enunciado. Para que dicha IP se refleje en el contenedor además debe existir una red creada previamente y apuntar a ella. en los siguientes pasos se muestra.
- Crear red:
sudo docker network create --driver=bridge --subnet=192.168.20.0/24 nextCloudNet
- Referenciamos contenedor a la red creada.
sudo docker run -d --name nextcloud --network nextCloudNet --ip 192.168.20.2 --mount type=volume,source=volNextCloud,target=/var/www/html/data -p 80:80 nextcloud
- Confirmamos la IP.
docker inspect -f '{{range.NetworkSettings.Networks}} {{.IPAddress}}{{end}}' CONTAINER_ID
Comprobación IP¶
- En la siguiente figura se muestra la comprobación de la red y la IP del contenedor: