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

在AWS EC2 Ubuntu实例上用Docker-Compose运行WordPress与MySQL容器报错

Docker Compose部署WordPress访问报错问题

我是Docker Compose新手,已经创建了如下docker-compose.yaml文件,但访问WordPress站点时出现报错。我在AWS EC2 Ubuntu实例上操作,使用http://<IP-ADDRESS>:8090访问站点。

报错截图:
WordPress访问报错

我的docker-compose.yaml文件内容:

version: "3.3"
services:
  wordpress:
    image: wordpress
    ports:
      - "8090:80"
    depends_on:
      - mysql
    environment:
      WORDPRESS_DB_HOST: mysql
      WORDPRESS_DB_USER: root
      WORDPRESS_DB_PASSWORD: "password"
      WORDPRESS_DB_NAME: wordpress
    networks:
      net:
        ipv4_address: "172.31.32.20"
  mysql:
    image: "mysql:5.7"
    environment:
      MYSQL_DATABASE: wordpress
      MYSQL_ROOT_PASSWORD: "password"
    volumes:
      - ./mysql:/var/lib/mysql
    networks:
      net:
        ipv4_address: "172.31.32.21"
networks:
    net:
      ipam:
        driver: default
        config:
          - subnet: "172.31.32.0/20"

解决步骤

1. 确认MySQL服务是否就绪

depends_on仅保证容器启动顺序,不确保MySQL服务完全初始化完成。先查看MySQL容器日志:

docker-compose logs mysql

如果日志中没有ready for connections字样,说明MySQL启动失败。大概率是本地./mysql目录权限问题,删除该目录(记得备份数据)后重新创建容器:

rm -rf ./mysql
docker-compose up -d --force-recreate

2. 修复自定义网络冲突

你指定的子网172.31.32.0/20和AWS EC2默认内网子网(172.31.0.0/16)重叠,会导致容器间网络不通。直接去掉固定IP和自定义子网配置,让Docker自动分配网络:
修改后的docker-compose.yaml:

version: "3.3"
services:
  wordpress:
    image: wordpress
    ports:
      - "8090:80"
    depends_on:
      - mysql
    environment:
      WORDPRESS_DB_HOST: mysql
      WORDPRESS_DB_USER: root
      WORDPRESS_DB_PASSWORD: "password"
      WORDPRESS_DB_NAME: wordpress
    networks:
      - net
  mysql:
    image: "mysql:5.7"
    environment:
      MYSQL_DATABASE: wordpress
      MYSQL_ROOT_PASSWORD: "password"
    volumes:
      - ./mysql:/var/lib/mysql
    networks:
      - net
networks:
    net:

3. 检查EC2安全组配置

确保EC2实例的安全组已开放8090端口的入站规则,测试阶段可暂时将来源设为0.0.0.0/0,生产环境需限制为特定IP。

4. 验证容器间连通性

进入WordPress容器,测试能否访问MySQL:

docker-compose exec wordpress ping mysql

能ping通则网络正常;若不通,用修改后的配置重新启动容器。

5. 查看WordPress日志排查

若以上步骤无问题,查看WordPress容器日志定位具体错误:

docker-compose logs wordpress

重点检查数据库连接相关报错,确认环境变量中的用户名、密码与MySQL配置一致。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 00:50:28