网络
pier-net
Section titled “pier-net”Pier 创建一个名为 pier-net 的 Docker 桥接网络,并将每一个托管容器都接入其中。在网络内部,服务之间通过容器名称互相访问(依靠 Docker 内置的 DNS)。
因此,如果你有两个服务——app 和 pier-db-postgres——你的应用可以这样连接:
postgres://postgres:password@pier-db-postgres:5432/app无需在主机上绑定任何端口。
为什么不绑定端口?
Section titled “为什么不绑定端口?”对于托管服务,Pier 不会在主机上暴露容器端口。这样可以避免:
- 服务之间的端口冲突。
- 在主机防火墙上产生不必要的暴露。
- 需要在同一层级运行 Traefik。
唯一绑定主机 80 和 443 端口的进程是 Traefik 本身。其他所有内容都是内部的。
内部 URL
Section titled “内部 URL”Pier 仪表盘会为每个服务显示一个内部网络面板,列出项目中其他服务可以使用的 container_name:port。直接将其复制到你应用的环境变量中即可。
访问外部网络
Section titled “访问外部网络”对于从容器发出的出站流量,Docker 会照常处理 NAT——无需任何更改。Pier 不会引入任何出口(egress)限制。