Link Search Menu Expand Document

Ejemplo 1: Contenedor nextcloud con almacenamiento persistente

Vamos a desplegar un contenedor con nextcloud, para simplificar la instalación vamos a realizar la instalación con una base de dato SQLite. Si estudiamos la documentación de la imagen nextcloud en Docker Hub, la forma más sencilla de no perder la información es crear un volumen para guardar el directorio /var/www/html del contenedor. Vamos a realizar el ejercicio usando volúmenes docker y bind mount.

Ejemplo con volúmenes

Creamos un volumen:

$ docker volume create nextcloud
nextcloud

Y creamos el contenedor, guardando el directorio /var/www/html del contenedor en el volumen creado:

$ docker run -d -p 80:80  -v nextcloud:/var/www/html --name contenedor_nextcloud nextcloud

Comprobamos que podemos acceder, terminamos de configurar la aplicación y una vez operativa subimos un ficheros a la aplicación:

nextcloud

A continuación eliminamos el contenedor y creamos uno nuevo con el mismo volumen:

$ docker rm -f contenedor_nextcloud

$ docker run -d -p 80:80  -v nextcloud:/var/www/html --name contenedor_nextcloud nextcloud

Accede de nuevo a la aplicación comprueba que la aplicación sigue configurada y que los ficheros subidos no se han perdido.

Ejemplo con bind mount

En este caso, vamos a crear un directorio en nuestro ordenador, que es el que vamos a montar en el contenedor:

mkdir datos_nextcloud

Y creamos el contenedor con la siguiente instrucción:

docker run -d -p 80:80 -v /home/vagrant/datos_nextcloud:/var/www/html --name contenedor_nextcloud nextcloud

Volvemos a acceder, configuramos la aplicación y subimos algún fichero. Usando bind mount tenemos acceso al directorio:

$ cd datos_nextcloud/
~/datos_nextcloud$ ls
3rdparty  COPYING  config       core      custom_apps  index.html  lib  ocm-provider  ocs-provider  remote.php  robots.txt  themes
AUTHORS   apps     console.php  cron.php  data         index.php   occ  ocs           public.php    resources   status.php  version.php

Podemos comprobar que al eliminar el contenedor y crearlo de nuevo usando el mismo directorio bind mount, toda la configuración y los ficheros subidos no se han perdido.