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

AWS EC2中Docker-Compose部署WordPress无法访问80端口问题

解决AWS EC2上Docker-Compose绑定80端口无法访问的问题及安装目录建议

首先针对你遇到的80端口无法访问的核心问题,我整理了几个常见的排查和解决步骤:

一、排查主机80端口是否被占用

Amazon Linux AMI 2018.03.0默认可能预装了Apache(httpd)服务,它会默认监听80端口,直接和你的Docker容器端口映射冲突。你可以通过以下命令检查:

# 查看80端口的监听进程(推荐用ss,比netstat更高效)
ss -tulpn | grep :80
# 如果系统没有ss,用netstat替代
netstat -tulpn | grep :80

如果输出里出现httpd或其他占用80端口的进程,先停止并禁用该服务:

# 立即停止httpd服务
systemctl stop httpd
# 禁止开机自启,避免后续重启主机再次占用端口
systemctl disable httpd

操作完成后,重启你的docker-compose服务,再尝试访问80端口。

二、检查SELinux限制

Amazon Linux默认开启SELinux,它可能会阻止Docker容器绑定1024以下的特权端口。你可以先临时关闭SELinux测试:

setenforce 0

如果此时能正常访问80端口,说明是SELinux的限制导致的。要永久解决的话,编辑/etc/selinux/config文件,把SELINUX=enforcing修改为SELINUX=permissive,然后重启主机生效。

三、验证Docker的端口绑定权限

虽然你用root身份运行docker-compose,但如果Docker daemon的配置存在异常,也可能导致低端口绑定失败。可以按以下步骤修复:

  1. 编辑(或创建)Docker配置文件/etc/docker/daemon.json,添加以下内容:
{
  "iptables": true,
  "ip-forward": true
}
  1. 重启Docker服务,让配置生效:
systemctl restart docker
  1. 重新启动你的docker-compose服务:
docker-compose down && docker-compose up -d

关于Docker-Compose的安装目录与root运行建议

推荐安装目录

官方推荐将docker-compose安装到/usr/local/bin/目录下,这个目录默认在系统的PATH环境变量中,不管是root用户还是加入docker组的普通用户都能直接调用。安装命令示例(以v2.20.0版本为例,你可以替换成最新稳定版本):

curl -L "https://github.com/docker/compose/releases/download/v2.20.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
# 给文件添加执行权限
chmod +x /usr/local/bin/docker-compose

验证安装是否成功:

docker-compose --version

root运行的正确方式

用root运行docker-compose不需要特意更换安装目录,只要你在存放docker-compose.yml文件的目录下,直接执行:

docker-compose up -d

如果yml文件不在当前工作目录,也可以通过-f参数指定路径:

docker-compose -f /path/to/your/docker-compose.yml up -d

另外,默认情况下root用户的PATH已经包含/usr/local/bin/,所以不需要额外配置就能直接调用docker-compose命令。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.27 09:22:30