Ubuntu 启用docker容器之间的广播
我一直在尝试在几个容器之间启用一些UDP发现。 它已调出默认情况下容器已禁用广播,在以下位置缺少inet的brd:Ubuntu 启用docker容器之间的广播,ubuntu,docker,ubuntu-12.04,docker-networking,Ubuntu,Docker,Ubuntu 12.04,Docker Networking,我一直在尝试在几个容器之间启用一些UDP发现。 它已调出默认情况下容器已禁用广播,在以下位置缺少inet的brd: $ip地址显示开发eth0 27:eth0:mtu 1500 qdisc noqueue状态为UP 链接/以太00:00:01:4f:6a:47 brd ff:ff:ff:ff:ff:ff:ff:ff inet 172.17.0.12/16范围全局eth0 永远有效\u lft首选\u lft永远有效 堆栈: 主机:ubuntu 14.04 容器:ubuntu 12.04 do
$ip地址显示开发eth0
27:eth0:mtu 1500 qdisc noqueue状态为UP
链接/以太00:00:01:4f:6a:47 brd ff:ff:ff:ff:ff:ff:ff:ff
inet 172.17.0.12/16范围全局eth0
永远有效\u lft首选\u lft永远有效
堆栈:
- 主机:ubuntu 14.04
- 容器:ubuntu 12.04
- docker 1.8.3
给出ip链接集dev eth0 broadcast 172.17.255.255
RTNETLINK答案:无效参数
- 与--特权容器相同
- 与NET_管理和NET_广播容器功能相同
docker compose.yml
:
version: '3.4'
services:
master-cat:
image: alpine
command: nc -l -u -p 6666
slave-cat:
image: alpine/socat
depends_on:
- master-cat
entrypoint: ''
command: sh -c "echo 'Meow' | socat - UDP4-DATAGRAM:255.255.255.255:6666,so-broadcast"
使用docker compose up
将在主猫上显示喵喵叫(原文如此!)
如果您想在多台主机上使用广播,这在docker附带的默认网络插件中是不可能的。->。但是一个更复杂的覆盖网络插件,比如应该可以工作(我还没有测试过它…,正如你所说的,即使是docker 1.9,它仍然在等待中。是的,我正在订阅这张票。即使它是特定于多播的,但从其他用户的ipconfig结果来看,它似乎与广播有关?您是否考虑过使用诸如Concur、etcd或zookeeper之类的工具将服务发现作为一种功能添加到您的应用程序中?这些都很容易在码头上运行,避免了特权容器的需求,因为应用程序是C++,我不是C++开发人员,但实际上是在考虑通过单播来代理从容器A到容器B的广播,直到解决了DOCKER中的原始问题。虽然你提到的工具对于这样的任务来说太复杂了,但它们可能会在以后的其他问题上变得有用,所以谢谢你的建议。我会给这个答案+1,而不是+101,因为“在主猫身上显示喵喵”!!!