Intruduccion
Atencion
Esto no es un curso de docker, si no le sabes chinga tu madre con todo el afan de ofender y revisa la siguiente documentación
Documentacion:
- Curso de docker que quizas deberias ver: Aprende Docker Ahora
- Comandos de uso comun en Docker: Comandos comunes en Docker
Problematicas
Problema 1. Acceder a tus servicios fuera de tu area local
Actualmente puedes acceder a los servicios que montes sobre los puertos de tu servidor en area local pero si tu quieres poder acceder a tus servicios apagando el wifi de tu celular y encendiendo los datos (desde afuera de tu harea local) te encontraras con que no puedes ingresar. Esto sucede porque ip-local no es la mimsa que la ip publicano proveida por tu provedor de internet.
Solucion 1. 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 publica.
Cabe resaltar que no todas las compañias te dejan la posibilidad de habrir 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 tendras que conseguir tu ip publica la cual tiene el incombeniente en muchos casos de ser dinamica, esto implica que cambiara con el tiempo pero nos da suficiente tiempo para trabajar con ella. Podras acceder a tus recursos locales poniendo la ip-public:puerto. siempre y cuando redirijas los puertos como mencione anteriormente.
Problematica 2. Una ip cambiante
Como mencionamos, los distribuidores de internet pueden darte una ip publica dinamica. Imaginemos que montas un servico en tu servidor y tienes una app que la consume, tuviste que meter tu ip publica y esta queda guardada en la app. Posteriromente tu ip cambia, tendras 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 dispositivos
Solucion 2. Servicios DDNS
para solucionar este problema usaremos un servicio DDNS, este servicio nos otorgara un nombre en la web, como ejemplo.com. Tu provedor 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.
Problematica 3. Multiples servicios sobre un mismo puerto
Imaginemos que tu tienes un servicio o pagina web la cual quieres exponer a internet, los navegadores al intentar intentar acceder a una pagina por el puerto 80 (puerto inseguro) o 443 (puerto para paginas con certificado SSL) y esta es la razon de porque no vemos url con el siguiente formato formato https://www.google.com:443, entonces montaremos nuestra pagina sobre el puerto 80 o 443 443
Imaginemos que tienes 2 aplicaciones y ambas tiene certificado SSL, no podras montar ambas paginas en el puerto 443 por lo que tendras que abrir otro puerto del modem y solo podras llamarlo con una url como la siguiente siguiente https://www.google.com:444 ya que el modem solo puede asignar un puerto de un despositivo a un puerto del modem.
Solucion 3. Proxy Inverso
Para montar multiples aplicaciones sobre un puerto podemos usar un servicio de proxy inverso como el de Ng Proxy Manager, este servicio se basa en tener un dominio con sub dominos, por ejemplo tu dominio puede ser duckdns.org y para agregar un subdominio agregarias un nombre seguido de un punto y tu dominio, myserver.duckdns.org.
Todos los subdominio apuntan realmente a la misma ip publica pero Ng Proxy Manager puede redirigir a diferentes aplicaciones mediante los diferentes nombres de subdomino. estp te pemite tener montado multiples servicios sobre un mimsmo puerto.
