VsCode调试远程服务器上面的Docker容器

第一步 VsCode 连接ssh

  1. 下载安装VsCode(Visual Studio Code),首次安装会提示你安装Chinese(Simplified)中文简体,安装完后重新打开就是汉化界面了。
  2. 在左边侧边栏找到扩展选项,然后安装Remote Development插件,里面包含了Remote SSHWSLDev ContainersRemote - Tunnels四个插件。

    image.png

  3. 安装后你的左边侧边栏就会出现远程资源管理器了,然后切换到远程(隧道/SSH),鼠标移到下面的SSH,就会出现一个+号了,点击一下+号。

    image.png

  4. 提示需要输入ssh命令。输入示例:ssh root@xxx.xxx.xxx.xxx 即可。root是服务器用户名,xxx.xxx.xxx.xxx是远程ip地址。输入完后回车

    image.png

  5. 回到刚刚到界面,点击图片刷新一下,就可以看到你刚刚输入的ip地址了。右键这个ip,选择在当前窗口中连接即可。

    image.png

  6. 后面会让你输入密码,每次打开都要输入。可以参考一下附录ssh免密配置,强烈建议去配置一下,大概几分钟可以搞定,后续会方便很多。

第二步,启动容器服务

  1. 下面以trt2023复赛为例。在服务器终端,先clone一下你的代码,然后进入你的代码目录。
  2. 创建并后台启动docker容器:
docker run --gpus all \
  --name trt2023 \
  -d \
  --ipc=host \
  --ulimit memlock=-1 \
  --restart=always \
  --ulimit stack=67108864 \
  -v ${PWD}:/root/workspace/trt2023 \
  [镜像名称] sleep 8640000

第三步,VsCode连接容器

  1. VsCode侧边栏选择远程资源管理器,然后下拉框选择开发容器,点击一下刷新(如果没配置ssh免密,就需要输入一下密码)。

    image.png

  2. 选中刚刚到容器,选择在当前窗口中附加即可。

    image.png

  3. 然后打开你刚刚映射的目录/root/workspace/trt2023即可。
  4. 安装一下Python插件,即可开始享受愉快的编码调试过程了。

其他

ssh免密登录配置
  1. 本机生成ssh key,一路回车即可。若本机已经生成过了,则可以忽略。
ssh-keygen
  1. 复制本机公钥。
  • for Linux/Mac
cat ~/.ssh/id_rsa.pub
  • for Windows。去文件管理器,一般在C:\user\xxxx\.ssh目录下,如果看不到.ssh目录,则可能需要打开隐藏文件显示。然后用记事本打开id_rsa.pub文件,copy里面的内容即可。
  1. 连接到远程服务器(注意是连服务器,不是连服务器的容器)。然后做以下配置。
  • 创建.ssh目录,如果目录已经存在则可以忽略。
mkdir ~/.ssh
  • 看看authorized_keys文件是否存在(不存在可以用touch ~/.ssh/authorized_keys命令手动创建一个),并且观察其权限是否ok。
ls -lh ~/.ssh/authorized_keys
  • 输出下面这个说明是ok的,-rw说明是root用户可读可写,组用户和宾客用户都不行。
-rw------- 1 root root
  • 如果你实在不确定是不是ok,暴力一下,直接重新给他授权即可。
chmod 600 ~/.ssh/authorized_keys
  1. 将你之前复制的公钥粘贴到刚刚到授权文件里面。可以用下面的命令一键完成。
echo "你的公钥内容xxxx" >> ~/.ssh/authorized_keys
  1. 到这一步基本是ok了,如果不ok,则需要检查一下ssh配置。
  • 编辑ssh配置
vim /etc/ssh/sshd_config
  • 修改前
#StrictModes yes
#AuthorizedKeysFile .ssh/authorized_keys
PermitRootLogin prohibit-password
  • 修改后
StrictModes no
AuthorizedKeysFile .ssh/authorized_keys
PermitRootLogin yes

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

糖尿病可能是一团虚火,肝肾同源,肝阴不足。

其实对于很多的糖尿病患者来说,他的问题本质可能是一团虚火,就拿前段时间我的门诊一个患者为例,之前患有高血压,总是眩晕烦躁,常常失眠,大概近四个月出现多饮、多尿怎么喝水也不解渴,经过检查确…

每日一题---OJ题: 链表的回文结构

片头 嗨! 小伙伴们,大家好! 今天我们来一起学习这道OJ题--- 链表的回文结构 嗯...这道题好像不是很难,我们来分析分析 举个例子: 我们可以看到,上图中的两个链表都是回文结构: 即链表的回文结构是指一个链表中的结点值从前往后读和从后往前读都是一样的结构。也就是说&#xf…

春秋云境:CVE-2022-32991[漏洞复现]

从CVE官网查询该漏洞相关信息 该漏洞是由于welcome.php中的eid参数包含了SQL注入漏洞 则我们的目标就在于寻找welcome.php地址以及相关的可注入eid参数 开启靶机 先在页面正常注册、登录一个账号。密码随便填 进入了home目录,这里有三个话题可以选择开启 随便选…

word批量修改表格样式

利用宏,批量选中表格,然后利用段落和表设计来操作。 利用宏,批量选中表格,参考百度安全验证段落,表格里面的内容有空格,应该是有缩进,在段落中去掉缩进,即缩进-特殊,选择…

Next.js 14 App Router引入 farmer-motion 初始化异常解决,顺带学点知识

