EXAMEN AVANZADO ############ Ejercicio 1: ############ # 1. Crear la carpeta del ejercicio y entrar en ella mkdir -p ~/ejer_1_Ferrer cd ~/ejer_1_Ferrer # 2. Crear la página index.html con tu nombre echo "contenido Ferrer" > index.html # 3. Crear la red personalizada red1_Ferrer con el direccionamiento pedido docker network create -d bridge --subnet 192.168.1.0/24 red1_Ferrer # 4. Levantar el contenedor apache (httpd) con bind mount (persistencia de carpeta local) docker run -d --name apache --network red1_Ferrer --mount type=bind,src=$(pwd)/index.html,dst=/usr/local/apache2/htdocs/index.html httpd:2.4 # 5. Crear un volumen para nginx llamado "web" docker volume create web # 6. Levantar el contenedor nginx con el volumen "web" docker run -d --name nginx --network red1_Ferrer --mount type=volume,src=web,dst=/usr/share/nginx/html nginx # 7. Modificar la página por defecto de Nginx: docker exec nginx bash -c 'echo "tunombre_nginx" > /usr/share/nginx/html/index.html' # 8. Parar los contenedores al terminar, como pide el enunciado docker stop apache nginx ############ Ejercicio 2: ############ # 1. Crear la carpeta del ejercicio y entrar en ella mkdir -p ~/ejer_2_Ferrer cd ~/ejer_2_Ferrer # 2. Crear el archivo index.php (usaremos un phpinfo básico para comprobar que funciona) echo "" > index.php # 3. Abrir gedit para crear el Dockerfile gedit dockerfile_ferrer & ### Pega exactamente este contenido dentro del editor de texto gedit, guárdalo y ciérralo: FROM debian RUN apt update && apt install -y apache2 libapache2-mod-php php COPY app/ /var/www/html/ EXPOSE 80 ENTRYPOINT ["apache2ctl"] CMD ["-D", "FOREGROUND"] ### Vuelve a la terminal y construye la imagen: # 4. Construir la imagen asignándole el nombre "php_ferrer" docker build -t dockerfile_ferrer . # 5. Levantar contenedor con la imagen del dockerfile docker run -d --name ferrer_php php_ferrer ############ Ejercicio 3: ############ # 1. Crear la carpeta del ejercicio 3 y entrar en ella mkdir -p ~/ejer_3_Ferrer cd ~/ejer_3_Ferrer # 2. Copiar todo el contenido del ejercicio 2 aquí (como pide el enunciado) cp -r ~/ejer_2_Ferrer/* . # 3. Abrir gedit para crear el archivo compose.yaml gedit compose.yaml & services: contenedor1: image: nginx ports: - "9091:80" volumes: - sobre:/usr/share/nginx/html networks: - red3_Ferrer depends_on: - contenedor2 # Garantiza que el contenedor 2 se lance antes contenedor2: build: . # Utiliza el Dockerfile copiado del Ejercicio 2 ports: - "8585:80" environment: - NOMBRE=Ferrer contenedor3: image: nginx ports: - "9093:80" networks: - red3_Ferrer volumes: sobre: networks: red3_Ferrer: driver: bridge ipam: config: - subnet: 192.168.10.0/24 gateway: 192.168.10.254 ###Vuelve a la terminal y arranca el entorno: # 4. Levantar todos los contenedores en segundo plano docker compose up -d # 5. Modificar la página por defecto para que tenga contenido: docker exec -it ejer_3_tunombre-contenedor1-1 bash -c 'echo "Página volumen ferrer" > /usr/share/nginx/html/index.html' # 6. Comprobar que están funcionando (haz captura de esto para LibreOffice) docker compose ps ################################# AWS Conexión SSH chmod 400 nombre-de-tu-clave.pem ssh -i nombre-de-tu-clave.pem ip-instancia SSH a traves del puerto 2222 ssh -i nombre-de-tu-clave.pem ip-instancia -p 2222 sudo nano /etc/ssh/sshd_config Port 2222 Instanncias > Seguridad > Grupo de seguridad > launch-wizard-1 - nueva regla TCP - 2222 0.0.0.0/0 Crear imagen Instancia > Acciones > Imagen y plantillas > Crear imagen a partir de una instancia Columna lateral AWS AMI > "Available" Borrar historial de la sesión actual (en memoria): history -c Borrar y sobrescribir el archivo de historial permanentemente: history -cw