在VS Code中调试在Docker容器中运行的Node.js应用


正确配置Docker和VS Code调试Node.js应用需四步:1. Dockerfile中使用--inspect=0.0.0.0:9229启动Node;2. docker-compose.yml映射9229端口;3. launch.json设置attach模式,匹配localRoot与remoteRoot路径;4. 启动容器后在VS Code中连接调试,确保端口开放与路径一致即可。

在vs code中调试在docker容器中运行的node.js应用

在 VS Code 中调试运行在 Docker 容器中的 Node.js 应用,关键在于正确配置容器的启动参数和 VS Code 的调试设置。只要确保 Node.js 进程以调试模式运行,并允许远程连接,就能顺利接入调试器。

1. 修改 Dockerfile 支持调试

确保你的 Dockerfile 使用支持调试的 Node.js 启动命令。通常使用 --inspect 或 --inspect-brk 参数。

示例:

  • CMD ["node", "--inspect=0.0.0.0:9229", "app.js"]

其中 --inspect=0.0.0.0:9229 表示监听所有网络接口的 9229 端口,允许外部调试器连接。使用 --inspect-brk 可让程序在第一行暂停,便于调试器附加。

2. 配置 docker-compose.yml 暴露调试端口

如果你使用 docker-compose,需要将调试端口映射到主机。

示例 docker-compose.yml:

Eclipse中创建Web Maven Project并部署到Tomcat中 中文WORD版 Eclipse中创建Web M*en Project并部署到Tomcat中 中文WORD版

大家都知道,在进行J2EE项目的开发过程中,在调试阶段如果只是修改了页面是不需要重启应用服务器的,比如不需要重启Tomcat。只需要在浏览器中 进行页面刷新即可。其实之所以不用重启Tomcat等应用服务器,其根本原因是因为我们可以在应用服务器的配置文件中设置虚拟目录,这样就可以知道web 项目所在的目录,于是就可以省去打包、然后再重新发布到服务器的步骤。感兴趣的朋友可以过来看看

Eclipse中创建Web Maven Project并部署到Tomcat中 中文WORD版 0 查看详情 Eclipse中创建Web Maven Project并部署到Tomcat中 中文WORD版
  • services:
  •   app:
  •     build: .
  •     ports:
  •       - "3000:3000"
  •       - "9229:9229"

这样主机就可以通过 localhost:9229 连接到容器内的调试器。

3. 配置 VS Code 的 launch.json

在项目根目录下的 .vscode/launch.json 中添加一个 Attach 配置:

  • {
  •   "type": "node",
  •   "request": "attach",
  •   "name": "Attach to Docker",
  •   "address": "localhost",
  •   "port": 9229,
  •   "localRoot": "${workspaceFolder}",
  •   "remoteRoot": "/app"
  • }

注意:remoteRoot 要与容器内应用路径一致(比如 Dockerfile 中 WORKDIR /app)。

4. 启动容器并连接调试

步骤如下:

  • 运行 docker-compose up 启动容器
  • 确认日志中出现类似 Debugger listening on ws://0.0.0.0:9229/...
  • 在 VS Code 中选择 “Attach to Docker” 并启动调试
  • 设置断点,查看变量,正常调试

基本上就这些。只要端口通、路径对、Node 启动参数正确,VS Code 就能顺利连接容器内进程。调试时常见问题多出在端口未暴露或路径映射不一致,检查这两点基本都能解决。

以上就是在VS Code中调试在Docker容器中运行的Node.js应用的详细内容,更多请关注其它相关文章!


# 工作流  # 长安区营销网络推广  # 沐浴营销如何推广产品  # 成都新媒体seo排名  # 顺昌网页seo服务电话  # 营销推广的着眼点  # 房地产营销事件推广案例  # 长沙seo外链优化培训  # 热门网站建设加盟代理  # seo免费网站排名  # 12315网站建设工程  # 是因为  # 如果你  # 与子  # 容器内  # node.js  # 不需要  # 就能  # 就可以  # 调试器  # 重启  # 常见问题  # vs code  # 端口  # app  # node  # json  # js  # vscode  # docker 


相关栏目: 【 Google疑问12 】 【 Facebook疑问10 】 【 优化推广96088 】 【 技术知识133117 】 【 IDC资讯59369 】 【 网络运营7196 】 【 IT资讯61894 】


