Linux下Docker容器网络模式核心是bridge(默认隔离,适合单机多容器)、host(零隔离、性能优先)、none(完全隔离)、macvlan/ipvlan(直连物理网络),选型需据通信需求、安全与性能权衡。

Linux下创建Docker容器网络,核心是理解不同网络模式的隔离逻辑与适用场景,而不是盲目套用命令。选对模式,才能让容器既通又安全。
bridge模式:默认隔离,适合单机多容器通信
Docker安装后自动创建docker0网桥,所有用--network bridge(默认)启动的容器都会接入这个二层网络,获得独立IP(如172.17.0.0/16段),彼此可互通,但和宿主机网络隔离。端口需显式映射(-p 8080:80)才能从外部访问。
- 自定义bridge更可控:用docker network create --subnet=192.168.100.0/24 mynet建私有网段,避免IP冲突
- 容器加入时指定:docker run --network mynet nginx
- 不推荐在生产环境直接用默认docker0,尤其当宿主机已用172.17.x.x网段时
host模式:零网络隔离,性能优先场景用
容器直接复用宿主机的网络命名空间——没有独立IP,netstat、ss看到的端口就是容器暴露的端口。省去NAT开销,延迟更低,但丧失网络隔离性,多个容器不能同时监听同一端口。
- 适用于性能敏感且无端口冲突的服务,比如监控采集器、日志代理
- 启动命令:docker run --network host nginx
- 注意:systemd服务或安全策略(如SELinux)可能限制host模式启用
none模式:彻底隔离,仅用于离线计算或调试
容器只有lo回环接口,无任何网络设备。适合不需要联网的批处理任务、安全沙箱或排查网络问题时排除干扰。
标签: linux docker nginx 端口 mac 网络问题 docker安装 gate
还木有评论哦,快来抢沙发吧~