Docker与VSCode共存时启动失败,如何排查VSCode占用5123端口?
遇到VSCode运行时Docker服务(epst)因为5123端口被占用启动失败的问题,我来帮你一步步找出对应的进程:
一、先定位占用5123端口的进程
首先得找到占用这个端口的进程ID(PID),再关联到VSCode相关的进程,不同系统的操作如下:
Windows系统
- 打开命令提示符(CMD)或PowerShell,执行命令:
输出里会有类似netstat -ano | findstr :5123TCP 0.0.0.0:5123 0.0.0.0:0 LISTENING 1234的内容,最后一列的1234就是占用端口的进程PID。 - 接着查询这个PID对应的进程详情:
如果结果里显示的是tasklist /fi "PID eq 1234"Code.exe或者带VSCode标识的进程,那就是它在占用端口。
macOS/Linux系统
- 打开终端,执行命令直接查看占用端口的进程:
输出的lsof -i :5123PID列是进程ID,COMMAND列如果是Code或code,就说明是VSCode相关进程在占用端口。 - 也可以用
netstat命令:
输出里的netstat -tulpn | grep :5123PID/Program name字段会明确显示占用端口的进程信息。
二、排查VSCode内部的扩展或配置
很多时候是VSCode的某个扩展在后台悄悄绑定了端口,你可以这样进一步定位:
- 关闭所有VSCode窗口,重新打开一个无工作区的干净实例,再检查5123端口是否还被占用。如果恢复正常,说明是某个工作区的配置或扩展导致的。
- 尝试一次性禁用所有扩展,然后逐个重新启用,每次启用后检查端口状态,就能找出搞事情的那个扩展。
- 打开VSCode的输出面板(快捷键:
Ctrl+Shift+U/Cmd+Shift+U),切换到各个扩展的输出日志,看看有没有关于5123端口绑定的记录。 - 检查VSCode的
settings.json配置文件(快捷键:Ctrl+,/Cmd+,打开设置,点击右上角的「打开JSON」图标),搜索有没有配置5123端口的项。
三、临时解决小技巧
- 如果已经找到占用端口的VSCode进程PID,可以直接杀掉它:Windows用
taskkill /PID 1234 /F,macOS/Linux用kill -9 1234,之后再重启Docker服务试试。 - 也可以考虑修改Docker服务epst的端口配置,避开5123端口,但优先找到根源解决会更稳妥。
内容的提问来源于stack exchange,提问作者dfdumaresq




