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

Docker容器间调用问题:WordPress调用API容器无响应求助

解决Docker容器间API访问无响应问题

问题原因

  1. 容器localhost独立:WordPress容器内的localhost指向容器自身,而非宿主机,因此无法通过http://localhost:8081访问宿主机上映射的API服务。
  2. 网络隔离:两个应用的docker-compose默认创建各自独立的app_network网络(带有项目名前缀),导致WordPress和API容器不在同一网络,无法直接通信。

解决方案

步骤1:创建共享Docker网络

先手动创建一个外部共享网络,让两个应用的容器都加入这个网络:

docker network create shared_app_network

步骤2:修改API的docker-compose配置

将原有的app_network替换为外部共享网络:

version: "3.8"
services:
  # 保持原有services配置不变...

networks:
  app_network:
    external: true
    name: shared_app_network

volumes:
  db_data:
    driver: local

步骤3:修改WordPress的docker-compose配置

同样替换网络配置:

version: '3.8'
services:
  # 保持原有services配置不变...

networks:
  app_network:
    external: true
    name: shared_app_network

步骤4:调整WordPress内的API请求地址

将WordPress代码中API请求URL从http://localhost:8081改为以下任一方式:

  • 使用API的Nginx服务名:API的docker-compose中Nginx服务名为nginx,因此请求地址改为http://nginx:8081
  • 使用API的容器名:如果API的APP_NAME环境变量值为api,容器名是api_nginx,则请求地址为http://api_nginx:8081

步骤5:重启容器

分别重启两个应用的容器,让配置生效:

# 进入API项目目录
docker-compose down && docker-compose up -d

# 进入WordPress项目目录
docker-compose down && docker-compose up -d

额外检查

确保API的Nginx容器内,Nginx配置文件正确监听8081端口,示例配置片段:

server {
    listen 8081;
    root /usr/src/app/public;
    # 其他配置...
}

内容的提问来源于stack exchange,提问作者Dr. Junior

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 07:50:25