我的 Macbook 上运行着 Docker Desktop 4.25.2。运行后
docker network create foo
docker run --rm -it --network foo ubuntu:22.04 bash
我跑到docker inspect <container_name>
另一个航站楼。在“网络设置”下,我看到
"Networks": {
"foo": {
"IPAMConfig": null,
"Links": null,
"Aliases": [
"a3166231defa"
],
"NetworkID": "21a369e01a3ba29ad63e8add84ca9a9aa167a3cfcb2dfe7747dfc9f18ed761b3",
"EndpointID": "95b582ce02a4c15d452d36ede34b3ad3e3291c4e991049a384b296bd8096da4d",
"Gateway": "192.168.0.1",
"IPAddress": "192.168.0.2",
"IPPrefixLen": 20,
"IPv6Gateway": "",
"GlobalIPv6Address": "",
"GlobalIPv6PrefixLen": 0,
"MacAddress": "02:42:c0:a8:00:02",
"DriverOpts": null
}
}
我看到网关是192.168.0.1。但是,当我ifconfig | grep inet
在主机上运行时,我看不到这样的地址。我的理解是主机始终是 Docker 网络上的网关。
您在 docker 中创建的网络是一个单独的模拟网络。该网络上的容器的行为就像彼此连接一样,并且有一个允许访问互联网的模拟路由器。模拟路由器在此模拟网络上的地址为 192.168.0.1。