如何在Docker中针对不同的IP范围定制docker0?

时间:2015-07-13 14:07:52

标签: networking docker docker-networking

我指的是Docker Networking#docker0在Docker中自定义docker0虚拟网桥。

我的ifconfig显示了这一点:

docker0   Link encap:Ethernet  HWaddr d6:0d:76:37:ee:04  
          inet addr:172.17.42.1  Bcast:0.0.0.0  Mask:255.255.0.0
          inet6 addr: fe80::d40d:76ff:fe37:ee04/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:8 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:0 (0.0 B)  TX bytes:648 (648.0 B)

eth0      Link encap:Ethernet  HWaddr 08:00:27:51:e4:40  
          inet addr:10.0.2.15  Bcast:10.0.2.255  Mask:255.255.255.0
          inet6 addr: fe80::a00:27ff:fe51:e440/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:947 errors:0 dropped:0 overruns:0 frame:0
          TX packets:618 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:86885 (86.8 KB)  TX bytes:71855 (71.8 KB)

我想将范围10.0.2.15/24提供给docker0界面。

注意: 我假设如果我使用与docker0相同的IP范围自定义eth0,那么容器应该从相同的范围获取IP。(如果我假设错误,请纠正我。)

为此,我尝试在--fixed-cidr=10.0.2.15/24文件中添加/etc/default/docker。但它现在正在发挥作用。

任何想法如何实现它?

另外,如果我遵循错误的方式,请指导我如何以正确的方式实现它。

3 个答案:

答案 0 :(得分:0)

您应该考虑外部可用的内容,而不是更改docker0界面的ip范围。

如果您希望某些端口链接到您的应用程序并从外部可用,请查看-p标志。

docker run -p IP:host_port:container_port

查看网络配置文档http://docs.docker.com/articles/networking/

本文档还介绍了如何更改docker0接口的ip范围。但是,我认为这是实现您想要的其他更好,更简单的方法。

(你能解释一下你想要的东西吗?)

答案 1 :(得分:0)

你要做的是接触网络自杀...如果docker允许你将外部NIC-IP(eth0)分配给内部桥接接口(docker0),你的系统将有两个接口工作在同一条路线上但是界面后面有不同的网络。试着想想一个在一个城市工作的后男人和一些天才给所有的街道命名相同,他们都开始计算1的数字。他可以发送任何邮件吗? ;)

我认为您想要实现的是,能够从“外部”网络连接到您的docker容器正在运行的任何内容。在这种情况下,只需添加
-p port_on_host:port_inside_container
到你的 docker run - 命令和您的docker-content通过您的host-ip可用于外部世界(如果您的防火墙已正确设置)

干杯 d

答案 2 :(得分:0)

我认为你应该删除docker0网桥并通过给自己的子网创建docker0网桥。 如需更多实用的视图和图片,请访问:https://support.zenoss.com/hc/en-us/articles/203582809-How-to-Change-the-Default-Docker-Subnet