当前位置: 首页 > news >正文

pycharm通过ssh连接远程服务器的docker容器进行运行和调试代码

pycharm连接远程服务器的docker容器通常有两种方法:

第一种:pycharm通过ssh连接已在运行中的docker容器

第二种:pycharm连接docker镜像,pycharm运行代码再自动创建容器

第一种方法比较通用简单,作者比较推崇。

条件:

(1)准备好pycharm专业版,社区版没有连接远程服务器的功能

(2)远程服务器ubuntu,已安装好docker

一、配置远程服务器的docker容器

1. 启动并运行交互式容器

 docker run -it --name pycharm_test -v /home/th/PycharmProjects/qa/:/workspace/qa -p 8080:22 --gpus all pytorch/pytorch:1.4-cuda10.1-cudnn7-runtime /bin/bash

这里需要映射主机端口到容器端口,后续就是通过端口来连通容器的。

-p 8080:22:这里主机端口8080, 容器端口是22

2.进入交互式后修改容器的root密码

 passwd

3. 给容器安装openssh-server和openssh-client

apt-get install openssh-server
apt-get install openssh-client

安装ssh服务时如果出现以下错误:

​编辑

那就是因为/etc/apt/source.list中的源比较旧了,需要更新一下。更新命令以下:

apt-get -y update

4. 修改SSH配置文件以下选项

vim /etc/ssh/sshd_config

以上命令打开sshd_config文件,在文件最后面添加以下。


PermitRootLogin yes #允许root用户使用ssh登录

5. 重启ssh服务

/etc/init.d/ssh restart

6. 退出容器,连接测试

注意:以上2-5步骤都是在容器内部操作的。

ssh root@127.0.0.1 -p 8080

root:容器内部系统的root账号,不是服务器的用户账号

127.0.0.1:服务器本机ip

-p 端口号:这里的端口就是我们在步骤1 启动容器时映射的主机端口号8080,不是容器的端口22

在服务器上运行以上命令:

这样就测试连接成功了,接下来就是到我们本机windows系统的pycharm连接docker容器了。

二、配置pycharm并连接docker容器

1. Configuration配置远程连接

创建SFTP服务docker_test, 参考以上截图填写。

路径映射:

2. 上传本地代码数据到docker容器中并运行

上传完代码数据后, 需要选择设置python编译器:

设置好python解释器就可以run代码了

这里要注意一下,代码所要的运行环境还需要在docker容器安装配置好,比如我这里需要pytorch环境以及python代码运行所需的依赖库都已经在docker容器中通过pip安装好了。

三、 使用Dockerfile创建可以ssh启动的镜像

Dockerfile内容:

————————————————————————————————————————

FROM pytorch/pytorch:1.4-cuda10.1-cudnn7-runtime

ADD tools/ /opt/tools/
RUN mkdir ~/.pip/ && cp /opt/tools/pip_sources_aliyun.txt ~/.pip/pip.conf && \
cp /opt/tools/sources.list /etc/apt/ && apt -y update && \
apt install -y vim zip && \
/opt/conda/bin/pip install -r /opt/tools/requirements.txt --trusted-host http://mirrors.aliyun.com

#以下是设置ssh服务

RUN apt-get install -y openssh-server openssh-client && \
echo root:123456 | chpasswd && \
echo "PermitRootLogin yes" >> /etc/ssh/sshd_config

ENV LANG C.UTF-8
CMD ["/usr/sbin/sshd", "-D"]
WORKDIR /work/

————————————————————————————————————————————————

其实在你原来的Dockerfile中添加以下内容就可以

RUN apt-get install -y openssh-server openssh-client && \
echo root:123456 | chpasswd && \
echo "PermitRootLogin yes" >> /etc/ssh/sshd_config

其中:

echo root:123456 | chpasswd

123456是设置步骤2的密码

这里注意一下:使用Dockerfile创建镜像后,并启动运行一个容器后,要手动去启动docker容器的ssh:

/etc/init.d/ssh start

note:不管是第一种还是第二种方法,在pycharm连接容器跑代码,在代码中所有有关路径都要写绝对路径,要不然会运行代码时会报错找不到文件或文件夹。

