Hero Image
Taller 1: Almacenamiento y redes en Docker

Taller 1: Almacenamiento y redes en Docker Almacenamiento Vamos a trabajar con volúmenes docker: Crea un volumen docker que se llame miweb. javiercruces@docker:~$ docker volume create miweb miweb Crea un contenedor desde la imagen php:7.4-apache donde montes en el directorio /var/www/html (que sabemos que es el DocumentRoot del servidor que nos ofrece esa imagen) el volumen docker que has creado. 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 fichero index.html (donde aparece 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 ofrecida por el fichero index.html. javiercruces@docker:~$ curl http://localhost:8080 <h1>Javier Cruces</h1> Borra el contenedor javiercruces@docker:~$ docker rm -f my-apache-app my-apache-app Crea un nuevo contenedor y monta el mismo volumen como 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 ofrecida por el fichero index.html. ¿Seguía existiendo ese fichero? javiercruces@docker:~$ curl http://localhost:8080 <h1>Javier Cruces</h1> Vamos a trabajar con bind mount:

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 la aplicación docker-compose. Puedes coger cómo modelo el fichero docker-compose.yml el que hemos estudiado para desplegar WordPress. Instala docker-compose en tu ordenador. Dentro de un directorio crea un fichero docker-compose.yml para realizar el despliegue de nextcloud con una base de datos. Recuerda las variables de entorno y la persistencia de 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 con docker-compose. 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 con docker-compose. 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 y comprueba que funciona.