En un host Debian-Stretch (conectado a una LAN física) tengo una nueva instalación de docker (v18.09) con un contenedor de base de datos (puerto asignado al host) y ejecuto KVM/libvirt con algunas máquinas virtuales Debian-Stretch. Puedo acceder al contenedor de la ventana acoplable y a las máquinas virtuales desde la LAN (dependiendo de la configuración a través del túnel SSH o directo), pero tengo problemas para acceder al contenedor de la ventana acoplable desde las máquinas virtuales.
# brctl showbridge name bridge id STP enabled interfacesbr-f9f3ccd64037 8000.0242b3ebe3a0 no docker0 8000.024241f39b89 no veth35454acvirbr0 8000.525400566522 yes virbr0-nic
Después de leer durante días, encontré una solución muy convincente en esta publicación Docker y KVM con puente (original) que no llegué a trabajar. La solución sugiere iniciar docker con un demonio de configuración de una línea.código json para usar el puente KVM "predeterminado". Qué bonito sería! Hay alguna esperanza?
Probé dos configuraciones diferentes para la creación de redes entre las máquinas virtuales KVM. En ambos casos, la comunicación entre las máquinas virtuales y la LAN+el enrutador+la nube es impecable, pero simplemente no sé cómo superar la valla, hacia el césped más verde... :)
Conf 1-Puente predeterminado KVM con NAT: Puedo ssh al host Debian y acceder al puerto del contenedor docker, pero ¿hay una configuración con una ruta directa?
Conf 2-adaptador macvtap en modo Puente a la LAN: No puedo hacer ping a la IP de la LAN del host desde la máquina virtual, aunque ambas están conectadas al mismo enrutador. La respuesta de la propia máquina virtual es Destination Host Unreachable
. ¿Alguna idea de por qué?
¿Sería mejor ejecutar el demonio docker en una máquina virtual separada en lugar de directamente en el host Debian? De esta forma, tanto el contenedor como la máquina virtual podrían acceder al puente KVM predeterminado. Pero pensé que es un poco extraño ejecutar docker en una máquina virtual en un host KVM.
Cualquier orientación clara sería apreciada!
Por cierto, el puente br-f9f3ccd64037
es un puente definido por el usuario que creé con docker para futuras comunicaciones entre contenedores. No se utiliza.
Actualizar:
Me acabo de dar cuenta de que con la primera configuración simplemente puedo conectarme al contenedor docker por su dirección IP (172.17.0.2) desde los invitados de la máquina virtual.
Mi configuración inicial fue la segunda configuración porque quería RDP en las máquinas virtuales, lo cual es más fácil ya que el controlador macvtap conecta las máquinas virtuales directamente a la LAN y no se necesita un enlace SSH. Fue entonces cuando no pude alcanzar el contenedor.