我在几台ubuntu服务器上安装了docker
Docker创建的docker0
都具有相同的IP(172.17.42.1
)。
$ ifconfig docker0
docker0 Link encap:Ethernet HWaddr 56:84:7a:fe:97:99
inet addr:172.17.42.1 Bcast:0.0.0.0 Mask:255.255.0.0
inet6 addr: fe80::5484:7aff:fefe:9799/64 Scope:Link
UP BROADCAST MULTICAST MTU:1500 Metric:1
RX packets:31 errors:0 dropped:0 overruns:0 frame:0
TX packets:7 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:2100 (2.1 KB) TX bytes:547 (547.0 B)
我可以对IP地址进行硬编码,以便我可以从容器中联系主机吗?
docker0
将来会改变为另一个IP吗?
答案 0 :(得分:3)
您正在查看Docker为其运行的容器创建的 bridge (默认情况下)。这个网桥的工作方式与该机器上的以太网交换机非常相似 - 从一个接口进入网桥的流量可用于所有其他连接的接口。
如果再往前看,您会看到每个容器还有一个虚拟以太网设备,该设备被分配了一个单独的IP地址。 Detailed Docker docs on networking.
我可以硬编码IP地址,以便我可以从容器联系主机吗?
这不会跟随 - 无论分配给网桥和容器的IP地址如何,您始终可以从容器联系主机。你的意思是问别的吗?
将来
docker0
会更改为其他IP吗?
是的,如果该地址空间被占用,那么Docker将尝试找到用于桥接器和容器的不同位私有IP地址空间。