VS Code基于服务器中的docker的开发环境配置

news2025/1/12 1:41:12

VS Code基于服务器中的docker的开发环境配置

  • 基于Dev Containers插件
  • 基于Jump Machine(跳板机)
    • 服务器通过ssh连接docker容器
    • VS Code配置ssh config文件连接docker容器

基于Dev Containers插件

当然可以在vscode中直接下载Dev Containers插件,在连接到服务器之后,在Dev Containers中找到相应的docker连接后直接进行开发。


此时你就会看到你服务器上所有正在运行的docker容器(必须要保证你想要开发的docker容器此时的状态是正在运行),然后点击对应的docker容器连接即可,之后的操作就和remote-ssh连接服务器操作一致了。

基于Jump Machine(跳板机)

跳板机可以理解为将服务器作为一个跳板,然后通过这个跳板连接到服务器中的docker容器。

服务器通过ssh连接docker容器

注意服务器连接docker容器可以直接通过docker exec -it <docker_container> /bin/bash,此处演示用ssh连接docker容器

ssh -p <port> root@127.0.0.1
# 注意此处的<port>是指docker容器22端口映射到本地的端口
# 即在创建docker容器的时候 docker run -it -p <host_port>:22 ......
# 此处的<host_port>就是指上述命令中的<port>

通过上述命令就能连接到docker容器,但是此处需要注意,在连接前docker容器中需要修改一些参数,

vim /etc/ssh/sshd_config

PubkeyAuthentication yes # 启用公钥私钥配对认证方式
PermitRootLogin yes # root能使用ssh登录
port=22 # 开启22端口

然后将服务器的~/.ssh/id_rsa.pub中的公钥添加到docker容器的~/.ssh/authorized_keys文件中,实现免密登录。

VS Code配置ssh config文件连接docker容器

此处以macOS为例,先找到家目录下的~/.ssh/config文件

# 配置服务器作为跳板机
Host server  # 自定义即可
	User <username>
	HostName <server_ip>
	Port <port>  # 此处<port>是指服务器的ssh端口(默认是22)
	IdentityFile ~/ssh/id_rsa  # 如果是私钥连接服务器,则需要本地私钥文件

# 利用跳板机连接docker容器
Host server_docker  # 自定义即可
	User root
	HostName 127.0.0.1
	Port <map_port>  # docker容器22端口映射到server服务器的端口
	ProxyCommand ssh -W %h:%p server  # 此处的server是跳板机的名字 必须和跳板机的Host后面的名称一致

此时你会在VS Code中remote-ssh插件下看到配置的server以及server_docker,点击你想要连接的docker容器即可。

从上面的操作步骤来看,其实两种ssh连接方法是相同的原理,即先连接服务器然后连接docker容器。现在就能用VS Code愉快地进行docker容器开发啦!!!

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

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

相关文章

表上作业法一般流程(最小元素法、闭合回路法、位势法)

目录 一、列出物资调运平衡表和运价表 二、编制初始调运方案 三、初始方案的检验与调整 1&#xff09;闭合回路法 2&#xff09;位势法 3&#xff09;调整调运方案 表上作业法一般步骤&#xff1a; ①列出调运物资的供需(产销)平衡表及运价表&#xff1b; ②按最小元素…

mediapipe 谷歌高效ML框架-图像识别、人脸检测、人体关键点检测、手部关键点检测

参考&#xff1a; https://github.com/google/mediapipe https://developers.google.com/mediapipe/solutions/guide 框架也支持cv、nlp、audio等项目&#xff0c;速度很快&#xff1a; 1、图形识别 参考&#xff1a;https://developers.google.com/mediapipe/solutions/vi…

05.内存管理:动态申请和释放内存

动态分配内存&#xff0c;进行内存管理 参考: 伙伴算法原理简介 linux 0.11源码 本文主要针对Linux0.11的malloc和free进行分析。是一种类似伙伴系统的内存管理方法&#xff0c;不过伙伴系统的内存通常是申请大于一页的内存&#xff0c;但是在该内核版本的内存管理&#xff0c…

剑指 Offer 68 - I. 二叉搜索树的最近公共祖先 / LeetCode 235. 二叉搜索树的最近公共祖先(二叉搜索树性质,搜索与回溯)

题目&#xff1a; 链接&#xff1a;剑指 Offer 68 - I. 二叉搜索树的最近公共祖先&#xff1b;LeetCode 235. 二叉搜索树的最近公共祖先 难度&#xff1a;中等 给定一个二叉搜索树, 找到该树中两个指定节点的最近公共祖先。 百度百科中最近公共祖先的定义为&#xff1a;“对…

redis存储原理与数据模型学习笔记

目录 1 redis线程模型1.1 线程组成1.2 redis命令处理是单线程 2 redis db 存储分析2.1 先了解代码server.hdict.h 2.2 从kv存储分析2.3 负载因子2.4 渐进式rehash机制数据访问scan 3 数据模型分析以zset为例跳表 1 redis线程模型 1.1 线程组成 redis-server 命令处理 网络事件…

Nerf论文前后介绍以及今后方向(2020年各个方向工作论文分析) NEURAL VOLUME RENDERING:NERF AND BEYOND

你好&#xff01; 这里是“出门吃三碗饭”本人&#xff0c; 本文章接下来将介绍2020年对Nerf工作的一篇总结论文NEURAL VOLUME RENDERING:NERF AND BEYOND&#xff0c;论文作者是佐治亚理工学院的Frank Dellaert同学和 MIT的Lin Yen-Chen同学&#xff0c;非常感谢两位大佬的总结…

序列化和反序列化的认识【protobuf、json、xml】

