基于vscode连接到远程服务中debug

news2024/10/5 14:23:17

本文章主要讲解以下两点的任务

1.在windows的vscode中去debug 本机子系统wsl2中运行的docker容器

该篇文件参考知乎上这篇文章

vscode远程连接到本机 wsl2子系统 中正在运行的 docker容器,该docker中有一个flask实例,通过vscode远程debug它

1.1安装vscode插件

1.安装 VS Code WSL 扩展
在这里插入图片描述
此扩展使你能够在 VS Code 中打开在 WSL 上运行的 Linux 项目(无需担心路径问题、二进制兼容性或其他跨 OS 的难题)。

1.2安装 VS Code 开发容器扩展(Dev Containers)

在这里插入图片描述
此扩展使你能够打开容器内的项目文件夹或存储库,并利用 Visual Studio Code 的完整功能集在容器中执行开发工作。

1.3安装 VS Code Docker扩展(docker)

在这里插入图片描述
此扩展添加了从 VS Code 内生成、管理和部署容器化应用程序的功能。 (需要开发容器扩展才能将容器实际用作开发环境。)

1.4安装 VS Code Remote-ssh扩展
在这里插入图片描述
安装完 docker,以及 Remote - SSH 后,vscode左侧页面会出现以下两个图标
在这里插入图片描述

1.5通过docker扩展连接容器并debug

docker扩展里面有 CONTAINERS ,会自动加载存在的docker容器,右击想要连接的容器,点击附加到 vscode
在这里插入图片描述
可能出现的问题:
显示附加到容器时出错

解决办法:
尝试用 管理员身份启动 windows中的vscode再重试

1.6在远程连接的容器中安装python扩展用于debug

在这里插入图片描述
至此,该容器中的flask应用可以在vscode中debug了
注意:
容器中已经运行了5000端口的flask进程,你想debug,要么停止该进程,要么换一个端口进行debug
在这里插入图片描述

2.在windows的vscode连接到任何远程服务器(也可debug),并开发

2.1 配置docker(可选)

需要安装 Remote-SSH扩展
如果要远程连接的是docker容器,需要对docker容器内进行配置,步骤如下

  1. docker容器需要暴露容器中的22端口
  2. 容器中需要支持vim,ssh,wget这些命令
  3. 以root身份进入docker进行ssh配置

1.docker exec -it -u root flask_demo bash
2.进入容器后 输入passwd,修改默认密码
3.修改ssh配置文件 vim /etc/ssh/sshd_config
PermitRootLogin yes #允许root用户使用ssh登录,文件内容最后面添加
4.假如没有该文件,需要给容器安装openssh-server和openssh-client,通过 apt-get 下载
5.修改完配置后,重启ssh;/etc/init.d/ssh restart
6.退出容器,测试连接; ssh root@<目标ip> -p <容器中22端口映射出的端口号>

2.2 配置电脑环境

1.安装git
2.在环境变量里面加入新的git路径,让其他路径下的终端输入git -v可以显示git版本信息
在这里插入图片描述

2.3 vscode远程连接
在这里插入图片描述
回车后输入ssh连接密码
在这里插入图片描述
打开项目目录
在这里插入图片描述
连接后,若想debug,需要在远程连接服务器上下载python扩展包用于debug
在这里插入图片描述
至此,可以在vscode中连到服务器中,并debug服务器中的flask应用
在这里插入图片描述
可能出现的问题

远程连接不上,终端和vscode都连接失败,并且出现下图的报错
在这里插入图片描述
解决办法

  1. 检查是否开代理,打开的话关闭
  2. 登入到容器中重新启动ssh,/etc/init.d/ssh restart

出现如下图的报错
在这里插入图片描述
解决办法
1.vscode没有以管理员身份打开,以管理员身份打开后重试

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/725729.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

基于matlab配置单目鱼眼摄像头(附源码)

一、前言 此示例演示如何将鱼眼相机模型转换为针孔模型&#xff0c;并构建相应的单目相机传感器仿真。 要模拟安装在车辆中的单目摄像头传感器&#xff0c;请执行以下步骤&#xff1a; 通过使用棋盘格校准相机来估计固有的相机参数。内在参数描述了鱼眼镜头相机本身的特性。 …