相关文章:

pycharm通过ssh连接远程服务器的docker容器进行运行和调试代码

pycharm连接远程服务器的docker容器通常有两种方法: 第一种:pycharm通过ssh连接已在运行中的docker容器 第二种:pycharm连接docker镜像,pycharm运行代码再自动创建容器 第一种方法比较通用简单,作者比较推崇。 条件…...

Chrome2023新版收藏栏UI改回旧版

版本 120.0.6099.109(正式版本)Chrome浏览器菜单新版、旧版的差异 想要将书签、功能内容改回旧版的朋友可以网址栏输入:「chrome://flags」,接着搜寻「Chrome Refresh 2023」。 最后将 Chrome Refresh 2023、Chrome Refresh 2023…...

WebSocket与JavaScript:实现实时获取位置

一、WebSocket介绍 WebSocket是一种在单个TCP连接上进行全双工通信的协议。与传统的HTTP请求相比,WebSocket能够在服务器和客户端之间建立持久连接,实现实时数据传输。WebSocket提供了较低的延迟和高效的数据传输。在实时舆情监测中,它能够实…...

一种解决Qt5发布release文件引发的无法定位程序输入点错误的方法

目录 本地环境问题描述分析解决方案 本地环境 本文将不会解释如何利用Qt5编译生成release类型的可执行文件以及如何利用windeployqt生成可执行的依赖库,请自行百度。 环境值操作系统Windows 10 专业版(22H2)Qt版本Qt 5.15.2Qt Creator版本5.0…...

UE4/UE5 日志插件(基于spdlog)

1 解决问题 对于高频日志序列化到本地的需求,spdlog肯定完美满足。 源码地址:https://github.com/gabime/spdlog 博主下载的版本为 spdlog-1.12.0,各位大佬可以根绝自己爱好选择。 2 过程介绍 大概目录: SpdlogLibC目录下是对…...

微信小程序ios中非cover组件点击重复触发地图tap事件

现象&#xff1a; map中使用view组件的click事件会重复触发地图的tap组件&#xff0c;只在ios上出现 <map id"maps" style"width: 100vw;height: 100vh;" :latitude"latitude" :longitude"longitude":markers"markers"…...

7.26 SpringBoot项目实战【还书】

文章目录 前言一、编写控制器二、编写服务层三、Git提交前言 本文是项目实战 业务接口 的最后一篇,上文 曾说过【还书】的 入口是【我的借阅记录】,因为【还书】是基于一次借阅记录而言,另外在4.2 数据库设计 曾分析过【还书】的业务场景,需要执行两步操作: 更新【借阅记…...

Golang中使用errors返回调用堆栈信息

Golang的errors包返回堆栈信息 标准库errors提供了处理错误的方法。比如常用的 func New(text string) error 用该方法处理错误信息&#xff0c;就只会输出自定义的 text 到控制台或者日志文件&#xff0c;没有其它辅助排查的信息输出&#xff0c;所以常规我们就只能根据 te…...

Web前端-HTML(常用标签)

文章目录 1. HTML常用标签1.1 排版标签1&#xff09;标题标签h (熟记)2&#xff09;段落标签p ( 熟记)3&#xff09;水平线标签hr(认识)4&#xff09;换行标签br (熟记)5&#xff09;div 和 span标签(重点)6&#xff09;排版标签总结 1.2 标签属性1.3 图像标签img (重点)1.4 链…...

一 OpenCV中的数据类型

1. cv::Mat 2. cv::Point 主要用来表示二维点&#xff0c;也有表示三维点的模板类型&#xff1b; cv::Point p(int, int) 最常用 ① cv::Point_<T> ② cv::Point2i cv::Point_<int> ③ cv::Point2f cv::Point_<float> ④ cv::Point2d …...

59. 螺旋矩阵 II(java实现,史上最详细教程,想学会的进!!!)

今天来分享一下螺旋矩阵的解题思路及代码的实现。 题目描述如下&#xff1a; 首先拿到这道题&#xff0c;首先不要慌张&#xff0c;我们来仔细分析一下会发现并没有那么难。 首先看下边界的元素是1、2、3递增的&#xff0c;那么我们也许可以根据这一点先把边界的元素一个一个给…...