前言 farmer-motion 是一个非常好用的动画库,当然用来做组件切换和路由切换过渡更不在话下。 记录一下,Next.js 14 App Router 下引入初始化异常的解决姿势,顺带扯一下 next.js 的知识点; 问题 过渡组件代码 我们拿 farmer-m…

https证书是什么,怎么申请

https证书的名称有很多,其本名是SSL/TLS数字证书,本意是实现https访问的证书,故而很多人会称之为https证书,又因为其需要部署于域名服务器之上,所以也有人称之为域名证书。 所以https证书又名SSL证书、域名证书等。 h…

SPN的相关利用(上)

什么是SPN 服务主体名称(SPN)是服务实例,可以理解为一个服务,比如mssql,http等等的唯一标识符。如果在整个林或域中的计算机上安装多个服务实例,则每个实例都必须具有自己的 SPN,Kerberos 身份验证使用 SPN 将服务实例与服务登录…

深入理解 pytest Fixture 方法及其应用

当涉及到编写自动化测试时,测试框架和工具的选择对于测试用例的设计和执行非常重要。在Python 中,pytest是一种广泛使用的测试框架,它提供了丰富的功能和灵活的扩展性。其中一个很有用的功 能是fixture方法,它允许我们初始化测试环…

Eland上传bge-large-zh-v1.5向量化模型到ElasticSearch中

最近需要做一些向量检索,试试ES 一、准备 系统:MacOS 14.3.1 ElasticSearch:8.13.2 Kibana:8.13.2 本地单机环境,无集群,也不基于Docker BGE是一个常见的文本转向量的模型,在很多大模型RAG应…

Objective-C网络数据捕获:使用MWFeedParser库下载Stack Overflow示例

概述 Objective-C开发中,网络数据捕获是一项常见而关键的任务,特别是在处理像RSS源这样的实时网络数据流时。MWFeedParser库作为一个优秀的解析工具,提供了简洁而强大的解决方案。本文将深入介绍如何利用MWFeedParser库,以高效、…

【Linux系统编程】第五弹---基本指令(三)

✨个人主页: 熬夜学编程的小林 💗系列专栏: 【C语言详解】 【数据结构详解】【C详解】【Linux系统编程】 目录 1、grep指令 2、zip/unzip指令 3、tar指令 4、bc指令 5、uname指令 6、重要的几个热键 7、拓展指令 总结 1、grep指令 …

HTML学习笔记:链接target属性

关于target的使用&#xff1a; <a href"https://www.baidu.com" target"_parent">网址链接</a>其中关于target四个特殊目标的理解&#xff0c;W3school上的解释为&#xff1a; HTML 标签的 target 属性 其中_black和_self两个属性很好理解&…

谷粒商城part2——环境篇

这里是过来人的学习建议&#xff1a; 1、如有条件电脑内存至少16G起步&#xff0c;条件进一步加个屏幕&#xff0c;条件更进一步租一台至少4G内存的X86架构云服务器&#xff0c;所有部署的东西全扔云服务器上 2、P16&#xff0c;P17没法搭起来的建议照着rerenfast的github上的教…

一文了解OCI标准、runC、docker、contianerd、CRI的关系

docker和contanerd都是流行的容器运行时&#xff08;container runtime&#xff09;&#xff1b;想讲清楚他们两之间的关系&#xff0c;让我们先从runC和OCI规范说起。 一、OCI标准和runC 1、OCI&#xff08;open container initiative&#xff09; OCI是容器标准化组织为了…

数字化实践案例丨捷安高科项目管理系统打造项目与业务双联动

30秒快读 为了解决郑州捷安高科股份有限公司&#xff08;简称&#xff1a;捷安高科&#xff09;公司规模化和业务扩展进程中带来的系列管理痛点&#xff0c;如项目的成本收益不透明、跨部门协调困难、人力资源配置和投入产出不清晰等&#xff0c;捷安高科启动了项目管理系统建设…

【Pytorch】Conv1d

conv1d 先看看官方文档 再来个简单的例子 import torch import numpy as np import torch.nn as nndata np.arange(1, 13).reshape([1, 4, 3]) data torch.tensor(data, dtypetorch.float) print("[data]:\n", data) conv nn.Conv1d(in_channels4, out_channels1…

常见面试算法题-数组二叉数

■ 题目描述 【数组二叉树】 二叉树也可以用数组来存储&#xff0c;给定一个数组&#xff0c;树的根节点的值存储在下标1&#xff0c;对于存储在下标N的节点&#xff0c;它的左子节点和右子节点分别存储在下标2*N和2*N1&#xff0c;并且我们用值-1代表一个节点为空。 给定一…

Interpretable3D:一种用于3D点云的即时可解释分类器

Interpretable3D&#xff1a;一种用于3D点云的即时可解释分类器 paper github

【病毒分析】phobos家族2700变种加密器分析报告

1.样本信息 ⽂件名Fast.exeSHA2563c95bd8e14f6aa92e94ec3318d23a8cc34192259MD528c6c0b4f54912ec73c9bfeb3f2a8f07运行平台Windows 2.感染迹象 2.1 文件结构分析 整体文件大小为200k,把冗余数据去掉,发现仍然可以运行,大小变为56k。与phobos家族的标准一致。 2.1.1 勒索信 …

python笔记 | 哥德巴赫猜想

哥德巴赫猜想&#xff1a;每个不小于6的偶数都可以表示成两个素数之和。 素数&#xff1a;只能被1和自身整除的正整数。就是大于1且除了1和它本身之外没有其他因数的数。例如&#xff0c;2、3、5、7、11等都是素数&#xff0c;而4、6、8、9等则不是素数。 下面这段Python代码…