嗨,我想让我的容器可以连接到所有的设备,不只是docker主机。 我的networking子网是9.158.143.0/24我的网关是9.1158.143.254我的docker主机IP是9.158.143.52主要接口(ens160)和我的容器IP是9.158.143.65docker的PID是docker进程IDdocker码是docker的IP我想使dockerconfiguration,使docker可以从我的networking中的任何地方访问(在我的情况下,SSH)。
到目前为止,
1)开始创build一个新的桥接设备。
brctl addbr br-em1
ip链接设置br-em1向上
2)将此设备添加到您的桥
3)configuration过去属于ens160的网桥
ip addr del 9.158.143.52/24 dev ens160
ip addr add 9.158.143.52/24 dev br-em1
4)将默认路由移动到网桥 – ip route del default – ip route add default通过9.158.143.254 dev br-em1
直到这一点,everthing的作品。 docker主机具有networking连接。
5)docker run -itd –name web ubuntu
6)创build一个veth接口对:
7)brctl addif br-em1 web-ext
8)并将web-int界面添加到容器的命名空间:
9)nsenter -t $(docker-pid web)-n ip link set web-int up
10)nsenter -t $(docker-pid web)-n ip addr add 9.158.143.65/24 dev web-int
直到现在veth被创build在docker集装箱内,互联网在集装箱内工作。
11)nsenter -t $(docker-pid web)-n ip route del default
12)nsenter -t $(docker-pid web)-n ip route添加默认通过9.158.143.254 dev web-int
以下是接下来的步骤。在最后2步之后,互联网停止使用容器。 我无法从networking中的任何其他机器(预先正在工作)ping泊坞窗主机。
有没有任何iptables规则需要添加这些步骤之外。 如果是这样,请帮忙。
PS:我的docker0 IP是172.17.0.1使用的链接: http ://blog.oddbit.com/2014/08/11/four-ways-to-connect-a-docker/(与Linux桥接设备)
使用的Ubuntu映像已经启动并运行了ssh服务。