默认 bridge 下容器各论各的,建自定义网络才能让它们按名字互相发现。

示例配置

docker network create app-net
docker run -d --net app-net --name db postgres:16
docker run -d --net app-net --name web -p 80:80 myapp
# 同网络内用容器名互访
curl http://db:5432

要点速览

  • 自定义网络内 DNS 自动解析容器名,web 直连 db 不用 IP。
  • host 模式省去端口映射但牺牲隔离,慎用。
  • 不需要互通的服务放不同网络,缩小暴露面。
容器网络是按名字说话的前提,也是隔离边界。