首页 > 开发工具 > VSCode > 正文

如何在VSCode中调试在Docker容器内运行的应用程序?

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

如何在vscode中调试在docker容器内运行的应用程序?

在VSCode中调试运行在Docker容器内的应用程序,关键在于配置好开发环境,使调试器能连接到容器中的进程。以下步骤适用于Node.js、Python等常见语言,以Node.js为例说明整体流程。

准备Docker镜像支持调试

确保你的Docker镜像安装了调试所需工具,并暴露调试端口

以Node.js应用为例:
  • Dockerfile 中启用调试模式,使用 node --inspect 启动应用
  • 暴露调试端口(通常是 9229)
  • 确保应用代码挂载到容器以便热更新和断点生效

示例 Dockerfile 片段:

EXPOSE 3000 9229
CMD ["node", "--inspect=0.0.0.0:9229", "app.js"]
登录后复制

配置 docker-compose.yml 映射调试端口

如果你使用 docker-compose,需要将容器的 9229 端口映射到主机。

services:
  app:
    build: .
    ports:
      - "3000:3000"
      - "9229:9229"
    volumes:
      - ./src:/usr/src/app/src
登录后复制

这样 VSCode 才能通过 localhost:9229 连接到调试器。

面试猫
面试猫

AI面试助手,在线面试神器,助你轻松拿Offer

面试猫 39
查看详情 面试猫

在VSCode中配置调试器

打开项目根目录,在 .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
    }
  ]
}
登录后复制
注意:
  • remoteRoot 是容器内应用路径,需与 volume 挂载一致
  • localRoot 是本地项目路径
  • 设置 restart: true 可在断开后自动重连

开始调试

按顺序执行以下操作:

  • 构建并启动容器:docker-compose up
  • 确认日志中出现类似 Debugger listening on ws://0.0.0.0:9229/...
  • 在 VSCode 中打开要调试的文件,设置断点
  • 点击“运行和调试”侧边栏,选择“Attach to Node in Docker”,启动调试

当请求触发对应代码时,VSCode 会命中断点,可查看变量、调用等信息。

基本上就这些。只要端口打通、路径匹配、调试模式开启,VSCode 就能顺利接入容器内进程。不同语言(如 Python 的 ptvsd 或 debugpy)原理类似,只是调试协议和启动命令略有不同。

以上就是如何在VSCode中调试在Docker容器内运行的应用程序?的详细内容,更多请关注php中文网其它相关文章!

最佳 Windows 性能的顶级免费优化软件
最佳 Windows 性能的顶级免费优化软件

每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号