bash
For more help on how to use Docker, head to https://docs.docker.com/go/guides/
[root@iZ2ze9s10ippz7phochlngZ conf.d]# docker network ls
NETWORK ID NAME DRIVER SCOPE
eeab26ae8772 bridge bridge local
730b134a4a58 host host local
ca5020fcee44 none null local
一、你截图里的 3 个默认网络:各自干什么?
1. bridge(默认网桥)
作用:
- 这是 Docker 默认给所有容器用的网络。
- 容器之间可以互相通信,但只能用 IP,不能用容器名。
- 容器要访问外部,必须做端口映射。
- 所有容器都挤在一个大网段里。
简单理解:公共大厅,谁都能进,但喊名字没人理,只能记 IP。
2. host(主机网络)
作用:
- 容器直接共用宿主机的网络,没有隔离。
- 容器端口 = 宿主机端口,不用映射。
- 性能最好,但完全无隔离、不安全。
简单理解:容器和宿主机住同一个房间,不隔离。
3. none(无网络)
作用:
- 容器没有任何网络,只有本地回环。
- 不能联网,不能和任何容器通信,完全断网。
简单理解:关小黑屋,断网隔离。
二、最核心一句话:为什么不使用默认网络(bridge)?
根本原因只有一个:
默认 bridge 网络不支持容器名 DNS 解析,只能靠 IP 通信,容器重启 IP 就会变,服务立刻失联,无法用于稳定的业务系统。
ultra 简洁总结(你可以直接记)
- bridge :公共网络,无容器名解析,不稳定。
- host :无隔离,不安全。
- none :完全断网,不能用。
最终结论:
默认网络只适合测试,绝对不能用于正式服务。