如何使用VS Code调试在Docker容器中运行的应用程序


答案:使用VS Code调试Docker容器内应用需配置支持调试的镜像并暴露端口,如Node.js添加--inspect=0.0.0.0:9229;启动容器时映射调试端口-p 9229:9229并挂载代码卷;在launch.json中设置attach模式,指定端口、地址及路径映射;最后启动容器并在VS Code中附加调试器即可命中断点。

如何使用vs code调试在docker容器中运行的应用程序

调试运行在 Docker 容器中的应用程序是开发中常见的需求。使用 VS Code 可以方便地实现断点调试,只要正确配置开发环境和容器运行参数。关键是让调试器能连接到容器内的进程,并确保代码同步和端口映射正常。

1. 准备支持调试的 Docker 镜像

你的镜像需要包含调试工具并暴露调试端口。以 Node.js 应用为例,修改 Dockerfile:

  • 使用调试模式启动应用,例如 Node.js 添加 --inspect=0.0.0.0:9229
  • 确保监听地址为 0.0.0.0 而非 localhost,否则外部无法访问
  • 在 Dockerfile 中开放调试端口,如 EXPOSE 9229
示例 Dockerfile(Node.js):
CMD [ "node", "--inspect=0.0.0.0:9229", "server.js" ]

2. 启动容器并映射调试端口

运行容器时必须将调试端口从容器映射到宿主机:

  • 使用 -p 9229:9229 将容器的 9229 端口映射到本地
  • 确保容器内的代码与本地一致,可通过挂载卷实现热更新
  • 推荐使用 -v ${PWD}:/app 挂载源码目录
docker run -p 3000:3000 -p 9229:9229 -v ${PWD}:/app myapp

3. 配置 VS Code 的 launch.json

在项目根目录的 .vscode/launch.json 中添加调试配置:

AVCLabs *CLabs

AI移除视频背景,100%自动和免费

AVCLabs 337 查看详情 AVCLabs
  • 设置类型为 node
  • 使用 attach 模式连接到远程进程
  • 指定本地代码路径与容器中路径的映射关系
示例配置:
{ "type": "node", "request": "attach", "name": "Attach to Docker", "port": 9229, "address": "localhost", "localRoot": "${workspaceFolder}", "remoteRoot": "/app" }

4. 开始调试

一切就绪后,按以下步骤操作:

  • 先启动容器,确认应用和调试端口已运行
  • 在 VS Code 中打开对应项目
  • 在代码中设置断点
  • 从运行和调试面板选择“Attach to Docker”并启动
  • 当请求触发对应代码时,断点将被命中

基本上就这些。只要容器能连上、端口映射正确、路径匹配,VS Code 就能顺利调试。不复杂但容易忽略细节。

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


# vs code  # 迪庆给网站做网络推广  # 宝应公司网站建设  # 烟台超市网站建设项目  # 推荐使用  # 就能  # 调试器  # 端口映射  # 连接到  # 全攻略  # 容器内  # 如何使用  # 应用程序  # docker  # vscode  # js  # node.js  # json  # node  # app  # 端口  # 工具  # 开发环境  # 镜像  # 上海企业网站优化方法  # 医疗网站推广  # 运动服如何营销推广  # 刷关键词排名金手指12  # 营口seo排名  # 网站技术优化方案设计  # 南阳生产企业推广营销 


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


相关推荐: 铁路12306买票怎么选双人铺 铁路12306卧铺分配规则说明  植物大战僵尸95版游戏版下载_植物大战僵尸95版游戏版安装指南  Highcharts雷达图轴线交点数值标注指南  《异星探险家》古怪的物品作用介绍  荣耀 Magic10 Pro 系统更新提示失败_荣耀 Magic10 Pro 升级修复  《咸鱼之王》新版孙坚技能解析  构建可配置的J*aScript加权点击计数器与共享总计功能  oppo手机如何通过下拉通知栏截图_oppo手机通知栏快捷截图方法  《百果园》充值余额方法  C#中的Record类型有什么优势?C# 9新特性Record与Class的用法区别  CSS布局中意外顶部空白的调试与解决:深入理解padding-top  键盘声音异常怎么回事_键盘异响怎么处理  PHP中动态类名访问的类实例类型提示与静态分析实践  咸鱼怎么设置仅粉丝可见的动态_咸鱼动态粉丝可见设置方法  邦丰播放器频道搜索设置  Win10截图远程协助 Win10远程桌面截屏法【场景应用】  如何查询国外邮政编码_国外邮政编码查询的多种有效途径  mysql触发器如何编写_mysql触发器编写规范与代码示例讲解  感染了幽门螺杆菌一定会导致胃癌吗?蚂蚁庄园今日答案最新11.30  Final Cut Pro视频加EQ教程  《蓝色星原:旅谣》坐骑获取攻略  Python测试中模块导入路径解析的最佳实践  CSS过渡如何实现按钮悬停效果_transition属性控制背景颜色变化  Go语言中方法与接收器:指针和值类型的调用机制详解  c++如何实现观察者设计模式_c++行为型设计模式实战  《优志愿》修改手机号方法  西瓜视频怎么查看访客记录_西瓜视频访客记录查看方法  掌握产品代码正则表达式:避免常见陷阱与精确匹配  《磁力猫》最好用的磁官网  C++中的explicit关键字有什么作用_C++类型转换控制与explicit使用  手机坏了微信聊天记录怎么导出来 新手机恢复聊天记录技巧  QQ网页版官方账号登录入口 QQ网页版网页版入口快速导航  HTML Canvas文本样式定制指南:解决外部字体加载与应用难题  C++二维数组动态分配方法_C++指针与数组内存布局  《i莞家》修改昵称方法  《东方财富》条件单关闭方法  腾讯QQ邮箱官方入口 QQ邮箱网页版登录平台  汽车之家网页版免费登录_汽车之家官网首页直接进入  5G和6G的连接密度有什么区别 6G每平方公里能连接多少设备  《下一站江湖2》大雪山加入方法  创客贴登录页面入口 创客贴网页版最新网址链接  青橙手机语音助手怎么唤醒_青橙手机语音助手设置与唤醒方法  微信朋友圈怎么设置三天可见 微信朋友圈设置指定天数可见步骤【教程】  Flexbox布局实践:实现底部页脚与顶部粘性导航条的完美结合  mysql如何配置从库只读_mysql从库只读设置方法  苹果手机聊天记录删除了如何恢复  Go反射进阶:访问内嵌结构体中的被遮蔽方法  《波斯王子:失落的王冠》剑术大师打法攻略  word怎么将图片设置为页面背景并不影响打印_Word图片背景设置方法  Golang如何实现HTTP请求重试机制_Golang HTTP请求错误处理策略 

 2025-12-05

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

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

点击免费数据支持

提交您的需求,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.