只需四步,让Vscode连接远程服务器中的docker容器进行开发

news2025/1/23 9:15:23

0. 前提条件

  • 本地windows或其他环境中安装了Vscode,Vscode中安装了Remote-SSH拓展(用于利用SSH连接docker容器)
  • 远程服务器中安装了docker,并且拉取了自己需要的镜像(image)
  • 有root权限,能使用sudo命令

完成以下过程,可以像本地开发一样,对容器进行开发和测试。

1. 在服务器端启动Docker容器

docker run -itd -p 10008:10008 -v /dev/shm:/dev/shm --name huawei  --runtime=nvidia swr.cn-south-1.myhuaweicloud.com/mindspore/mindspore-gpu-cuda11.1:1.10.1 /bin/bash
  • -itd: 分别表示以交互式模式、分离模式(在后台运行)以及为容器分配一个终端。

  • -p 10008:10008: 这将主机的端口 10008 映射到容器的端口 10008,以便可以通过主机的端口访问容器内的服务。 重点配置,同时用于后续VScode访问。

  • -v /dev/shm:/dev/shm: 这将主机的 /dev/shm 目录挂载到容器的 /dev/shm 目录,为了共享内存,可以不指定

  • –name huawei: 这为容器指定了一个名称,即 “huawei”。

  • –runtime=nvidia: 这表示使用 NVIDIA GPU 的运行时。一般项目可不指定

  • swr.cn-south-1.myhuaweicloud.com/mindspore/mindspore-gpu-cuda11.1:1.10.1: 这是容器镜像的名称和版本,指定了使用的 MindSpore 版本。

  • /bin/bash: 这是在容器中要运行的命令,即启动一个 Bash shell。

2. 进入刚刚启动的docker容器

# 查看正在运行的镜像
docker ps -s
# 进入docker容器
docker exec -it <容器ID> /bin/bash

在这里插入图片描述

3. 在容器中安装SSH服务

apt-get update
apt-get install openssh-server
apt-get install openssh-client
apt-get install ssh
apt-get install vim
  • 接着修改ssh文件信息,将容器的10008端口暴露出来允许root用户使用ssh登录
vim /etc/ssh/sshd_config
# 在刚刚打开的文件里添加以下内容,保存后退出:
Port 10008
PermitRootLogin yes #允许root用户使用ssh登录

  • 重启ssh服务
/etc/init.d/ssh restart
  • 设置root用户连接密码
passwd

4. 在VScode中进行配置,连接docker

  • 在vscode中shfit+ctrl+p,输入如下字符,配置ssh文件(vscode需安装remote-ssh拓展)
Open ssh

在这里插入图片描述

  • 在Configuration中添加:
Host <name>
  HostName <服务器IP>
  Port 10008
  User root
  ForwardAgent yes

在这里插入图片描述

  • 此时可以通过Vscode连接远程服务器的10008端口,由于在启动容器时,设置了端口映射,所以在连接服务器10008端口后,服务器将自动转发到容器的10008端口。
  • 点击左下角蓝色图标,选择connect remote host
    在这里插入图片描述
  • 选择刚刚加入的配置HOST,输入密码进入容器内部
    在这里插入图片描述

此时已经进入容器内部,可以像在本地和远程服务器一样进行容器内部的开发与测试了。后续可以将测试完成的容器重新打包为镜像。

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

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

相关文章

【环境配置】Windows10终端和VSCode下能够直接打开Anaconda-Prompt

很多小伙伴在 Windows 下做深度学习开发的时候&#xff0c;遇到终端没有在 Linux 那么方便&#xff0c;那么我们现在就可以来设置一下&#xff1b;这样我们也可以在文件夹内部右键打开终端&#xff0c;也可以在 VS Code 里面新建一个虚拟环境的控制台&#xff1b;这里主要是针对…

HCIP-OpenStack组件介绍

OpenStack排错思路&#xff1a; OpenStack查询日志&#xff0c;所有日志都在/var/log/模块名称下面。 OpenStack修改配置&#xff0c;所有配置文件都在/etc/模块名称下面。 openstack把这些组件服务都集成到httpd服务中了&#xff0c;目的是为了提升性能。登入不了openstack在…

Spark MLlib机器学习库(一)决策树和随机森林案例详解

Spark MLlib机器学习库(一)决策树和随机森林案例详解 1 决策树预测森林植被 1.1 Covtype数据集 数据集的下载地址&#xff1a; https://www.kaggle.com/datasets/uciml/forest-cover-type-dataset 该数据集记录了美国科罗拉多州不同地块的森林植被类型&#xff0c;每个样本…

Git 如何使用TortoiseGit 操作本地仓库

初始化仓库 方法一: 新建一个文件夹,进入文件夹内部操作 1、右键--> 在这里创建Git 版本库 注意: 不要直接在桌面上操作,否则桌面就是一个仓库 方法二: 1、右键-->Git GUI here 方法三: 命令行模式 1、 git init 创建完毕仓库,我们发现,此时我们创建的文件夹下…

安防视频监控有哪些存储方式?哪种存储方式最优?

视频监控系统涉及到大量的视频数据&#xff0c;需要对这些数据进行存储&#xff0c;以备日后查看或备份。视频监控的存储需求需要根据场所的实际情况进行选择&#xff0c;以保证监控数据的有效存储和日后的调阅、回溯。 当前视频监控的存储方式&#xff0c;通常有以下几种&…

Redis数据库的可视化工具AnotherRedisDesktopManager使用+抖音直播小玩法实践

