在VScode中添加Linux中的Docker容器中的Python解释器
VScode编辑器在安装好Python插件之后会自动选择环境变量中排序最高的那一个解释器作为默认解释器,而想要额外添加新的Python解释器就需要自己设置。
VScode编辑器安装在本地电脑
支持Python的docker安装在远程服务器
第一步,在/usr/local/下新建python/app文件夹。
命令:mkdir -p /usr/local/python /usr/local/python/myapp
python容器配置的应用目录将映射为/usr/local/python/myapp。
第二步,创建python容器。
命令:docker pull python
docker images -a
docker run -d --name mypython -p 8022:22 -v /automl:/workspace/automl -it python:latest /bin/bash
docker ps -a
注释:
[-p 8022:22]:把docker的端口号22映射到服务器的端口号8022。
[-d]:容器后台运行,避免退出容器后容器自动关闭。
[-v]:挂载和同步目录,服务器和docker内有一个文件夹保持同步。
[-it]:确保docker后台交互运行。
[python:latest]:镜像名。
[/bin/bash]:docker内要运行的指令。
第三步,在容器内安装ssh服务。
# 进到IMAGE为python的容器内
命令:docker attach [容器ID]
或 docker exec -it [容器ID] /bin/bash
# 更新apt-get
命令:apt-get update
# 安装vim
命令:apt-get install vim
# 安装openssh-server
命令:apt-get install openssh-server
# 设置root密码
命令:passwd
第四步,配置/etc/ssh/sshd_config文件。
在文件/etc/ssh/sshd_config中添加下面的代码:
# 启用公钥私钥配对认证方式PubkeyAuthentication yes# 允许root用户使用ssh登录PermitRootLogin yes
第五步,重启ssh服务。
# 重启ssh服务
命令:/etc/init.d/ssh restart
或 service ssh restart
第六步,退出docker后,验证端口映射。
命令:docker ps -a
sudo docker port [容器ID] 22
若结果输出“0.0.0.0:8022”,则说明端口映射正确。
第七步,在本地电脑连接docker。
当退出docker后,在本地电脑连接docker,结果显示“ssh connection refused.”,这是因为退出docker后,ssh会被关掉。可以先通过命令“docker attach [容器ID]”进入container,然后输入命令“/etc/init.d/ssh restart”启动ssh服务。
# 在本地电脑打开cmd,输入ssh命令,回车后输入第三步中设置的root连接密码,就可以从本地电脑登录远程服务器的docker。
命令:ssh root@x.x.x.x -p 8022

第八步,使用VSCode连接远程主机上的docker container。
打开VScode编辑器,按下快捷键“Ctrl+Shift+X”,查找安装“Remote Development”。安装完成后需要点击“reload”,然后按下快捷键“Ctrl+Shift+P”,输入“remote-ssh”,选择“open SSH Configuration file”,在文件C:\Users\Administrator\.ssh\config中添加如下内容:
# Host随便起名字Host AutoML_docker# HostName是服务器的IP地址HostName x.x.x.x# Port是docker映射到服务器上的端口号Port 8022User root
保存后,按下快捷键“Ctrl+Shift+P”,输入“remote-ssh”,选择“Connect to Host...”,然后点击“AutoML_docker”,接着选择“Linux”,最后按提示输入第三步中设置的root连接密码,在左下角显示“SSH:AutoML_docker”,说明已经成功连接docker。

第九步,在服务器docker中配置VScode debugger。
成功连接docker之后,按下快捷键“Ctrl+Shift+X”,查找“Python”,并安装在服务器docker中。然后重启VSCode。
重新连接docker,按下快捷键“Ctrl+Shift+P”,输入“python: select interpreter”,点击“选择解释器”,就会列出在系统中找到的Python环境,点击需要的python解释器即可。

确定在VScode中是否添加了Python解释器:
1)先在桌面新建一个文件夹,并命名为“aaaa”;
2)在VScode中,点击“File”,并选择“Open Folder”,将桌面新建的“aaaa”添加进来;
3)添加“aaaa”后点击确定,并选择“Yes,I trust the authors”;
4)在添加进来的“aaaa”项目中点击“New fiel…”,创建文件text.py;
5)在创建好的text.py中输入代码“print(‘hello world’)”,并点击运行按钮,即可在终端得到运行结果。
执行上述步骤之后,可在VScode右下角看到“Python”的内容,说明在VScode中添加了Python解释器。
可以通过命令“docker attach [容器ID]”进入Python容器,然后在容器中使用命令“find / -name launch.json”查找launch.json。
![]()
点击“运行和调试”选项,接着点击“打开文件”,填入刚刚查找的launch.json路径(/root/.vscode-server/bin/441438abd1ac652551dbe4d408dfcec8a499b8bf/extensions/debug-auto-launch/.vscode),点击“确定”就可以打开launch.json文件。

