1. 查看容器分配的内部IP:
docker inspect <container_id> | grep IPAddress
2. 查看默认的bridge网络模式的配置
docker network inspect bridge
内容如下:
[
{
"Name": "bridge",
"Id": "b3b06d7c47dd8146cce3e6dbd396a26aa5971fdcad9e5872ac46ed513ce027d0",
"Created": "2024-01-23T11:54:12.397550021+08:00",
"Scope": "local",
"Driver": "bridge",
"EnableIPv6": false,
"IPAM": {
"Driver": "default",
"Options": null,
"Config": [
{
"Subnet": "172.17.0.0/16",
"Gateway": "172.17.0.1"
}
]
},
"Internal": false,
"Attachable": false,
"Ingress": false,
"ConfigFrom": {
"Network": ""
},
"ConfigOnly": false,
"Containers": {},
"Options": {
"com.docker.network.bridge.default_bridge": "true",
"com.docker.network.bridge.enable_icc": "true",
"com.docker.network.bridge.enable_ip_masquerade": "true",
"com.docker.network.bridge.host_binding_ipv4": "0.0.0.0",
"com.docker.network.bridge.name": "docker0",
"com.docker.network.driver.mtu": "1500"
},
"Labels": {}
}
]
可以看见bridge模式默认为所有docker容器创建了一个虚拟的网桥 并把172.17.0.1
分配给这个网桥 所有的docker容器会在启动的时候从172.17.0.2开始依次分配未被
分配的IP 所有容器都通过虚拟网桥 利用NAT模式 通过宿主机与本机其他容器或者
其他服务器的主机通信. 具体通讯端口通过 -p 指定与宿主机进行端口映射
3. 如果在配置docker-compose.yml时没有给容器指定network 默认用的就是bridge模式
此模式已经能够覆盖大多数项目需求
4. 除了bridge模式外还有以下3种模式
host –network host 容器不会创建自己的网卡,配置 ip 等,而是使用宿主机的 ip 和端口
container –network 容器名称或id 新创建的容器不会创建自己的网卡和配置自己的ip,而是和 一个指定的容器共享ip、端口范围
none –network none 容器有独立的Network namespace,但并没有对其进行任何网络设置