vue 将后端返回的二进制流进行处理并实现下载

什么是二进制流文件&#xff1f; 二进制文件是一种计算机文件格式&#xff0c;它的数据以二进制形式存储&#xff0c;与文本文件不同。二进制文件可以包含任意类型的数据&#xff0c;例如图像、音频、视频、可执行文件、压缩文件等&#xff0c;而文本文件则仅仅包含 ASCII 码或…...

PyCharm连接远程服务器

要求&#xff1a;PyCharm专业版才支持远程服务 一、创建远程连接 先建立本地与远程服务器之间的SSH连接 1、配置连接 2、建立SSH连接&#xff0c;选择文件传输协议 SFTP 3、设置服务器名&#xff08;可以随意命名&#xff09; 4、配置 SSH连接 点击 172.18.1.202 配置…...

使用Qt制作网易云播放器的歌曲排行界面

&#xff01;&#xff01;&#xff01;直接上图&#xff01;&#xff01;&#xff01; &#xff01;&#xff01;&#xff01;直接上图&#xff01;&#xff01;&#xff01; &#xff01;&#xff01;&#xff01;直接上图&#xff01;&#xff01;&#xff01; 网易云排行榜…...

【.NET Core】特性(Attribute)详解

【.NET Core】特性&#xff08;Attribute&#xff09;详解 文章目录 【.NET Core】特性&#xff08;Attribute&#xff09;详解一、概述二、编写自定义属性2.1 自定义特性的主要步骤2.2 应用AttributeUsageAttributeAttributeTargets 成员Inherited属性AllowMultiple属性 三、声…...

【C++】POCO学习总结(十九):哈希、URL、UUID、配置文件、日志配置、动态库加载

【C】郭老二博文之&#xff1a;C目录 1、哈希 1.1 说明 std::map和std::set 的性能是&#xff1a;O(log n) POCO哈希的性能比STL容器更好&#xff0c;大约快两&#xff1b; POCO中对应std::map的是&#xff1a;Poco::HashMap&#xff1b; POCO中对应std::set的是 Poco::Hash…...

1846_安全SPI

Grey 全部学习内容汇总&#xff1a;GitHub - GreyZhang/g_embedded: some embedded basic knowledge. 1846_安全SPI SPI是一种常见的通信方式&#xff0c;在汽车电子中比较常用。但是如果涉及到安全相关的设计&#xff0c;可能得考虑更多。而SPI协议本身没有很好的标准化&am…...

SQL Server ,使用递归查询具有层级关系的数据。

假设我们有一个表格 Employees&#xff0c;其中包含员工的层级关系信息&#xff0c;每一行包括员工的ID、姓名以及上级员工的ID。 下面是一个示例表格及其数据&#xff1a; Employees ---------------------- EmployeeID | Name | ManagerID ---------------------- 1 …...

【参数汇总】mysql服务端/客户端常见优化参数

mysql服务端参数 1、innodb_buffer_pool_size &#xff08;innodb索引buffer pool缓冲区大小&#xff09; 默认大小为128M&#xff0c; 官方推荐其配置为系统内存的 50% 到 75% 。 一般innodb_buffer_pool_size要结合以下两个参数来设置&#xff1a; innodb_buffer_pool_ch…...

LeetCode 142. 环形链表 II

给定一个链表的头节点 head &#xff0c;返回链表开始入环的第一个节点。 如果链表无环&#xff0c;则返回 null。 如果链表中有某个节点&#xff0c;可以通过连续跟踪 next 指针再次到达&#xff0c;则链表中存在环。 为了表示给定链表中的环&#xff0c;评测系统内部使用整…...

彻底告别桌面混乱:NoFences桌面分区工具终极解决方案

彻底告别桌面混乱&#xff1a;NoFences桌面分区工具终极解决方案 【免费下载链接】NoFences &#x1f6a7; Open Source Stardock Fences alternative 项目地址: https://gitcode.com/gh_mirrors/no/NoFences 还在为Windows桌面上杂乱无章的图标而烦恼吗&#xff1f;每天…...

DuClaw智能体:DuClaw接入钉钉

