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

第一步 VsCode 连接ssh

  1. 下载安装VsCode(Visual Studio Code),首次安装会提示你安装Chinese(Simplified)中文简体,安装完后重新打开就是汉化界面了。

  2. 在左边侧边栏找到扩展选项,然后安装Remote Development插件,里面包含了Remote SSH, WSL, Dev ContainersRemote - Tunnels四个插件。

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

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

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

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

第二步,启动容器服务

  1. 下面以trt2023复赛为例。在服务器终端,先clone一下你的代码,然后进入你的代码目录。
  2. 创建并后台启动docker容器:
ini 复制代码
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免密,就需要输入一下密码)。

    xml 复制代码
    <p class="img-center"><img alt="image.png" isbindedload="true" src="https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/425be9d27cbc45a7ba93ed7d635e8082~tplv-k3u1fbpfcp-zoom-1.image" width="718" /></p>
    </li>
    <li>选中刚刚到容器,选择<code>在当前窗口中附加</code>即可。
    <p class="img-center"><img alt="image.png" isbindedload="true" src="https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/ee5104ab4df34a4695dca942f70ff34a~tplv-k3u1fbpfcp-zoom-1.image" width="706" /></p>
    </li>
    <li>然后打开你刚刚映射的目录<code>/root/workspace/trt2023</code>即可。</li>
    <li>安装一下<code>Python</code>插件,即可开始享受愉快的编码调试过程了。</li>

其他

ssh免密登录配置
  1. 本机生成ssh key,一路回车即可。若本机已经生成过了,则可以忽略。

    ssh-keygen

  2. 复制本机公钥。

  • for Linux/Mac
bash 复制代码
cat ~/.ssh/id_rsa.pub
  • for Windows。去文件管理器,一般在C:\user\xxxx\.ssh目录下,如果看不到.ssh目录,则可能需要打开隐藏文件显示。然后用记事本打开id_rsa.pub文件,copy里面的内容即可。
  1. 连接到远程服务器(注意是连服务器,不是连服务器的容器)。然后做以下配置。
  • 创建.ssh目录,如果目录已经存在则可以忽略。
bash 复制代码
mkdir ~/.ssh
  • 看看authorized_keys文件是否存在(不存在可以用touch ~/.ssh/authorized_keys命令手动创建一个),并且观察其权限是否ok。
bash 复制代码
ls -lh ~/.ssh/authorized_keys
  • 输出下面这个说明是ok的,-rw说明是root用户可读可写,组用户和宾客用户都不行。
diff 复制代码
-rw------- 1 root root
  • 如果你实在不确定是不是ok,暴力一下,直接重新给他授权即可。
bash 复制代码
chmod 600 ~/.ssh/authorized_keys
  1. 将你之前复制的公钥粘贴到刚刚到授权文件里面。可以用下面的命令一键完成。
bash 复制代码
echo "你的公钥内容xxxx" >> ~/.ssh/authorized_keys
  1. 到这一步基本是ok了,如果不ok,则需要检查一下ssh配置。
  • 编辑ssh配置
bash 复制代码
vim /etc/ssh/sshd_config
  • 修改前
shell 复制代码
#StrictModes yes
#AuthorizedKeysFile .ssh/authorized_keys
PermitRootLogin prohibit-password
  • 修改后
bash 复制代码
StrictModes no
AuthorizedKeysFile .ssh/authorized_keys
PermitRootLogin yes
相关推荐
崔庆才丨静觅3 小时前
hCaptcha 验证码图像识别 API 对接教程
前端
passerby60614 小时前
完成前端时间处理的另一块版图
前端·github·web components
掘了4 小时前
「2025 年终总结」在所有失去的人中,我最怀念我自己
前端·后端·年终总结
崔庆才丨静觅4 小时前
实用免费的 Short URL 短链接 API 对接说明
前端
崔庆才丨静觅4 小时前
5分钟快速搭建 AI 平台并用它赚钱!
前端
崔庆才丨静觅5 小时前
比官方便宜一半以上!Midjourney API 申请及使用
前端
Moment5 小时前
富文本编辑器在 AI 时代为什么这么受欢迎
前端·javascript·后端
崔庆才丨静觅5 小时前
刷屏全网的“nano-banana”API接入指南!0.1元/张量产高清创意图,开发者必藏
前端
剪刀石头布啊5 小时前
jwt介绍
前端
爱敲代码的小鱼5 小时前
AJAX(异步交互的技术来实现从服务端中获取数据):
前端·javascript·ajax