No se puede acceder a la aplicación implementada con Docker y Google Cloud

Actualmente tengo una máquina virtual Linux Debian configurada a través de Google Cloud Platform. Tengo instalado Docker y me gustaría comenzar a ejecutar contenedores de aplicaciones dentro de él.

Estoy siguiendo la documentation en el website de Docker. En la sección "Ejecución de una aplicación web en Docker", descargo la image y la ejecuto sin problemas. Luego ejecuto $sudo docker ps y obtengo el puerto que es 0.0.0.0:32768->5000/tcp

Luego trato de navegar al website en http: // "MyExternalVMIP": 32768 pero las aplicaciones no aparecen. ¿Me estoy perdiendo de algo?

Primero, testing para ver si tu service funciona en absoluto. Para hacer esto, desde la máquina virtual en sí, ejecute:

 wget http://localhost:32768 

o

 curl http://localhost:32768 

Si eso funciona, eso significa que el service está funcionando correctamente, así que vayamos más allá con la debugging.

Puede haber dos firewalls que están bloqueando el acceso externo a su process de docker:

  1. el firewall del sistema operativo de VM
  2. Firewall de Google Compute Engine

Puede ver si se ve afectado por el primer problema accediendo a la URL desde la propia máquina virtual y desde otra máquina virtual en la misma networking GCE (use el nombre de la máquina virtual en la dirección URL, no la dirección IP externa):

 wget http://[vm-name]:32768 

Para solucionar el primer problema, debe abrir el puerto único (recomendado):

 iptables -I INPUT -p tcp -s 0.0.0.0/0 --dport 32768 -j ACCEPT 

o deshabilitar el firewall por completo, por ejemplo, al detener iptables (no recomendado).

Si, después de corregir esto, puede acceder a la URL desde otro host en la misma networking GCE, pero aún no puede acceder desde fuera de Google Compute Engine, el segundo problema le afecta. Para solucionarlo, deberá abrir el puerto en el firewall GCE ; esto también se puede hacer a través de la interfaz de usuario web en Developers Console .