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

Docker Compose绑定80端口启动报错 如何配置改用81端口

问题背景

搭建PHP 7.4版本迁移所用的Docker环境时,执行docker-compose up触发端口绑定错误,错误日志如下:

PS E:\Projects\PHP Migration to 7.4> docker-compose up
[+] Running 1/1
 - Container phpmigrationto74-web-1  Recreated                                                                                                                                                                                 0.1s
Attaching to phpmigrationto74-web-1
Error response from daemon: Ports are not available: exposing port TCP 0.0.0.0:80 -> 0.0.0.0:0: listen tcp 0.0.0.0:80: bind: An attempt was made to access a socket in a way forbidden by its access permissions.

当前目录下原docker-compose.yml配置内容:

version: "3"
services:
  web:
    image: nginx:latest
    ports:
      - "80:80"

经测试,执行docker run --detach --publish 81:80 --name webserver命令启动单容器时,访问http://localhost:81/可正常加载Nginx欢迎页,确认81端口可用、容器内Nginx运行正常,需要修改Docker Compose配置实现通过81端口启动服务。

解决方法

直接修改docker-compose.yml中的端口映射规则即可。Docker端口映射格式为"宿主机端口:容器内部端口",原配置将宿主机80端口绑定到容器Nginx默认监听的80端口,由于宿主机80端口被占用/权限限制无法绑定,将宿主机侧端口替换为已验证可用的81端口即可。
修改完成后的完整配置如下:

version: "3"
services:
  web:
    image: nginx:latest
    ports:
      - "81:80"

配置修改完成后按以下步骤操作:

  • 执行docker-compose down清理之前启动失败的残留容器实例
  • 执行docker-compose up -d后台启动服务
  • 启动完成后直接在浏览器访问http://localhost:81即可正常访问服务,效果和单容器测试时完全一致。

后续如果要搭配PHP容器完成7.4迁移环境搭建,只需要在compose配置中新增对应PHP服务的配置,做好Nginx和PHP容器的网络连通即可,Nginx侧的81端口映射不需要额外调整。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.28 16:39:14