抖音seo矩阵系统源码部署开发-可二开(二)

抖音seo短视频剧组嗯系统是以人工智能技术&#xff0c;通过多个短视频平台&#xff0c;多个短视频账号为核心&#xff0c;视频自动生成、自动发布智能优化&#xff0c;以达到矩阵营销的目的&#xff0c;从根本上解决短视频曝光难和获客少等难题&#xff0c;从而快速增加商家的运…

基于matlab使用卷积神经网络对晶圆图上的八种制造缺陷进行分类(附源码)

一、前言 此示例展示了如何使用简单的卷积神经网络 &#xff08;CNN&#xff09; 对晶圆图上的八种制造缺陷进行分类。 晶圆是半导体材料&#xff08;通常是硅&#xff09;的薄盘&#xff0c;用作集成电路的基础。每个晶圆产生几个单独的电路&#xff08;IC&#xff09;&…

XXX汽车ERP系统供应商索赔业务上线,助力业财数据快速闭环(投稿数据化月报四)

供应商三包索赔款项源起QMS质量系统&#xff0c;联动金税系统完成发票开具&#xff0c;最终在SAP系统中创建完成财务凭证。该流程上线前为手工操作&#xff0c;费时费力且效率低下容易出错。针对该业务现状&#xff0c;SAP与QMS业务顾问及开发团队组成开发小组&#xff0c;导入…

Java性能权威指南-总结26

Java性能权威指南-总结26 数据库性能的最佳实践异常日志 数据库性能的最佳实践 异常 Java的异常处理一直有代价高昂的坏名声。其代价确实比处理正常的控制流高一些&#xff0c;不过在大多数情况下&#xff0c;这种代价并不值得浪费精力去绕过。另一方面&#xff0c;因为异常处…

添加 zabbix 客户端主机 自定义监控内容 自动发现与注册(得不到假装不想要)

文章目录 一、添加zabbix客户端主机2.关闭防火墙和修改主机名 二、自定义监控内容1.需求&#xff1a;限制登录人数不超过 3 个&#xff0c;超过 3 个就发出报警信息在客户端创建自定义 key在 Web 页面创建自定义监控项模板 三、zabbix 自动发现与自动注册zabbix 自动发现&#…

HCIE-datacom | 网络准入控制

一、前言 之前提供网络技术咨询服务时&#xff0c;有一位实习生同学向我咨询了有关网络准入的相关情景&#xff0c;在这里我结合华为HCIE-datacom中“网络准入控制”这一节等相关资料&#xff0c;对网络准入技术进行一下简单的理论性说明&#xff0c;与资料的讲解思路相同&…

基于matlab使用AprilTag标记进行相机校准(附源码)

一、前言 AprilTags被广泛用作物体检测、定位应用的视觉标记&#xff0c;并作为相机校准的目标。AprilTags类似于QR码&#xff0c;但旨在编码更少的数据&#xff0c;因此可以更快地解码&#xff0c;这对于实时机器人应用程序非常有用。使用 AprilTags 作为校准模式的优点包括更…

Docker学习笔记21

案例三&#xff1a;使用容器运行一个wordpress应用&#xff1a; 语言开发环境&#xff08;PHP&#xff09; 数据库 第一步&#xff1a;创建一个工程目录&#xff1a; mkdir wordpress cd wordpress 第二步&#xff1a;创建一个docker-compose.yaml文件&#xff1a; [rootnode…

Mybatis进阶(2)——为什么用mybatis? 多表查询解决 延迟加载 mybatis缓存 【未完待续】

目录 引出一、为啥用mybatis&#xff1f;二、多表查询之一对多【待续】1.一对多的情况方案一&#xff1a;采用多表联查的方式&#xff08;1&#xff09;resultMap&#xff08;2&#xff09;查询的java接口和xml的SQL语句&#xff08;3&#xff09;对应关系分析&#xff08;4&am…

使用docker搭建minio分布式对象存储系统