相关推荐: 免费占卜在线神算_免费占卜手机神算  掌握CSS :has() 选择器:父选择器、嵌套限制与常见陷阱解析  豆包AI怎样为教育场景定制答疑逻辑_为教育场景定制豆包AI答疑逻辑方案【方案】  汽车之家网页版免费登录_汽车之家官网首页直接进入  苹果SE如何开启单手模式_苹果SE单手操作功能  J*aScript字符串_Unicode处理  yy漫画登录页面官方入口_yy漫画在线阅读网址入口  如何定制PrimeNG Sidebar的背景颜色  申通快件单号查询平台 申通包裹物流动态跟踪  BunnyStream TUS视频上传指南:解决401认证错误与参数配置  追剧达人如何发弹幕  胃动力不足?试试这5个调理方法  阿里旺旺电脑网页版入口 阿里旺旺电脑版网页登录入口  123网页端官方登录页 123邮箱网页版即时通讯服务  Win10如何查看已安装的更新补丁 Win10卸载指定更新教程【教程】  知音漫客官网首页入口_知音漫客热门漫画推荐  邮编号码查询app有哪些_邮编号码查询推荐app及使用体验  学习通网页版课程打不开_课程无法访问时的解决方法  word文档行距怎么调?word文档调行距的操作步骤  c++如何链接Boost库_c++准标准库的集成与使用  VB表达式书写规则解析  动漫岛在线动漫网 动漫岛动漫在线观看官方入口  vivo云服务一直提示空间不足怎么办 怎么办vivo云服务老是提示空间不足  《东方航空》添加乘机人方法  ao3入口镜像地址 ao3镜像入口可靠跳转  火狐浏览器如何刷新修复浏览器 火狐浏览器“重置Firefox”功能详解  Yandex无需登录畅游 俄罗斯搜索引擎最新官网指南  WooCommerce 新客户订单自动添加管理员备注教程  解决异步Python机器人中同步操作的阻塞问题  Python模块化编程:避免循环导入与共享函数的最佳实践  mysql触发器如何编写_mysql触发器编写规范与代码示例讲解  纯CSS实现自适应宽度与响应式布局的水平按钮组  word表格如何按某一列内容进行排序_Word表格按列排序方法  铁路12306官网登录入口 铁路12306在线购票官方平台  win11如何诊断DirectX问题 Win11运行dxdiag工具排查显卡故障【排错】  Win10运行窗口在哪里打开 Win10调出运行命令框快捷键【技巧】  小红书如何引流到私信?引流到私信有用吗?  如何在CSS中清除浮动解决背景颜色不包裹内容问题_clear after技巧  实时数据流中高效查找最小值与最大值  构建可配置的J*aScript加权点击计数器与共享总计功能  为什么XML解析器对大小写敏感? 理解XML规范中的大小写规则与最佳实践  《海贝音乐》均衡器设置方法  Coolpad5890 ROM刷机包  sublime如何自定义文件类型图标_AFileIcon插件的主题切换与个性化配置  c++如何实现一个简单的RPC框架_c++远程过程调用原理与实践  Pandas中基于动态偏移量实现DataFrame列值位移的策略  Win10共享文件夹设置方法 Win10局域网文件共享全攻略【教程】  掌握Go App Engine项目结构与GOPATH:包管理与导入实践  QQ阅读小说搜索入口地址_QQ阅读小说搜索入口地址搜索在线阅读  优化Google Charts Gauge:在数据库无数据时显示默认值 

 2025-12-03

了解您产品搜索量及市场趋势,制定营销计划

同行竞争及网站分析保障您的广告效果

点击免费数据支持

提交您的需求,1小时内享受我们的专业解答。

运城市盐湖区信雨科技有限公司


运城市盐湖区信雨科技有限公司

运城市盐湖区信雨科技有限公司是一家深耕海外推广领域十年的专业服务商,作为谷歌推广与Facebook广告全球合作伙伴,聚焦外贸企业出海痛点,以数字化营销为核心,提供一站式海外营销解决方案。公司凭借十年行业沉淀与平台官方资源加持,打破传统外贸获客壁垒,助力企业高效开拓全球市场,成为中小企业出海的可靠合作伙伴。

 8156699

 13765294890

 8156699@qq.com

Notice

We and selected third parties use cookies or similar technologies for technical purposes and, with your consent, for other purposes as specified in the cookie policy.
You can consent to the use of such technologies by closing this notice, by interacting with any link or button outside of this notice or by continuing to browse otherwise.