royB
royB

Reputation: 12977

sending udp broadcast from a docker container

I'm having a few docker containers (Using docker-compose and a single network - network-sol)

One of the containers is a Spring Boot application that sends UDP broadcast to the local network. 255.255.255.255 fails because It's the local broadcast address of network-sol

How can I broadcast UDP messages such as the "top local network" Will get those packets? Do i have to use directed broadcast address for that?

P.S

broadcast works if the application is deployed outside of docker (part of the local network

Upvotes: 19

Views: 9178

Answers (3)

TBC
TBC

Reputation: 43

  • use docker compose file
  • use bridge network
version: '3'
services:
  idhub-go:
    container_name: test
    image: 'nginx'
    ports:
      - "2641:2641/tcp"
      - "2641:2641/udp"

Upvotes: 0

SteinFlugel
SteinFlugel

Reputation: 35

I have gotten some luck out of this. The guide specifies sysctl parameters that are needed for broadcast forwarding from a docker network, you should then be able to either use his script or specify these parameters when running docker.

Upvotes: 0

jshbrntt
jshbrntt

Reputation: 5384

You should either run the service defined in your docker-compose.yml file with network_mode: host.

Alternatively you can publish the port of the container you intended to communicate with by publishing it using the following configuration. Note that the /udp is required for UDP communication to work.

service:
  ports:
    - "8080:8080/udp"

Upvotes: 7

Related Questions