学习优先级:★★★★☆

易用性:★★★★☆

Docker Compose 会自动为 docker-compose.yml 文件中定义的所有容器创建一个网络。这些容器可以通过名称相互访问,从而大大简化了它们之间的通信。

以下是一个示例,展示了如何创建两个服务:一个 Web 服务器和一个数据库,它们可以通过内部 Docker 网络进行通信。

示例代码

version: '3'

services:
  web:
    image: nginx
    ports:
      - "80:80"

  db:
    image: postgres
    environment:
      POSTGRES_PASSWORD: example

执行结果

运行 docker-compose up 后,会创建一个共享网络,在该网络中,Web 容器可以使用名称 db 访问数据库容器。无需手动网络配置。

Docker Compose 会自动配置一个标准网络,将 docker-compose.yml 文件中的所有容器连接在一起。在该网络内,容器可以通过服务名称进行通信,无需额外的 DNS 条目或 IP 地址。例如,Web 服务器可以使用名称 db 访问数据库,这极大地简化了微服务的配置。此外,容器之间的网络流量被隔离,并与外部网络分开,除非明确将端口映射到外部(如本例中的 ports: "80:80")。

补充说明

每个 Docker Compose 堆栈都有自己的隔离网络,这意味着不同 docker-compose.yml 文件中的容器默认无法相互通信。对于更复杂的配置,也可以使用自定义网络来连接跨越不同堆栈的容器。