一、它是什么 Another Redis DeskTop Manager 是一个开源项目&#xff0c;提供了以可视化的方式管理 Redis 的功能&#xff0c;可供免费下载安装&#xff0c;也可以在此基础上进行二次开发&#xff0c;主要特点有&#xff1a; 支持 Windows 平台和 MacOS 平台 支持查询 Key、…

分布式图数据库 NebulaGraph v3.6.0 正式发布,强化全文索引能力

本次 v3.6.0 版本&#xff0c;主要强化全文索引能力&#xff0c;以及优化部分场景下的 MATCH 性能。 强化 强化增强全文索引功能&#xff0c;具体 pr 参见&#xff1a;#5567、#5575、#5577、#5580、#5584、#5587 优化 支持使用 MATCH 子句检索 VID 或属性索引时使用变量&am…

蓝帽杯2022

计算机取证 1 内存取证获取开机密码 现对一个windows计算机进行取证&#xff0c;请您对以下问题进行分析解答。 从内存镜像中获得taqi7的开机密码是多少&#xff1f;&#xff08;答案参考格式&#xff1a;abcABC123&#xff09; 首先我们直接对 1.dmp 使用 vol查看 py -2 v…

WSL2 Ubuntu子系统安装OpenCV

文章目录 前言一、&#xfeff;基本概念二、操作步骤1.下载源码2.安装依赖3.运行编译4.配置路径 前言 OpenCV用C语言编写&#xff0c;它的主要接口也是C语言&#xff0c;但是依然保留了大量的C语言接口。该库也有大量的Python, Java and MATLAB/OCTAVE (版本2.5)的接口。这些语…

大数据_SLA,SLO,SLI 名词解读

参考 &#xff1a; SLI、SLO和SLA&#xff0c;一文彻底搞懂&#xff01;&#xff01;&#xff01;_木给哇啦丶的博客-CSDN博客 前言 SLO和SLA是大家常见的两个名词&#xff1a;服务等级目标和服务等级协议。 云计算时代&#xff0c;各大云服务提供商都发布有自己服务的 SLA 条…

应用层读取wfp防火墙阻断记录

前言 之前的文档中&#xff0c;描写了如何对WFP防火墙进行操作[链接在此]&#xff0c;这篇文档中&#xff0c;描述如何获取WFP防火墙进行阻断的操作记录。 需要注意的坑点 使用FWPM_NET_EVENT_TYPE获取防火墙日志时&#xff0c;需要注意&#xff0c;只有丢弃和内核丢弃&…

指定CUDA版本失败的解决方案

新电脑安装的WIN11系统&#xff0c;因为CUDA只有11和12目前能装到WIN11上&#xff0c;所以就装了一个CUDA 11.7。但是编译PBRT失败&#xff0c;所以无奈之下又装了CUDA 12。 但是因为我有的代码需要CUDA 11里的函数&#xff0c;这些函数在CUDA12里被彻底删除了&#xff0c;但是…

CentOS7的journalctl日志查看方法

多台服务器间免密登录|免密拷贝 Cenos7 搭建Minio集群部署服务器(一) Cenos7 搭建Minio集群Nginx统一访问入口|反向动态代理(二) Spring Boot 与Minio整合实现文件上传与下载(三) CentOS7的journalctl日志查看方法 MySQL8.xx一主两从复制安装与配置 1、概述 日志管理工…

下单接口调优实战,性能提高10倍

目录 概述 用到的工具和环境 工具 环境 找瓶颈 总结 概述 最近公司的下单接口有些慢&#xff0c;老板担心无法支撑双11&#xff0c;想让我优化一把&#xff0c;但是前提是不允许大改&#xff0c;因为下单接口太复杂了&#xff0c;如果改动太大&#xff0c;怕有风险。另外…

【Django】Task1安装python环境及运行项目

【Django】Task1安装python环境及运行项目 写在最前 8月份Datawhale组队学习&#xff0c;在这个群除我佬的时代&#xff0c;写一下blog记录学习过程。 参考资源&#xff1a; 学习项目github&#xff1a;https://github.com/Joe-2002/sweettalk-django4.2 队长博客&#xff1a…

使用K8s的一些经验和体会

Java应用程序的奇怪案例 ​在微服务和容器化方面&#xff0c;工程师倾向于避免使用 Java&#xff0c;这主要是由于 Java 臭名昭著的内存管理。但是&#xff0c;现在情况发生了改变&#xff0c;过去几年来 Java 的容器兼容性得到了改善。毕竟&#xff0c;大量的系统&#xff08…

RocketMQ部署 Linux方式和Docker方式

一、Linux部署 准备一台Linux机器&#xff0c;部署单master rocketmq节点 系统ip角色模式CENTOS10.4.7.126Nameserver,brokerMaster 1. 配置JDK rocketmq运行需要依赖jdk&#xff0c;安装步骤略。 2. 下载和配置 从官网下载安装包 https://rocketmq.apache.org/zh/downlo…

三.net core 自动化发布到docker (创建一个dotnet工程发布)

创建Jenkins-create a job 输入名称&#xff08;建议不要带“”这类的字符&#xff09;&#xff0c;选择自由风格的类型&#xff08;红框标注的&#xff09;&#xff0c;点击确定 用于测试,下面选项基本没有选择-配置代码地址 选择执行shell #!/bin/bash # 获取短版本号 GITHA…

会一点stm32,只后是做嵌入式Linux还是转JAVA?

选择嵌入式Linux还是转向JAVA&#xff0c;取决于你的兴趣、职业规划和就业市场的需求。以下是一些考虑因素&#xff1a;兴趣和擅长&#xff1a;首先&#xff0c;你应该考虑自己对嵌入式Linux和JAVA的兴趣和擅长程度。如果你对嵌入式系统、硬件交互和底层编程更感兴趣&#xff0…