As you said:The issue occurs because BACnet device addressing is tied to the network address. When a Docker container restarts with a new MAC address, the original subscription context is lost
Two solutions are available:
Bind to all interfaces instead of a specific IP.
Use the BBMD (BACnet Broadcast Management Device) approach.