答案:在VSCode中调试Docker容器内应用需配置镜像支持调试、映射调试端口并设置launch.json。首先在Dockerfile中使用node --inspect启动应用并暴露9229端口,通过docker-compose.yml将该端口映射至主机,同时挂载代码卷以同步文件;接着在.vscode/launch.json中添加Attach配置,指定本地和容器内路径;最后启动容器并在VSCode中选择对应调试配置,即可连接进程并命中断点。

在VSCode中调试运行在Docker容器内的应用程序,关键在于配置好开发环境,使调试器能连接到容器中的进程。以下步骤适用于Node.js、Python等常见语言,以Node.js为例说明整体流程。
确保你的Docker镜像安装了调试所需工具,并暴露调试端口。
以Node.js应用为例:node --inspect 启动应用示例 Dockerfile 片段:
EXPOSE 3000 9229 CMD ["node", "--inspect=0.0.0.0:9229", "app.js"]
如果你使用 docker-compose,需要将容器的 9229 端口映射到主机。
services:
app:
build: .
ports:
- "3000:3000"
- "9229:9229"
volumes:
- ./src:/usr/src/app/src这样 VSCode 才能通过 localhost:9229 连接到调试器。
打开项目根目录,在 .vscode/launch.json 中添加一个“Attach”配置。
{
"version": "0.2.0",
"configurations": [
{
"name": "Attach to Node in Docker",
"type": "node",
"request": "attach",
"port": 9229,
"address": "localhost",
"localRoot": "${workspaceFolder}",
"remoteRoot": "/usr/src/app",
"protocol": "inspector",
"restart": true
}
]
}restart: true 可在断开后自动重连按顺序执行以下操作:
docker-compose up
Debugger listening on ws://0.0.0.0:9229/...
当请求触发对应代码时,VSCode 会命中断点,可查看变量、调用栈等信息。
基本上就这些。只要端口打通、路径匹配、调试模式开启,VSCode 就能顺利接入容器内进程。不同语言(如 Python 的 ptvsd 或 debugpy)原理类似,只是调试协议和启动命令略有不同。
以上就是如何在VSCode中调试在Docker容器内运行的应用程序?的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号