在 Docker 容器内创建桥

Lou*_*is 6 bridge docker

我的计算机上运行着一个 docker 容器。我想在容器内使用一个程序,该程序需要有一个到虚拟网络接口的网络桥接器(容器和容器内运行的程序之间的桥接器)。

有关信息,容器正在使用网桥来访问网络(在容器和主机之间)。

容器有一个可以访问网络的 eth0 接口。我正在尝试创建一个桥接接口 br0 和一个虚拟接口 veth0。

为此,我正在编辑/etc/network/interfaces

auto eth0
iface eth0 inet dhcp

auto br0
iface br0 inet dhcp
pre-up ifconfig eth0 0.0.0.0 promisc
post-down ifconfig eth0 0.0.0.0 -promisc

pre-up ip tuntap add dev veth0 mode tap user louis
pre-up ifconfig veth0 0.0.0.0 promisc
post-down ip tuntap del dev veth0 mode tap

bridge_ports eth0 veth0
Run Code Online (Sandbox Code Playgroud)

然后,执行以下命令:

brctl addbr br0
ifconfig eth0 down && ifconfig eth0 up
ifconfig br0 up
service network-manager restart
Run Code Online (Sandbox Code Playgroud)

之后ifconfigbr0界面显示但不显示veth0。但是,当我在虚拟机中做同样的事情时,它veth0是存在的。

有关信息,容器使用--privileged选项运行。容器正在运行 Ubuntu 16.04,与我的主机相同。

我希望我已经提供了所有需要的信息,如果没有,请告诉我。