You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

WP本地Docker开发如何自动配置动态容器IP的extra_hosts映射

解决方案

针对动态容器IP下实现容器间自定义域名互访的需求,以下是可直接落地的方案:

方案1:使用Docker Compose内置网络别名(最推荐)

Docker Compose 会为同一项目下的所有服务默认创建专属内网,且内置DNS服务自动维护服务与IP的映射关系。你完全不需要手动配置extra_hosts,只需要给对应服务添加自定义域名别名即可,Docker会自动完成解析:

version: "3.8"
services:
  nginx:
    image: nginx:alpine
    networks:
      default:
        aliases:
          # 你需要的自定义本地域名,支持配置多个
          - projectname.local
          - www.projectname.local
    # 其余Nginx配置、挂载、端口映射等保持不变
  
  php:
    image: php:fpm-alpine
    # 其余PHP配置保持不变

配置生效后,PHP容器内访问projectname.local会自动解析到Nginx容器的当前IP,Nginx容器如果需要访问PHP的自定义域名,给PHP服务也配置对应aliases即可。容器重启、重建导致IP变更后,DNS记录会自动更新,无需手动修改任何配置。

方案2:强制写入容器hosts文件(特殊场景使用)

如果你的业务逻辑必须要求域名写入容器的/etc/hosts文件,可以通过启动命令动态获取目标服务IP写入:

services:
  php:
    image: php:fpm-alpine
    # 启动时先获取Nginx服务最新IP写入hosts,再启动PHP进程
    command: sh -c "echo '$$(getent hosts nginx | awk "{print $$1}") projectname.local' >> /etc/hosts && php-fpm"
    # 其余PHP配置保持不变

多项目批量适配

如果同时管理多个WP项目,可以把域名参数放到项目的.env文件中,避免每次修改Docker Compose配置:

  1. 项目根目录新建.env文件,写入:
WP_LOCAL_DOMAIN=yourproject.local
  1. Docker Compose配置中引用变量:
aliases:
  - ${WP_LOCAL_DOMAIN}

内容的提问来源于stack exchange,提问作者LWN

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.29 01:36:02