Ваша проблема связана с попыткой дважды рекламировать один и тот же хост (один и тот же IP-адрес) с разных сетевых интерфейсов.
Когда запускается первый контейнер, Avahi объявляет через mDNS о вашем присутствии (например, «hostname.local. MDNS_IN A 192.168.0.10» и связанные _service._x.hostname.local SRV настройки).
Когда запускается второй контейнер, новый Avahi снова объявляет о своем присутствии через mDNS. Когда это происходит, первая Avahi будет жаловаться на аренду хоста / IP-адреса. Затем вторая Avahi попытается использовать другое имя хоста на случай, если это произошло из-за конфликта имен хостов.
Но это была не коллизия имени хоста, это была коллизия IP. Чтобы это работало, вам нужно иметь разные IP-интерфейсы для каждой службы.
То есть, назначьте несколько IP-адресов для вашего raspberry на разных виртуальных интерфейсах eth0, а затем привяжите каждый виртуальный интерфейс к отдельному контейнеру (и используйте разные имена хостов для каждой службы Docker).
Вам нужно будет иметь несколько IP-адресов в вашей подсети для Raspberry Pi, чтобы это работало.
Если вы намереваетесь использовать интерфейсы только для широковещательной передачи сервисов (а не для поиска других сервисов mDNS), вы можете добавить правило iptables, запрещающее многоадресный трафик между вашими собственными интерфейсами.