Ejecutar Docker en VPC y acceder al contenedor desde otra máquina VPC

10

Tengo problemas al ejecutar Docker en AWS VPC.

Aquí está mi configuración: tengo dos máquinas ejecutándose en VPC:

  • 10.0.100.150
  • 10.0.100.151

ambos tienen una IP elástica asignada, ambos se ejecutan en la misma subred habilitada para Internet.

Digamos que estoy ejecutando un servidor web que sirve archivos estáticos en un contenedor en la máquina 10.0.100.150 del contenedor:

  • IP: 172.17.0.2
  • el puerto 8111 se reenvía en el puerto 8111 de la máquina.

Estoy tratando de acceder a los archivos estáticos desde mi máquina local (u otra máquina que no es VPC también probó una instancia EC2 que no se ejecuta en la VPC) y funciona sin problemas.

Si intento acceder a los archivos desde la otra máquina (10.0.100.151) se cuelga. Estoy usando wget para extraer los archivos.

Intenté depurarlo con tcpdump y ngrep y lo que he visto es que la solicitud llega al contenedor. Si ngrep en la máquina host veo las solicitudes entrando pero no hay respuesta regresando. Si me encuentro en el contenedor, veo que las solicitudes entran y la respuesta regresa.

Probé varias configuraciones de iptables (con postrouting habilitado, con puertos de reenvío manuales, etc.) pero no tuve éxito.

Ayuda de cualquier manera, incluso las instrucciones de depuración serían muy apreciadas.

¡Gracias!

Bogdan Gaza
fuente
Posible duplicado de exponer contenedores acoplables a la red VPC
Michael - sqlbot
Lea la publicación dos veces con exponer los contenedores acoplables a la red VPC, pero eso es totalmente diferente.
Bogdan Gaza
¿Lo es? ¿Ya tiene desactivada la verificación de IP de origen / destino en 10.0.100.150?
Michael - sqlbot
Sí, lo tengo deshabilitado y también probé en otra VPC no predeterminada, el mismo error.
Bogdan Gaza
¿Puede enumerar los grupos de seguridad para las instancias EC2? Esto parece que las instancias no están en el grupo de seguridad predeterminado para permitir el tráfico entre otras instancias en ese grupo de seguridad.
Andy Shinn

Respuestas:

2

Configurar una red de contenedores es mucho más fácil con weave . Para obtener más instrucciones específicas de AWS, eche un vistazo al blog del proyecto .

desarrollador de errores
fuente
Descargo de responsabilidad: formo parte del equipo de Weaveworks, Inc.
errordeveloper
0

Esto parece que las instancias de EC2 no pueden comunicarse entre sí porque no están en un grupo de seguridad que permita el acceso del puerto 8111 entre sí. Verifique para asegurarse de que el grupo de seguridad permita el acceso a sí mismo (y agregue ambas instancias EC2 al grupo de seguridad) o que permita que la subred VPC acceda al puerto 8111.

Andy Shinn
fuente