jose-villar

Notes written in markdown

View on GitHub

Administración de Redes y Sistemas Computacionales

Tabla de Contenidos

  1. Clase - Docker
  2. Lab - Docker
  3. Clase - Docker2
  4. Lab - Docker2 (Ejercicio Práctico 1)
  5. Clase - Nat/Pat
  6. Clase - RAID
  7. Clase - Servicios DNS
  8. Clase - Introducción a la seguridad en redes de computadores
  9. [Proyecto Unidad 2 y 3][#proyecto-unidad-2-y-3]

Clase - Docker

Comandos

Actividades

Nota: También se puede descargar y ejecutar una imagen con un solo comando, ejemplo:

    sudo docker run docker/whalesay cowsay Hello!

Lab - Docker

Ejercicio 6

Ejercicio 7

Ejercicio 8

Ejercicio 9

Ejercicio 10

Cree un contenedor que ofrezca un servicio web, como puede ser apache2. Utilice como base la imagen de ubuntu. Una vez creada la imagen:

Clase - Docker2

Comandos de docker networking

    sudo docker network ls
    sudo docker network inspect <network name, eg. bridge>
    sudo docker run -it --network <network name> <image>
    sudo docker network connect <network name> <container to be connected>

Dockerfile

El Dockerfile siempre debe tener como nombre Dockerfile sin extensión. Ejemplo:

    FROM ubuntu:latest
    ARG DEBIAN_FRONTEND-noninteractive
    MAINTAINER Jose Villar
    RUN apt-get update && apt-get install -y apache2
    EXPOSE 80
    CMD /usr/sbin/apache2ctl -D FOREGROUND

Para ejecutar el Dockerfile se utiliza el siguiente comando:

    sudo docker build -t <username>/<nombreapp> <ruta del dockerfile>

Lab - Docker2 (Ejercicio Práctico 1)

Ejercicio 1

Cree una imagen que utilice como base la imagen de Ubuntu:20.04, e instale y configure los paquetes necesarios para instalar el servidor Web y PHP. Este proceso de instalación debe hacerlo a través de un archivo Dockerfile y el servidor web necesariamente deberá ser Nginx.

Este archivo brinda una información detallada de los servicios y configuraciones de PHP en su servidor.

Dockerfile
    FROM ubuntu
    ARG DEBIAN_FRONTEND=noninteractive
    MAINTAINER Jose Villar
    WORKDIR /var/www/html/

    RUN mkdir /data
    RUN apt-get update && apt-get install -y php-fpm php-mysql nginx neovim
    RUN echo "<?php \n  phpinfo();\n?>" > /var/www/html/phpinfo.php
    RUN sed -i "s/;cgi.fix_pathinfo=1/cgi.fix_pathinfo=0/g" /etc/php/7.4/fpm/php.ini
    RUN echo "server {listen 80 default_server;listen [::]:80 default_server;root /var/www/html;index index.php index.html index.htm index.nginx-debian.html;server_name NOMBRE;location / {try_files \$uri \$uri/ =404;}location ~ \.php$ {include snippets/fastcgi-php.conf;fastcgi_pass unix:/run/php/php7.4-fpm.sock;}location ~ /\.ht {deny all;}}" > /etc/nginx/sites-available/default
    RUN echo "<?php\n  echo 'José Villar <br> 2017407002'\n?>" > /var/www/html/index.php
    RUN cp index.php phpinfo.php /data

    VOLUME /data

    # Installing supervisor service and creating directories to copy supervisor configurations
    RUN apt-get -y install supervisor && mkdir -p /var/log/supervisor && mkdir -p /etc/supervisor/conf.d

    #ADD supervisor.conf /etc/supervisor.conf #copying config file from local to docker image
    COPY ./data/supervisor.conf /etc/

    CMD ["supervisord", "-c", "/etc/supervisor.conf"]

    EXPOSE 80
Supervisor
    [supervisord]
    user=root
    nodaemon=true
    logfile=/dev/null

    [program:php7.4-fpm]
    command = service php7.4-fpm start
    autostart=true
    autorestart=true

    [program:nginx]
    command=/usr/sbin/nginx -g "daemon off;"
    autostart=true
    autorestart=true

Ejercicio 2

En este ejercicio se necesita instalar Docker Compose para automatizar varios contenedores que se pueden ejecutar de manera independiente en nuestro servidor. Cree un archivo YAML, que se encargue de administrar todos los componentes necesarios para instalar y utilizar Wordpress. El proceso de instalación y configuración deberá incluir los siguientes elementos: • Utilice la imagen de Wordpress:latest disponible en Docker Hub, para crear un servidor Web. Enlace la imagen anterior con la última versión del gestor de base de datos MySQL.

Para resolver el ejercicio, basta con crear un archivo docker-compose.yml con el siguiente contenido:

     version: "3.8"
     services:
       webserver:
         image: wordpress:latest
         restart: always
         ports:
           - "9000:80"
         depends_on:
           - db
         links:
           - db
       db:
         image: mysql:latest
         environment:
           - MYSQL_ROOT_PASSWORD=1234
         restart: always

Docker Compose

    sudo docker-compose up
    sudo docker-compose stop
    sudo docker-compose down

    sudo docker volume list
    sudo docker-volume rm <volumeid>

Clase - Nat-Pat

Glosario

NAT

NAT básico

PAT

Tipos de NAT

A continuación se listan los principales tipos de NAT

NAT estático
NAT dinámico
NAT con sobrecarga (PAT overload)
NAT con sobrecarga y múltiples IP públicas

Nube Frame Relay

Clase - RAID

Niveles de RAID

Clase - Servicios DNS

Clase - Introducción a la seguridad en redes de computadores

Proyecto Unidad 2 y 3

    docker run -ti --name db-prestashop--mysql --network prestashop-net -e MYSQL_ROOT_PASSWORD=admin -p 3307:3306 -d mysql:5.7

    sudo docker exec -it a8 /bin/bash
    rm -r install/



    http://localhost:8080/admin968yrpmbr/index.php?controller=AdminDashboard&token=7aae70713670ad33197489c01d00dc7e

    a2enmod ssl
    service apache2 restart