1. 什么是序列化与反序列化&#xff1f; 程序员在编写应用程序的时候往往需要将程序的某些数据存储在连续的内存中&#xff0c;然后将其写入文件或是将其传输到网络中的另一台计算机上以实现通讯。这个将程序数据转换成能被存储并传输的格式的过程被称为序列化&#xff08;seri…

C++ array (STL array) 序列容器

文章目录 1 类模板2 begin()/end() 和 cbegin()/cend()3 cbegin() 和 cend()4 rbegin()/rend() 和 crbegin()/crend()5 访问array容器中单个元素参考 1 类模板 array 容器以类模板的形式定义在 头文件&#xff0c;并位于命名空间 std 中&#xff0c;如下所示&#xff1a; nam…

一、约束编程简介(Constraints Programming)

文章目录 1、约束编程求解器2、值域传播器THE END 1、约束编程求解器 \qquad 约束编程是一种编程范式&#xff0c;旨在解决那些需要满足一系列约束条件的问题。在约束编程中&#xff0c;问题被定义为一组变量和约束条件&#xff0c;而不是指定解决问题的算法步骤。通过定义变量…

XXE漏洞复现步骤

0X00XXE注入定义 XXE注入&#xff0c;即XML External Entity&#xff0c;XML外部实体注入。通过 XML 实体&#xff0c;”SYSTEM”关键词导致 XML 解析器可以从本地文件或者远程 URI 中读取数据。所以攻击者可以通过 XML 实体传递自己构造的恶意值&#xff0c;是处理程序解析它…

Nginx-负载均衡详解

本文已收录于专栏 《中间件合集》 目录 概念说明什么是Nginx什么是负载均衡 功能介绍配置过程1.修改nginx配置文件添加服务组修改HTTP模块 2.保存配置文件3.重启配置文件4.查看配置文件是否重启成功5.还可以配置其他策略轮询权重最少连接数 常用命令总结提升 概念说明 了解ngi…

MySQL:环境安装和数据库基础

环境安装 说明&#xff1a; • 安装与卸载中&#xff0c;用户全部切换成为root&#xff0c;⼀旦 安装&#xff0c;普通用户能使⽤的 • 初期练习&#xff0c;mysql不进行用户管理&#xff0c;全部使⽤root进行&#xff0c;尽快适应mysql语句&#xff0c;后⾯学了用户管 理&a…

实例讲解,一文弄懂workqueue和waitqueue

本期主题&#xff1a; 讲清workqueue和waitqueu&#xff1a; 从中断讲起waitqueue是什么workqueue总结 往期链接&#xff1a; linux设备驱动中的并发linux设备驱动中的编译乱序和执行乱序linux设备驱动之内核模块linux字符驱动linux字符驱动之ioctl部分linux字符驱动之read、…

数据结构07:查找[C++][朴素二叉排序树BST]

图源&#xff1a;文心一言 考研笔记整理8k字&#xff0c;小白友好、代码可跑&#xff0c;请小伙伴放心食用~~&#x1f95d;&#x1f95d; 第1版&#xff1a;查资料、写BUG、画导图、画配图~&#x1f9e9;&#x1f9e9; 参考用书&#xff1a;王道考研《2024年 数据结构考研复习…

【MATLAB第45期】基于MATLAB的深度学习SqueezeNet卷积神经网络混凝土裂纹图像识别预测模型

【MATLAB第45期】基于MATLAB的深度学习SqueezeNet卷积神经网络混凝土裂纹图像识别预测模型 引言 该文章展示如何微调名为SqueezeNet的预训练深度卷积网络&#xff0c;以执行裂纹图像分类预测。并使用一种称为Grad-CAM的技术来解释和分析分类输出。文章使用L.Zhang介绍的混凝土…

C++初阶之C++入门最全详解

C入门 1. C关键字&#xff08;C98&#xff09;2. 命名空间2.1 命名空间定义2.2 命名空间使用 3. C输入&输出4. 缺省参数4.1 缺省参数概念4.2 缺省参数分类 5. 函数重载5.1 函数重载概念5.1.1 参数类型不同5.1.2 参数个数不同5.1.3 参数类型顺序不同 5.2 C支持函数重载的原理…

Spring Cloud Alibaba Seata(二)

目录 一、Seata 1、Seata-AT模式 1.1、具体案例 1.2、通过Seata的AT模式解决分布式事务 2、Seata-XA模式 3、Seata-TCC模式 4、Seata-SAGA模式 一、Seata 1、Seata-AT模式 概念&#xff1a;AT模式是一种无侵入的分布式事务解决方案&#xff0c;在 AT 模式下&#xff0c…

git修改默认主分支main为master和设置git默认创建的项目默认分支都为master

文章目录 前言一、设置新建仓库默认分支为master1.点击GitHub右上角的头像2. 选中settings&#xff08;设置&#xff09;3.点击Repositories&#xff08;存储库&#xff09;4.更改main为master后点击update 二、设置已建仓库的默认分支为master1.找到你要改的项目点击settings&…

STL序列式容器的概念

文章目录 1 迭代器2 什么是序列式容器3 序列式容器容器中常见的函数成员参考 1 迭代器 迭代器和C指针非常类似&#xff0c;它可以是需要的任意类型&#xff0c;通过迭代器可以指向容器中的某个元素&#xff0c;如果需要&#xff0c;还可以对该元素进行读写操作。 迭代器类别 …

ThreeJS案例一——在场景中添加视频,使用人物动作以及用键盘控制在场景中行走的动画

准备 首先我们需要两个模型&#xff0c;一个是场景模型&#xff0c;另一个是人物模型。 人物模型我这里用的Threejs官网中的给的模型&#xff0c;名称是Xbot.glb。 当然人物模型也可以自己去这个网站下载sketchfab&#xff0c;下载后给模型添加动画mixamo 下载模型动画 先让…