【发布时间】:2017-12-07 03:05:09
【问题描述】:
我正在尝试为容器提供可路由的 IP。我的本地网络是 192.168.1.0/24,我想用 192.168.1.17/29 给容器。
目标是让每个容器都有自己的 IP。这样,如果两个容器在端口 80 上运行网络服务器,我可以通过它们在端口 80 上的唯一 IP 从本地网络上的任何其他主机直接访问它们,而不是将它们映射到共享主机 IP 上的不同端口。
类似于拥有自己网卡的物理机在网络上各自拥有不同的 192.168.1.xxx IP。
我试过了:
docker network create --subnet 192.168.1.0/24 --ip-range 192.168.1.17/29 --gateway 192.168.1.1 test_nw
产生以下结果:
$ docker network inspect test_nw
[
{
"Name": "test_nw",
"Id": "96bd574300059ef3710527a9bd0b3010d3b3c22d8de321ff459697eda96ab5e6",
"Created": "2017-12-06T21:50:08.591070587-05:00",
"Scope": "local",
"Driver": "bridge",
"EnableIPv6": false,
"IPAM": {
"Driver": "default",
"Options": {},
"Config": [
{
"Subnet": "192.168.1.0/24",
"IPRange": "192.168.1.17/29",
"Gateway": "192.168.1.1"
}
]
},
"Internal": false,
"Attachable": false,
"Ingress": false,
"ConfigFrom": {
"Network": ""
},
"ConfigOnly": false,
"Containers": {},
"Options": {},
"Labels": {}
}
]
在这种情况下,在容器内,我可以 ping 192.168.1.1,但无法 ping 互联网上的任何内容(通过 IP 或主机名),我什至无法 ping 本地网络上的其他设备(192.168.1.2存在但不可达)
在我使用docker network rm 删除此网络之前,主机(我的笔记本电脑)也无法访问 Internet 或本地网络上的任何内容。
我显然遗漏了一些东西,但我不明白是什么。有什么方法可以实现我想要做的吗?
【问题讨论】:
标签: docker networking