Mac环境下Docker/LaravelSail启动失败:80端口占用问题求助
解决Mac下Docker/Laravel Sail启动80端口占用问题
步骤1:定位并终止占用80端口的进程
在终端执行以下命令,找出占用80端口的进程信息:
lsof -i :80
输出结果里的PID列是进程ID,COMMAND列是进程名称:
- 如果是系统Apache,执行
sudo apachectl stop停止服务 - 如果是Nginx,执行
sudo nginx -s stop停止 - 如果是第三方程序(如代理、聊天工具),直接打开「活动监视器」,搜索对应进程名并强制退出
步骤2:修改Laravel Sail端口映射(无需终止其他进程)
如果不想停止占用80端口的程序,直接修改Sail的端口配置:
- 临时启动指定端口:在项目根目录执行
之后访问项目用SAIL_PORT=8080 ./vendor/bin/sail uphttp://localhost:8080 - 永久修改端口:在项目根目录的
.env文件中添加一行:
或者编辑SAIL_PORT=8080docker-compose.yml,找到laravel.test服务的ports配置,将80:80改为8080:80,之后正常启动Sail即可
步骤3:清理Docker残留容器
有时候停止的容器仍会占用端口,执行以下命令排查:
docker ps -a
找到所有状态为Exited的容器,用docker rm <容器ID>删除,之后重新启动Sail。
如果还是不行,直接重启Docker Desktop:点击顶部菜单栏的Docker图标,选择「Restart」
步骤4:排查系统内置服务
部分Mac版本中,AirPlay Receiver会占用80端口,可通过以下步骤关闭:
- 打开「系统设置」→「通用」→「AirDrop与接力」
- 找到「AirPlay Receiver」,关闭开关
内容的提问来源于stack exchange,提问作者PT-83
相关产品推荐
相关产品推荐