使用docker搭建minio分布式对象存储系统 这里我简单的和大家介绍一下什么是minio &#xff1f; 附上Minio官网链接&#xff1a;https://minio.org.cn/ MinIO是一种开源的对象存储服务器&#xff0c;通过使用标准的HTTP/REST API来访问和管理数据。它采用分布式架构&#xff0c…

【SAP UI5 控件学习】DAY02 Input组PartII

1. CheckBox控件 1.1 最普通的CheckBox <CheckBox text"Option a" selected"true" />如果需要设置选中状态&#xff0c;需要设置selected属性为true 1.2 部分选中CheckBox <CheckBox text"Option partially selected" selected"t…

【ElasticSearch】DSL查询语法

文章目录 1、DSL查询分类2、DSL基本语法3、全文检索查询4、精确查询5、地理查询6、复合查询--相关性打分算法7、复合查询之Function Score Query8、复合查询之BooleanQuery 1、DSL查询分类 Elasticsearch提供了基于JSON的DSL&#xff08;Domain Specific Language&#xff09;…

【ARM Coresight 系列文章 2 - ARM Coresight 介绍】

文章目录 1.1 ARM Coresight 介绍1.1.1 ARM Coresight 发展历史 1.2 ARM Coresight 框架介绍1.1.1 Trace 通路1.1.3 Debug 通路1.1.4 Trigger 通路 1.1 ARM Coresight 介绍 ARM Coresight是ARM公司提供的一种调试和跟踪技术&#xff0c;用于ARM处理器的调试和性能分析。它通过…

Java中规模软件开发实训——简单的文本编辑器(代码注释详解)

✨博主&#xff1a;命运之光 &#x1f338;专栏&#xff1a;Python星辰秘典 &#x1f433;专栏&#xff1a;web开发&#xff08;html css js&#xff09; ❤️专栏&#xff1a;Java经典程序设计 ☀️博主的其他文章&#xff1a;点击进入博主的主页 前言&#xff1a;在现代社会中…

k8s如何伸缩应用程序和执行滚动更新

一、伸缩应用程序 我们创建了一个 Deployment (opens new window)&#xff0c;然后通过 服务 (opens new window)提供访问 Pod 的方式。我们发布的 Deployment 只创建了一个 Pod 来运行我们的应用程序。当流量增加时&#xff0c;我们需要对应用程序进行伸缩操作以满足系统性能…

第五章:L2JMobius学习 – 快速部署L2JMobius汉化版

L2JMobius是一套开源的 LineageII 的服务器端代码&#xff0c;使用Java语言编写。在前面的章节中&#xff0c;我们安装了mariadb10数据库以及jdk17运行环境&#xff0c;这两个是必须的。紧接着&#xff0c;我们又安装了eclipse开发工具&#xff0c;然后创建了“L2J_Mobius”Jav…

按键输入实验(stm32)

目录 按键的相关代码key.ckey.h LED的相关代码BEEP的相关代码beep.cbeep.h main.c代码的相关说明相关硬件说明实验结果 说明&#xff1a;以下内容参考正点原子资料 按键的相关代码 key.c void KEY_Init(void) //IO初始化 { GPIO_InitTypeDef GPIO_InitStructure;RCC_APB2Peri…

ModaHub魔搭社区:可视化的AI原生云向量数据库 Milvus 2.2.9 :JSON、PartitionKey、Dynamic Schema

目录 新特性 功能增强 其他优化 问题修复 亮点颇多、精彩程度堪比大版本的 Milvus 2.2.9 来啦&#xff01; 随着 LLM 的持续火爆&#xff0c;众多应用开发者将目光投向了向量数据库领域&#xff0c;而作为开源向量数据库的领先者&#xff0c;Milvus 也充分吸收了大量来自社…

ROS:话题名称设置

目录 一、 前言二、rosrun设置话题重映射三、launch文件设置话题重映射四、编码设置话题名称4.1C4.1.1全局名称4.1.2相对名称4.1.3私有名称 4.2Python 实现4.2.1全局名称4.2.2相对名称4.2.3私有名称 一、 前言 在ROS中节点名称可能出现重名的情况&#xff0c;同理话题名称也可…