网络演练:从「默认网桥凑合跑」到「自定义网络 + 端口排查」

先演示默认 bridge 的痛点(只能靠 IP,而且 IP 会变),再建自定义网络用名字访问,最后走一遍「端口不通」的固定四步排查。注意 docker0 网段是 172.17.0.0/16,自定义网络我们指定 172.28.0.0/16。

deploy@server:/srv/shop
# 宿主:Ubuntu 24.04,docker0 = 172.17.0.1/16,ufw 已开启(见最后一条的坑)

要点:容器之间用「容器名 + 容器内端口」,不要用 IP,也不要绕宿主映射端口;-p 127.0.0.1:8080:80 与 -p 8080:80 的差别是暴露面,不是端口号;「应用只 bind 127.0.0.1」是端口映射不通的第一大原因。

以上输出是真实 docker 命令结果的整理样本,用来观察字段含义;不同版本(含 BuildKit 开关)的打印格式会有差异。