Hero Image
Taller 1: Almacenamiento y redes en Docker

Taller 1: Almacenamiento y redes en Docker Almacenamiento Trabajaremos con volúmenes de Docker: Crea un volumen de Docker llamado miweb. javiercruces@docker:~$ docker volume create miweb miweb Crea un contenedor a partir de la imagen php:7.4-apache, montando el volumen creado en el directorio /var/www/html (que es el DocumentRoot del servidor proporcionado por esa imagen). javiercruces@docker:~$ docker run -d --name my-apache-app -v miweb:/var/www/html -p 8080:80 php:7.4-apache Utiliza el comando docker cp para copiar un archivo index.html (que contenga tu nombre) en el directorio /var/www/html. javiercruces@docker:~$ echo "<h1>Javier Cruces</h1>" > index.html javiercruces@docker:~$ docker cp index.html my-apache-app:/var/www/html/ Successfully copied 2.05kB to my-apache-app:/var/www/html/ Accede al contenedor desde el navegador para ver la información del archivo index.html. javiercruces@docker:~$ curl http://localhost:8080 <h1>Javier Cruces</h1> Elimina el contenedor javiercruces@docker:~$ docker rm -f my-apache-app my-apache-app Crea un nuevo contenedor y monta el mismo volumen que en el ejercicio anterior. javiercruces@docker:~$ docker run -d --name Taller1 -v miweb:/var/www/html -p 8080:80 php:7.4-apache 9edd4b2dd2499f923090ce6a246e44db136f162528a51f84ddb33659503bafd7 Accede al contenedor desde el navegador para ver la información del archivo index.html. ¿Sigue existiendo el archivo? javiercruces@docker:~$ curl http://localhost:8080 <h1>Javier Cruces</h1> Trabajaremos con bind mounts:

Hero Image
Taller 2: Escenarios multicontenedor en Docker

Taller 2: Escenarios multicontenedor en Docker Despliegue de Nextcloud Vamos a desplegar la aplicación Nextcloud con una base de datos (puedes elegir MariaDB o PostgreSQL) utilizando Docker Compose. Puedes tomar como modelo el archivo docker-compose.yml que hemos estudiado para desplegar WordPress. Instala Docker Compose en tu equipo. Crea un archivo docker-compose.yml dentro de un directorio para realizar el despliegue de Nextcloud con una base de datos. Recuerda configurar las variables de entorno y la persistencia de la información. javiercruces@docker:~/taller2$ cat docker-compose.yaml version: '2' volumes: nextcloud: db: services: db: image: mariadb:10.6 restart: always command: --transaction-isolation=READ-COMMITTED --log-bin=binlog --binlog-format=ROW volumes: - db:/var/lib/mysql environment: - MYSQL_ROOT_PASSWORD=root - MYSQL_PASSWORD=javiercruces - MYSQL_DATABASE=nextcloud - MYSQL_USER=nextcloud app: image: nextcloud restart: always ports: - 8081:80 links: - db volumes: - nextcloud:/var/www/html environment: - MYSQL_PASSWORD=javiercruces - MYSQL_DATABASE=nextcloud - MYSQL_USER=nextcloud - MYSQL_HOST=db Levanta el escenario utilizando docker compose up -d. javiercruces@docker:~/taller2$ docker compose up -d [+] Running 2/2 ✔ Container taller2-db-1 Started 0.0s ✔ Container taller2-app-1 Started 0.0s Muestra los contenedores activos con docker compose ps. javiercruces@docker:~/taller2$ docker compose ps NAME IMAGE COMMAND SERVICE CREATED STATUS PORTS taller2-app-1 nextcloud "/entrypoint.sh apache2-foreground" app 7 minutes ago Up 5 minutes 0.0.0.0:8081->80/tcp, :::8081->80/tcp taller2-db-1 mariadb:10.6 "docker-entrypoint.sh --transaction-isolation=READ-COMMITTED --log-bin=binlog --binlog-format=ROW" db 7 minutes ago Up 5 minutes 3306/tcp Accede a la aplicación mediante el navegador y comprueba que funciona correctamente.