本文主要介绍如何为DuClaw配置钉钉消息渠道&#xff0c;配置后即可通过对应的钉钉机器人与DuClaw进行对话。 钉钉侧配置 步骤一&#xff1a;创建钉钉应用。 前往钉钉开发者平台&#xff08;需有管理员权限&#xff09;&#xff0c;点击“创建应用”。 在左侧目录中选择“钉钉…...

大型知识竞赛的技术保障:构建服务器、网络与备用方案的坚实堡垒

&#x1f3d7;️ 大型知识竞赛的技术保障&#xff1a;构建服务器、网络与备用方案的坚实堡垒稳定 高效 安全 让技术成为竞赛的隐形支撑&#x1f3af; 引言&#xff1a;技术保障是竞赛成功的基石一场成功的大型知识竞赛&#xff0c;其精彩纷呈的背后&#xff0c;离不开一套周…...

英雄联盟回放播放器:ROFL-Player让历史比赛重现生机

英雄联盟回放播放器&#xff1a;ROFL-Player让历史比赛重现生机 【免费下载链接】ROFL-Player (No longer supported) One stop shop utility for viewing League of Legends replays! 项目地址: https://gitcode.com/gh_mirrors/ro/ROFL-Player 还在为英雄联盟客户端更…...

【YOLO目标检测全栈实战】39 多模型流水线:当YOLO遇上OCR和语音合成,如何让四个模型“共线生产”?

DIA DALI,我们把187ms的串行方案优化到15ms,性能提升12倍。但说实话,那只是两个模型之间的“小打小闹”。 今天我们要面对的,是一个真正的“四国联军”——YOLOv8检测、ResNet分类、OCR文字识别、语音合成,四个模型串联成一条生产线。 你可能会想:“不就是把四个模型串…...

恶意软件分析利器:基于统计特征的二进制模式识别与批量编辑工具

1. 项目概述&#xff1a;一个面向恶意软件分析的“均值”编辑器最近在分析一些PUA&#xff08;潜在不受欢迎应用程序&#xff09;和恶意软件样本时&#xff0c;我经常遇到一个头疼的问题&#xff1a;很多样本为了绕过静态检测&#xff0c;会嵌入大量垃圾代码、花指令&#xff0…...

终极解决方案:3分钟轻松解决腾讯游戏ACE-Guard卡顿问题

终极解决方案&#xff1a;3分钟轻松解决腾讯游戏ACE-Guard卡顿问题 【免费下载链接】sguard_limit 限制ACE-Guard Client EXE占用系统资源&#xff0c;支持各种腾讯游戏 项目地址: https://gitcode.com/gh_mirrors/sg/sguard_limit 还在为腾讯游戏中的ACE-Guard进程占用…...

CANape实战:如何绕过CSMconfig识别问题,用VN5610A的Network模式连接ECAT ADMM模块

CANape高阶实战&#xff1a;绕过CSMconfig限制实现VN5610A与ECAT模块的Network模式直连 当工程师面对CSMconfig无法识别VN5610A网口的报错窗口时&#xff0c;往往会陷入传统配置路径的思维定式。这个看似简单的识别问题背后&#xff0c;实际上隐藏着新旧硬件架构更迭带来的工作…...

5个场景深度解析:如何用bili2text将B站视频变成你的私人知识库

5个场景深度解析&#xff1a;如何用bili2text将B站视频变成你的私人知识库 【免费下载链接】bili2text Bilibili视频转文字&#xff0c;一步到位&#xff0c;输入链接即可使用 项目地址: https://gitcode.com/gh_mirrors/bi/bili2text 凌晨两点&#xff0c;小林还在为明…...

告别黑盒:5分钟为你的自定义CNN模型集成Grad-CAM可视化(附常见错误排查)

告别黑盒&#xff1a;5分钟为你的自定义CNN模型集成Grad-CAM可视化&#xff08;附常见错误排查&#xff09; 在深度学习项目中&#xff0c;我们常常陷入一个尴尬境地&#xff1a;模型准确率很高&#xff0c;但完全不知道它究竟"看"了图像的哪些部分做出决策。这种黑盒…...