tag run library images hub example dockers container docker udp

run - dockers images



De forma predeterminada, ¿puede un contenedor acoplador llamar al host local del host UDP? (1)

Tengo un contenedor acoplable y también instalé en la máquina virtual un daemon que escucha UDP en el puerto 8125. El contenedor envía datos con el protocolo UDP en este puerto 8125.

Estaba tratando de abrir el puerto iniciando el contenedor con el -p 8125:8125/udp , pero aparece el siguiente error:

Error starting userland proxy: listen udp 0.0.0.0:8125: bind: address already in use

Lo cual tiene sentido porque el daemon ya está escuchando en este puerto.

Entonces, ¿cómo puedo configurar Docker para que el contenedor pueda enviar cargas UDP al daemon externo?


La apertura de puertos solo se necesita cuando desea escuchar las solicitudes que no se envían. De forma predeterminada, Docker proporciona el espacio de nombres de red necesario para que su contenedor se comunique con el servidor o el mundo exterior.

Entonces, podrías hacerlo de dos maneras:

  1. use --net host en su --net host docker run y envíe solicitudes a localhost:8125 en este caso su aplicación contenerizada está compartiendo efectivamente la pila de red del host. Entonces localhost apunta al daemon que ya se está ejecutando en su host.

  2. hable con la puerta de enlace de la red del contenedor (que generalmente es 172.17.0.1 ) o el nombre del host de su contenedor. Entonces puede enviar paquetes a su daemon en su host.