编辑launch.json文件,把文件中的代码全部换成下面的代码:
{// Use IntelliSense to learn about possible attributes.// Hover to view descriptions of existing attributes.// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387"version": "0.2.0","configurations": [{"type": "python","request": "launch","name": "Python: Current File (Integrated Terminal)","skipFiles": ["<node_internals>/**"],"program": "${file}"}]}
VScode debugger配置完成之后,可以选择刚才配置的解释器来逐行调试docker内的代码。因为docker内的代码是通过-v与服务器同步的,所以修改docker内的代码后,服务器上的代码也会跟着改变,需要git时,就只需在服务器端设置,而不用在docker内设置。
第十步,退出容器,并将容器保存为新的镜像。
命令:docker ps -a
docker images -a
docker commit [OPTIONS] [容器ID] [新的镜像名称:新的镜像标签]
[OPTIONS]说明:
[-a]:提交的镜像作者。
[-m]:提交时的说明文字。
[-p]:在commit时,将容器暂停。
第十一步,基于新的镜像创建并运行新的容器。
命令:docker run -t -i -p 8022:22 --name [新的容器名称] [新的镜像名称:新的镜像标签] /bin/bash
# 退出新的容器,重启新的容器
命令:systemctl restart docker
docker start [新的容器ID]
# 新的容器启动成功,会显示相应的端口号
命令:docker ps -a

# 只要保证新的容器内22端口成功启动,就可以进行远程连接。
命令:sudo docker port [新的容器ID] 22
# 进到新的容器内
命令:docker attach [新的容器ID]
或 docker exec -it [新的容器ID] /bin/bash
# 重启ssh服务
命令:/etc/init.d/ssh restart
或 service ssh restart
点击“远程资源管理器”选项,接着点击“SSH—AutoML_docker—在当前窗口连接”,然后按提示输入第三步中设置的root连接密码,在左下角显示“SSH:AutoML_docker”,说明已经成功连接docker。

相关文章:
在VScode中添加Linux中的Docker容器中的Python解释器
VScode编辑器在安装好Python插件之后会自动选择环境变量中排序最高的那一个解释器作为默认解释器,而想要额外添加新的Python解释器就需要自己设置。 VScode编辑器安装在本地电脑 支持Python的docker安装在远程服务器 第一步,在/usr/local/下新建pytho…...
无法将“django-admin”项识别为cmdlet,函数,脚本文件或可运行程序的名称问题
无法将“django admin”项识别为cmdlet,函数,脚本文件或可运行程序的名称问题 小提示:首先检查一下有没有拼写错误!!!没有的话请继续 我们要知道django装到哪里去了 pip show django 注意:3.0…...
乐友商城学习笔记(十五)
无状态登陆原理 在服务器端保存session 无状态不需要session,把登陆状态保存在cookie中 jwtrsa token:登陆时, jwt oath2 jwt:头信息(jwt) 载荷(用户信息,签发人,签发时…...
目标检测论文阅读:CBNet算法笔记
标题:CBNet: A Composite Backbone Network Architecture for Object Detection 期刊:TIP2022 论文地址:https://ieeexplore.ieee.org/document/9932281/ 官方代码:https://github.com/VDIGPKU/CBNetV2 作者单位:北京大…...
vue前端与Java后端进行跨域交互
1.后端的几种解决方法 1.在Controller上面加上CrossOrigin 2.写一个配置文件并且在Controller层加上注解CORSConfig package com.wolwo.langyage.base.util;import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configurat…...
【设计模式】2.抽象工厂模式
抽象工厂模式 前面介绍的工厂方法模式中考虑的是一类产品的生产,如畜牧场只养动物、电视机厂只生产电视机、传智播客只培养计算机软件专业的学生等。 这些工厂只生产同种类产品,同种类产品称为同等级产品,也就是说:工厂方法模式…...
Telnet 基础实验1: Telnet 实验
Telnet 基础实验1: Telnet 实验 拓扑图 配置命令 R1 的配置 undo ter mo sys sys R1 interface g0/0/0 ip address 192.168.1.1 255.255.255.0 qR2 的配置 undo ter mo system-view sysname R2 interface g0/0/0 ip address 192.168.1.2 255.255.255.0 q两台设…...
机器学习经典算法——决策树(Decision Tree)
决策树的基本原理 决策树是⼀种分⽽治之的决策过程。⼀个困难的预测问题,通过树的分⽀节点,被划分成两个或多个较为简单的⼦集,从结构上划分为不同的⼦问题。将依规则分割数据集的过程不断递归下去。随着树的深度不断增加,分⽀节…...
MySQl总结
文章目录MySQL数据库的常见考点1、ACID事务原理事务持久性事务原子性MVCC基本概念MVCC基本原理undo logundo log版本链readviewMVCC实现原理RC读已提交RR可重复读MVCC实现原理总结2、并发事务引发的问题3、事务隔离级别4、索引索引结构BTreeHash面试题索引分类思考题语法性能分…...
【学习笔记】NOIP爆零赛7
结论专场,结果被踩暴了 青鱼和序列 赛时的做法是,维护∑aii\sum a_i\times i∑aii的取值,发现只和最后一次操作222的位置有关,于是递推O(n)O(n)O(n)解决。 赛后发现还有更神奇的结论 第二个结论是,第一次进行操作…...
一文读懂账号体系产品设计
一、账号体系的概念及价值账号体系是用户在各平台上的通行证。平台给与用户可持续的服务,用户在平台上获取价值,中间的媒介,便是账号体系。阿境将其理解为维系用户与平台之间的枢纽。注:本文中,账号账户,二…...
从“入门”到“专家”,一份3000字完整的性能测试体系的知识分享
随着科技的飞速发展,软件产品广泛应用于各个行业领域,人们对计算机和网络的依赖性越来越大,对新奇事物也越来越感兴趣,成千上万的用户活跃在庞大的网络系统中,这给提供服务的系统带来严重的负荷,"高并…...
构建对话机器人:Rasa3安装和基础入门
在开源对话机器人中,Rasa社区很活跃,在国内很多企业也在使用Rasa做对话机器人,有rasa开发经验的往往是加分项。 当年实习的时候接触到了Rasa,现在工作中也使用Rasa,因此,写写一些经验文档,有助后…...
Spark计算框架入门笔记
Spark是一个用于大规模数据处理的统一计算引擎 注意:Spark不仅仅可以做类似于MapReduce的离线数据计算,还可以做实时数据计算,并且它还可以实现类似于Hive的SQL计算,等等,所以说它是一个统一的计算引擎 既然说到了Spar…...
入职数据分析公认的好书|建议收藏
众所周知,数据分析经常出现在我们的日常生活中,各行各业都需要数据分析。可你知道什么是数据分析?它在企业里到底扮演什么角色?以及如果我们自己也想拥有数据分析的能力,以便更好的满足数据分析的需求,我们…...
Linux查找文件和目录,重定向输出 ,系统默认运行级别的查看和设置理论和练习
♥️作者:小刘在C站 ♥️个人主页:小刘主页 ♥️每天分享云计算网络运维课堂笔记,努力不一定有收获,但一定会有收获加油!一起努力,共赴美好人生! ♥️夕阳下,是最美的绽放࿰…...
Redis源码---键值对中字符串的实现,用char*还是结构体
目录 前言 为什么 Redis 不用 char*? char* 的结构设计 操作函数复杂度 SDS 的设计思想 SDS 结构设计 SDS 操作效率 紧凑型字符串结构的编程技巧 小结 前言 对于 Redis 来说,键值对中的键是字符串,值有时也是字符串在 Redis 中写入一…...
算法 - 剑指Offer 表示数值的字符串
题目 请实现一个函数用来判断字符串是否表示数值(包括整数和小数)。 数值(按顺序)可以分成以下几个部分: 若干空格 一个 小数 或者 整数 (可选)一个 ‘e’ 或 ‘E’ ,后面跟着一个 …...
初识机器学习
监督学习与无监督学习supervised learning:监督学习,给出的训练集中有输入也有输出(标签)(也可以说既有特征又有目标),在此基础上让计算机进行学习。学习后通过测试集测试给相应的事物打上标签。…...
VsCode安装PlatformIO 开发ESP arduino,买的板子或者随便ESP,PlatformIO添加Board(不是自定义Board)
这次主要记录怎么给新建选板子的时候没有的板子下程序 我这里是一块 WiFi Kit 32 (V3) PlatformIO里面只有到V2 先从头开始,安装PlatformIO 安装PlatformIO 直接搜索安装 安装有时候会比较慢,左侧出现蚂蚁图标之后点击会显示 右下角会提示正在安…...
别再只仿真了!手把手教你用LabVIEW+USRP-2920搭建真实无线通信链路(BPSK/QPSK调制实战)
从仿真到实战:LabVIEW与USRP-2920构建无线通信链路的完整指南 在通信工程领域,仿真与硬件实现之间往往存在一道难以逾越的鸿沟。许多工程师能够熟练使用MATLAB或LabVIEW进行通信系统仿真,但当面对USRP-2920这样的射频硬件时,却常常…...
MindSpore mint 模块学习
1. 模块概述mindspore.mint是 MindSpore 框架提供的一个功能接口子模块,旨在提供大量与业界主流深度学习框架(如 PyTorch)保持一致的 functional、nn、优化器等 API。使熟悉主流框架的用户能够快速上手。性能特点:在图编译模式为 …...
嵌入式OLED UI组件库:轻量级C++组件化设计
1. 项目概述 OLED UI Components 是一个面向嵌入式平台的轻量级、组件化 OLED 用户界面开发库,专为基于 SSD1306 驱动芯片的单色 OLED 显示屏(典型分辨率为 12864)设计。该库不直接操作硬件寄存器,而是构建在 Adafruit_SSD1306 库…...
运维提效实战:用 Ansible+Cron 搞定日志自动清理,再也不用半夜爬起来删日志了
前言 作为常年和服务器打交道的运维人,估计没人没经历过半夜被磁盘爆满告警吵醒的崩溃 —— 远程登服务器、挨个找日志文件、手动删旧日志,一套操作下来人彻底清醒,回头还得担心误删关键文件。 其实这类重复又机械的运维活儿,完全…...
如何用ChatALL实现AI智能协同:一次提问,多模型对比的解决方案
如何用ChatALL实现AI智能协同:一次提问,多模型对比的解决方案 【免费下载链接】ChatALL Concurrently chat with ChatGPT, Bing Chat, Bard, Alpaca, Vicuna, Claude, ChatGLM, MOSS, 讯飞星火, 文心一言 and more, discover the best answers 项目地…...
深度学习助力图像增强:多算法与PyTorch复现
深度学习图像低光照增强算法低照度增强3DLUT,DeepUPT,DeepLPF,RetinexNet,Zero-DCE,EnlightenGAN,RetinexFormer等 图像调色增强算法HDRNet,StarEnhancer,CSRNet等 水下增强算法UWGAN,UIEGAN等 pytorch架构复现,有代码和benchmark数据集在图像处理领域,针…...
终极方案:如何在Windows资源管理器中完美显示HEIC缩略图
终极方案:如何在Windows资源管理器中完美显示HEIC缩略图 【免费下载链接】windows-heic-thumbnails Enable Windows Explorer to display thumbnails for HEIC files 项目地址: https://gitcode.com/gh_mirrors/wi/windows-heic-thumbnails 你是否经常遇到这…...
360CDN 全系列产品体验:CDN / 高防 / SDK 游戏盾横向测评
作为深耕互联网技术领域多年的开发者,平时无论是个人项目还是公司业务,都经常需要用到CDN加速、网络防护类产品。近期正好完整上手测试了360CDN全系列核心产品,涵盖基础CDN加速、高防CDN、SDK游戏盾三款,全程以真实业务场景为测试…...
AI超清画质增强作品集:3倍放大修复,让模糊图片重获新生
AI超清画质增强作品集:3倍放大修复,让模糊图片重获新生 1. 从模糊到高清的视觉革命 你是否遇到过这样的情况:翻出多年前的老照片,却发现画面模糊不清;从网上下载的图片分辨率太低,放大后全是马赛克&#…...
Echarts实战:如何用散点图+面积图模拟Power BI丝带图效果(附完整代码)
Echarts实战:用散点图与面积图组合实现Power BI丝带图效果 1. 理解丝带图的核心价值与实现难点 丝带图(Ribbon Chart)作为Power BI的特色可视化组件,其独特之处在于能够直观展示数据在不同时间维度上的变化趋势和相对排名。这种图…...
