docker-compose定义network、port、extra_hosts

1. networks 配置(默认bridge)

  • 定义容器的网络连接方式:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    services:
    web:
    networks:
    - frontend
    - backend
    networks:
    frontend:
    driver: bridge
    backend:
    driver: bridge

network_mode: host/bridge 默认bridge

2. ports 绑定到特定主机 IP

  • 将容器端口绑定到宿主机的特定 IP:
    1
    2
    3
    4
    services:
    web:
    ports:
    - "127.0.0.1:8080:80" # 仅监听本地回环地址

3. extra_hosts

  • 添加自定义主机名到 IP 的映射:
    1
    2
    3
    4
    services:
    web:
    extra_hosts:
    - "myhost:192.168.1.100"

可能混淆的术语

  • **expose**:声明容器暴露的端口(不发布到宿主机)。
  • **network_mode**:设置容器的网络模式(如 hostbridge