09.Docker Network
当使用 Docker 运行容器时,会有以下 3 种网络:
桥接网络、无网络和主机网络

桥接网络(Bridge)
默认方式。
当使用 Docker 运行容器时,默认情况下使用桥接网络, Docker 会在内部自动创建一个网络,一般 IP 范围为 172.17.x.x ,在此 IP 范围内的容器之间可以相互访问。
要使宿主机能够访问容器内部网络,需要建立端口映射,使用 -p 选项。
建立多个桥接网络
默认情况下, Docker 只会创建一个内部网络,默认 IP Host 为 172.17.0.1 ,如果想要创建其它 IP 范围的网络,需要手动创建。如创建一个子网为 182.18.0.0 ,网关为 182.18.0.1 的子网:
bash
docker network create --driver bridge --subnet 182.18.0.0/16 --gateway 182.18.0.1 custom-isolated-network--driver指定创建网络的驱动--subnet指定创建的子网 IP- 最后的参数为网络名称
若要使容器部署在这个子网,在运行容器时指定 --network 选项为该网络名称,如:
bash
docker run -e MYSQL_ROOT_PASSWORD=db_pass123 -d --network custom-isolated-network mysql:5.6无网络(None)
指定无网络,使用 --network 参数,指定 none :
bash
docker run --network=none ubuntu这样创建的容器将不会连接任何网络
主机网络(Host)
指定使用主机网络运行容器,使用 --network 参数,指定 host :
bash
docker run --network=host ubuntu这会和主机共享网络端口,因此,主机和容器将不能使用同一个端口号。
查看 Docker 网络
使用 docker network ls 查看当前所有的网络。
查看容器的网络情况
使用 inspect 查看容器内部的网络情况:
bash
docker inspect blissful_hopper示例输出如下:
cmd
X:>docker inspect ubuntu
[
...
"NetworkSettings": {
"Bridge": "",
"SandboxID": "05480983265d3fb8deff056eb7818dbff6ca24f27911653355990fb7b422c611",
"SandboxKey": "/var/run/docker/netns/05480983265d",
"Ports": {},
"HairpinMode": false,
"LinkLocalIPv6Address": "",
"LinkLocalIPv6PrefixLen": 0,
"SecondaryIPAddresses": null,
"SecondaryIPv6Addresses": null,
"EndpointID": "7a4ff37efbc2349964a71cdb499c05ea11f785dffbdc9bee0224a8e8f1c3799b",
"Gateway": "172.17.0.1",
"GlobalIPv6Address": "",
"GlobalIPv6PrefixLen": 0,
"IPAddress": "172.17.0.2",
"IPPrefixLen": 16,
"IPv6Gateway": "",
"MacAddress": "02:42:ac:11:00:02",
"Networks": {
"bridge": {
"IPAMConfig": null,
"Links": null,
"Aliases": null,
"MacAddress": "02:42:ac:11:00:02",
"DriverOpts": null,
"NetworkID": "2d4e116e46919b9d1bfbdb45290dd66ce436b1bb86c299eefa1789f01f9c1a52",
"EndpointID": "7a4ff37efbc2349964a71cdb499c05ea11f785dffbdc9bee0224a8e8f1c3799b",
"Gateway": "172.17.0.1",
"IPAddress": "172.17.0.2",
"IPPrefixLen": 16,
"IPv6Gateway": "",
"GlobalIPv6Address": "",
"GlobalIPv6PrefixLen": 0,
"DNSNames": null
}
}
}
}
]