Infrestructura de Servicios con Docker y Nginx Proxy Manager Este libro es para explicar toda la infrestrucura de redes necesaria para exponer multiples aplicaciones en la red Intruduccion Atención Esto no es un curso de Docker, si no le sabes chinga tu madre con todo el afán de ofender y revisa la siguiente documentación pa que aprendas. Documentación: Curso de Docker que quizás deberías ver: Aprende Docker Ahora Comandos de uso común en Docker: Comandos comunes en Docker   Abriendo tu servidor a la red Problemática Acceder a tus servicios fuera de tu área local Actualmente puedes acceder a los servicios que montes sobre los puertos de tu servidor en área local, pero si tú quieres poder acceder a tus servicios apagando el wifi de tu celular y encendiendo los datos (desde afuera de tu red local) te encontraras con que no puedes ingresar. Esto sucede porque ip-local no es la misma que la ip publicano entregada por tu proveedor de internet.  Solución. Apertura de puertos La forma de solucionar esto es abrir puertos en tu modem, los puertos son las salidas hacia internet, cada dispositivo tiene su propia red y sus puertos, lo que tenemos que hacer es redirigir el puerto de nuestro servidor al puerto del modem y posteriormente del modem hacia internet, este recurso puede ser alcanzado mediante la ip pública.  Cabe resaltar que no todas las compañías te dejan la posibilidad de abrir puertos de manera gratuita, te agregan este servicio mediante pagos extra, pero TELMEX actualmente proporciona este servicio incluido con el servicio de internet residencial. Como mencionamos tendrás que conseguir tu ip publica la cual tiene el inconveniente en muchos casos de ser dinámica, esto implica que cambiara con el tiempo, pero nos da suficiente tiempo para trabajar con ella. Podrás acceder a tus recursos locales poniendo la ip_publica:puerto . siempre y cuando redirijas los puertos como mencione anteriormente. Configurando el modem Conociendo la IP de tu Router (Servidor DHCP) Puedes conocer la ip de tu router mediante el comando  ip route Abriendo los puertos del modem Veras una salida como la anterior donde se señala  que la ip de mi modem Telmex es 192.168.1.254, ingresaremos esa ip en el navegador e ingresaremos al Router de tu proveedor de internet, veras una pagina donde te pedirá iniciar sesión, la contraseña está en tu modem En mi caso, dentro del modem me dirigiré a la pestaña Reglas de desvío   y posteriormente a Port Forwarding, le daré en agregar, le pondré un nombre representativo, pondré la IP de mi servidor donde indica Host Interno y abriré los puertos para exponer páginas web que son 80 y 443, en protocolo es suficiente con poner TCP y es más recomendable, pero puedes indicar ambos por si quisieras hacer otras cosas con esos puertos. Guardas los cambios y es toda la configuración del modem Servicio DDNS Introducción Problemática. Una ip cambiante Como mencionamos, los distribuidores de internet pueden darte una ip publica dinámica. Imaginemos que montas un servicio en tu servidor y tienes una app que la consume, tuviste que meter tu ip publica y esta queda guardada en la app. Posteriormente tu ip cambia, tendrás que cambiar tu ip en la app. Imaginemos ahora que tienes 100 dispositivos que apuntan a la ip, se vuelve un trabajo enorme tener que estar cambiando la ip en todos los dispositivos  Solución. Servicios DDNS Para solucionar este problema usaremos un servicio DDNS, este servicio nos otorgara un nombre en la web, como ejemplo.com. Tu proveedor DDNS le asignara a este nombre una ip, cuando la ip cambie bastara con cambiar tu ip publica en el servidor DDNS para que continue redirigiendo hacia tu modem.  En esta documentación usaremos DuckDns para el servicio DDNS. Cabe resaltar que existen otros servicios DDNS como los proporcionados por cloudFlare o noip pero de momento nos enfocaremos en explicar el proceso de usar DuckDNS para fines educativos y te invito a usar otros servicios DDNS después. Creación de un dominio con DuckDNS Ingresaremos a DuckDNS y luego crearemos un dominio, automáticamente se pondré tu ip publica actual, en caso de que no lo haga busca tu ip publica e ingrésala. Cuando termines veras algo así: http://tuDominio.duckdns.org Recuerda almacenar el valor token porque lo necesitaremos mas adelante. Instalando docker Agregando las key GPG oficiales de Docker  Para instalar Docker por primera vez vamos a agregar el repo de Docker  Ubuntu # Add Docker's official GPG key: sudo apt update sudo apt install ca-certificates curl sudo install -m 0755 -d /etc/apt/keyrings sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc sudo chmod a+r /etc/apt/keyrings/docker.asc # Add the repository to Apt sources: sudo tee /etc/apt/sources.list.d/docker.sources <