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

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

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.hqwc.cn/news/17987.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Modbus tcp转ETHERCAT在Modbus软件中的配置方法

Modbus tcp和ETHERCAT是两种不同的协议&#xff0c;这给工业生产带来了很大的麻烦&#xff0c;因为这两种设备之间无法通讯。但是&#xff0c;远创智控YC-ECT-TCP网关的出现&#xff0c;却为这个难题提供了解决方案。 YC-ECT-TCP网关能够连接到Modbus tcp总线和ETHERCAT总线中…

Kubernetes —Pod 和容器日志

日志架构 应用日志可以让你了解应用内部的运行状况。日志对调试问题和监控集群活动非常有用。 大部分现代化应用都有某种日志记录机制。同样地&#xff0c;容器引擎也被设计成支持日志记录。 针对容器化应用&#xff0c;最简单且最广泛采用的日志记录方式就是写入标准输出和标…

容器【双例集合、TreeMap容器的使用、 Iterator接口、Collections工具类】(四)-全面详解(学习总结---从入门到深化)

目录 通过元素自身实现比较规则 通过比较器实现比较规则 双例集合 TreeMap容器的使用 Iterator接口 Collections工具类 通过元素自身实现比较规则 在元素自身实现比较规则时&#xff0c;需要实现Comparable接口中的 compareTo方法&#xff0c;该方法中用来定义比较规则。T…

【IoT物联网】IoT小程序在展示中央空调采集数据和实时运行状态上的应用

利用前端语言实现跨平台应用开发似乎是大势所趋&#xff0c;跨平台并不是一个新的概念&#xff0c;“一次编译、到处运行”是老牌服务端跨平台语言Java的一个基本特性。随着时代的发展&#xff0c;无论是后端开发语言还是前端开发语言&#xff0c;一切都在朝着减少工作量&#…

MySQL库表操作的作业

1.创建数据库 create database Market&#xff1b; mysql> show databases; -------------------- | Database | -------------------- | information_schema | | Market | | db1 | | mysql | | performance_schema | | …

如何用一部手机进行人体全身三维扫描

人体建模的应用真的是涵盖到了我们生活中的方方面面&#xff0c;真人潮玩、服饰定制、医疗康复、3D数字人等等领域&#xff0c;都离不开人体建模。 提到给人体建模&#xff0c;大家脑海里第一个浮现的画面&#xff0c;大多会是坐在电脑屏幕前&#xff0c;打开某个熟悉的建模的…

制作搭建宠物商城小程序,打造便捷的宠物购物体验

随着汽车行业的快速发展&#xff0c;越来越多的消费者开始关注汽车零配件的购买。为了提供更好的购物体验和便利&#xff0c;许多汽配商城开始关注并制作汽配商城小程序。那么&#xff0c;什么是汽配商城小程序&#xff1f;它又有哪些好处呢&#xff1f;本文将为您简单介绍汽配…

Transformer网络学习记录——基于空间约束自注意力和Transformer的RGB-D显著性检测方法研究

基于图半监督学习和图卷积的目标分割与跟踪算法研究 (wanfangdata.com.cn) 只能说看不懂&#xff0c;记录是为了有耐心慢消化 原文&#xff1a; 网络整体为通用的编码器-解码器架构 &#xff0c;总体上由骨干编码器、交互编码器、RGB 解码器、深度解码器组成。 具体来说&#…

操作系统接口 MIT 6.828 - 1. Lab 01: Xv6 and Unix utilities

本文会将lab1中的思路以及知识点进行分析&#xff0c;并作为作者学习MIT 6.828的一个学习总结&#xff0c;希望能够帮助到学习该lab的同学们 中文版书籍&#xff1a;中文版书籍 实验教案地址&#xff1a;教案地址 操作系统接口 在操作系统中&#xff0c;为了能够有效地与操作系…

【SCI征稿】计算机算法、通信、人工智能、网络、物联网、机器学习等领域,13本期刊影响因子上涨,这几本期刊录用快

2023年JCR发布后&#xff0c;计算机领域SCI期刊有13本影响因子上涨&#xff0c;审稿周期短&#xff0c;进展顺利&#xff1a; 1️⃣IF&#xff1a;6.0-7.0↑&#xff0c;JCR2区&#xff0c;中科院3区&#xff0c;SCI&EI 双检&#xff0c;CCF-C类 征稿领域&#xff1a;概率…

邮箱推荐和(警告)使用qq邮箱的坏处

qq如果发布违规消息&#xff0c;比如群聊无意发布会导致你账号封号&#xff0c;而且随着次数增多&#xff0c;会导致永久封号&#xff0c;你的qq音乐&#xff0c;qq浏览器&#xff0c;qq游戏&#xff0c;{qq邮箱}&#xff0c;全部会无法登录&#xff0c;比如需要登陆邮箱验证码…

【Java】面向对象基础 之 静态字段和静态方法

1、静态字段 在一个class中定义的字段&#xff0c;我们称之为实例字段。实例字段的特点是&#xff0c;每个实例都有独立的字段&#xff0c;各个实例的同名字段互不影响。 还有一种字段&#xff0c;是用static修饰的字段&#xff0c;称为静态字段&#xff1a;static field。 …