pycharm连接远程linux服务器上的docker进行深度学习训练

news2024/9/22 19:00:16

实习过程中由于GPU都在服务器上,编辑代码很麻烦。并且服务器上配置了docker的环境,所以用pycharm连接远程服务器的docker进行深度学习,这样在本地调用远程服务器的GPU和环境,更方便一点,将这个过程记录下来,希望对大家有所帮助。

目录

一、创建映射端口的docker容器

二、配置ssh

三、在pycharm中配置环境

一、创建映射端口的docker容器

首先查看已有的镜像(我自己制作了一个,所以用grep过滤一下)

docker images | grep ds

我选择ds-pytorch作为创建容器的镜像,接下来看看目前所有的相关容器。

docker ps -a | grep ds

开始创建容器

docker run -it --name ds-test -p 8028:22 --gpus all -v /home/huangds/project:/project ds-pytorch:1.0 /bin/bash

这条命令用于启动一个新的 Docker 容器,并设置了多个选项。以下是详细的解释:

  • docker run:这是启动一个新容器的基本命令。

  • -it

    • -i:让容器分配一个伪TTY,并保持 STDIN 打开。这意味着你可以与容器内的进程进行交互。
    • -t:让容器分配一个伪TTY。通常 -i 和 -t 一起使用,以获得交互式 shell 体验。
  • --name ds-test:这个选项指定了容器的名称为 ds-test

  • -p 8028:22:这个选项用来发布(publish)容器的端口到宿主机上。这里的意思是从容器的端口 22 映射到宿主机的端口 8028。端口 22 通常是 SSH 服务使用的端口,这是为了允许从宿主机访问容器中的 SSH 服务。

  • --gpus all:这个选项指定了容器可以访问所有可用的 GPU 资源。

  • -v /home/huangds/project:/project:这个选项用来挂载宿主机的一个目录到容器中。具体来说,它把宿主机上的 /home/huangds/project 目录挂载到容器内的 /project 目录。这使得容器可以访问宿主机上的数据,可以数据共享和持久化存储。(容器会自动创建/project路径,从图中框起来的路径就可以看出

  • ds-pytorch:1.0:这部分指定了基础镜像的名字及其标签(tag)。这里的 ds-pytorch 是镜像的名字,而 1.0 是标签。标签用于区分同一个镜像的不同版本。自己的制作的镜像如果没有指定标签,会显示找不到报错

  • /bin/bash:这部分指定了容器启动后执行的第一个命令。在这里,容器启动后会进入一个交互式的 bash shell,允许用户与容器内的环境进行交互。

二、配置ssh

容器中:

更新apt

apt update

下载openssh-server

apt install -y openssh-server

下载安装过程中会出现需要填写的部分,如下图填写亚洲(6)和上海(70)就行。

此时安装完成,需要进行一些配置

mkdir /var/run/sshd
echo 'root:passwd' | chpasswd  # 这里使用你自己想设置的用户名和密码,但是一定要记住!
sed -i 's/PermitRootLogin prohibit-password/PermitRootLogin yes/' /etc/ssh/sshd_config
sed 's@session\s*required\s*pam_loginuid.so@session optional pam_loginuid.so@g' -i /etc/pam.d/sshd
echo "export VISIBLE=now" >> /etc/profile

然后重启ssh服务

service ssh restart

  1. mkdir /var/run/sshd: 创建一个名为 /var/run/sshd 的目录,这是 OpenSSH 服务所需的目录,用于存放一些临时文件。

  2. echo 'root:123456' | chpasswd: 修改 root 用户的密码为 123456。注意,这是一个非常弱的密码,强烈建议使用更安全的密码。

  3. sed -i 's/PermitRootLogin prohibit-password/PermitRootLogin yes/' /etc/ssh/sshd_config: 编辑 /etc/ssh/sshd_config 配置文件,将 PermitRootLogin prohibit-password 改为 PermitRootLogin yes,允许 root 用户通过 SSH 登录。

  4. sed 's@session\s*required\s*pam_loginuid.so@session optional pam_loginuid.so@g' -i /etc/pam.d/sshd: 编辑 /etc/pam.d/sshd 文件,将 pam_loginuid.so 从 required 改为 optional。这一步是为了允许非交互式 SSH 会话,如通过 SSH 导出文件等操作。

  5. echo 'export VISIBLE=now' > /etc/profile: 添加环境变量 VISIBLE=now/etc/profile 文件。这一步似乎有些奇怪,因为 VISIBLE 变量并不是标准的 Linux 环境变量。可能是某种自定义的需求,具体作用取决于上下文。

  6. service ssh restart: 重启 SSH 服务,让上述改动生效。

宿主机上(不是服务器的docker里):
测试新建docker容器中哪个端口转发到了服务器的22端口

docker port [your_container_name] 22

可以看到是8028,跟之前创建容器时的对应上了。

ssh root@[your_host_ip] -p 8028

ssh测试连接时有时候会报错,所以在容器中查看一下ssh的配置文件

vim /etc/ssh/sshd_config

将PermitRootLogin的值从prohibit-password改为yes,X11UseLocalhost设置为no。

之后重新在服务器中ssh连接一下,输入密码就没问题了。

ssh root@[your_host_ip] -p 8028

三、在pycharm中配置环境

选择文件file–>setting设置—>找到python解析器



出现上图就说明pycharm中的ssh连通了。

要选择系统编译器,然后选择自己的python在哪个目录下,不知道的可以在容器里输入

which python


我的python文件在/opt/conda/bin/python,所以修改如下:

"Sync folders" 显示为 <Project root> -> /dasheng,这意味着 PyCharm 将把本地项目根目录与远程服务器上的 /dasheng 目录进行同步。

出现红色方框中的选项就说明没问题了,接下来就可以在pycharm中调用服务器里GPU进行训练了。

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

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

相关文章

如何将MySQL卸载干净(win11)

相信点进来的你肯定是遇到了这个问题&#xff0c;那就是在安装MySQL的时候操作错误&#xff0c;最后结果不是自己想要的。卸载重新安装又发现安装不了。其实最主要的原因就是没有将MySQL卸载干净&#xff0c;那么如何把MySQL卸载干净&#xff1f;下面本篇文章就来给大家一步步介…

【C++】二叉搜索树的底层以及实现

个人主页 文章目录 ⭐一、二叉搜索树的概念&#x1f680;二、二叉搜索树性能分析&#x1f3dd;️三、二叉搜索树的操作1. 插入2. 查找3. 删除4. 遍历节点 &#x1f384;四、二叉搜索树的实现&#xff08;K模型&#xff09;&#x1f389;五、二叉搜索树的应用1. K模型2. KV模型…

14. PEFT:在大模型中快速应用 LoRA

如果你对LoRA还没有一个直观的概念&#xff0c;可以回看这篇文章&#xff1a;《3. 认识 LoRA&#xff1a;从线性层到注意力机制》。 我们将在这里进一步探讨如何快速地在大型预训练模型中应用 LoRA&#xff0c;并解答可能存在的问题&#xff0c;包括&#xff1a; peft 和 lora …

NSSCTF刷题篇1

js类型 [SWPUCTF 2022 新生赛]js_sign 这是一道js信息泄露的题目直接查看源码&#xff0c;有一个main.js文件点击之后&#xff0c;有一串数字和一段base64编码&#xff0c;解开base64编码得到这个编码为敲击码 解码在线网站&#xff1a;Tap Code - 许愿星 (wishingstarmoye.…

828华为云征文|华为云Flexus云服务器X实例之openEuler系统下部署k8s管理面板KubePi

828华为云征文&#xff5c;华为云Flexus云服务器X实例之openEuler系统下部署k8s管理面板kubepi 前言一、Flexus云服务器X实例介绍1.1 Flexus云服务器X实例简介1.2 Flexus云服务器X实例特点1.3 Flexus云服务器X实例使用场景 二、 KubePi介绍2.1 KubePi简介2.2 KubePi主要特点&am…

序列化方式二——JSON之Gson

Gson 1、什么是Gson? Gson是Google提供的一个用于Java编程语言的JSON&#xff08;JavaScript Object Notation&#xff09;序列化和反序列化库。它允许开发者在Java对象和JSON数据之间进行高效的映射和转换。 官网地址&#xff1a;https://github.com/google/gson 官网文档…

小程序隐私合规自查指南

一 背景&#xff1a;小程序作为一种轻量级应用&#xff0c;广泛应用于各大互联网平台。工信部通报2022年第5批侵害用户权益名单中首次出现8款违规小程序。各监管单位对“小程序”违规收集个人信息监控手段和监控力度不断加强。 工信部APP违法违规通报 上海市委网信办查处违规小…

Python_控制循环语句

if语句单分支结构的语法形式如下&#xff1a; 【操作】输入一个数字&#xff0c;小于10&#xff0c;则打印这个数字(if_test01.py)&#xff1a; num input("输入一个数字&#xff1a;") if int(num)<10: print("小于10的数&#xff1a;"num)条件表达式…

BOE(京东方)携多场景物联网创新应用亮相2024服贸会 “屏之物联”赋能数字经济

9 月 12 日&#xff0c;以“全球服务 互惠共享”为主题的2024中国国际服务贸易交易会&#xff08;以下简称“服贸会”&#xff09;在北京拉开帷幕。作为领先的物联网创新企业&#xff0c;BOE&#xff08;京东方&#xff09;携智慧办公、智慧商显、智能车载、智慧教育、智能工厂…

设计模式例题

答案&#xff1a;D C A D 知识点&#xff1a; 观察者模式的意图&#xff1a;定义对象间的一种一对多的依赖关系&#xff0c;当一个对象的状态发生改变时&#xff0c;所有依赖它的对象都得到通知并被自动更新&#xff0c;和自媒体很相似&#xff0c;自媒体更新内容&#xff0c…

C++--C++11(下)

目录 7.5 完美转发 8 新的类功能 9 可变参数模板 10 lambda表达式 11 包装器 7.5 完美转发 模板中的 && 万能引用 void Fun(int &x){ cout << "左值引用" << endl; } void Fun(const int &x){ cout << "const 左值引用…

秒变 Vim 高手:必学的编辑技巧与隐藏功能大揭秘

文章目录 前言一、vi与vim二、Vim的三种模式1. 普通模式2. 插入模式3. 命令模式 三、Vim中的查找与替换1. 查找2. 替换 四、给Vim设置行号1. 临时显示行号2. 永久显示行号 总结 前言 在Linux系统中&#xff0c;文本编辑器是开发者和系统管理员日常工作中的重要工具之一。其中&…

DeepSeek 2.5本地部署的实战教程

大家好,我是herosunly。985院校硕士毕业,现担任算法研究员一职,热衷于大模型算法的研究与应用。曾担任百度千帆大模型比赛、BPAA算法大赛评委,编写微软OpenAI考试认证指导手册。曾获得阿里云天池比赛第一名,CCF比赛第二名,科大讯飞比赛第三名。授权多项发明专利。对机器学…

想学习下Python和深度学习,Python需要学习到什么程度呢?

想要学习Python和深度学习&#xff0c;Python的学习程度需要达到能够熟练运用这门语言进行编程&#xff0c;并能够理解和实现深度学习模型的基本构建和训练过程。以下是一些推荐的书籍&#xff0c;可以帮助你系统地学习Python和深度学习&#xff1a; Python学习推荐书籍 《Py…

kubectl 执行一条命令之后发生了什么?

kubectl 是与 Kubernetes 集群交互的命令行工具&#xff0c;用户通过它可以对集群资源进行操作和管理。你有没有想过&#xff0c;当我们执行一条 kubectl 命令之后&#xff0c;背后都发生了什么&#xff1f; 详细过程 kubectl -> kube-api-server 根据通信类型&#xff0…

【大模型】AutoDL部署AI绘图大模型Stable Diffusion使用详解

目录 一、前言 二、AI绘图大模型概述 2.1 AI绘图大模型介绍 2.2 AI绘图大模型特点 2.3 AI绘图大模型优势 三、主流的AI绘图大模型介绍 3.1 Midjourney 3.1.1 Midjourney介绍 3.1.2 Midjourney功能特点 3.1.3 Midjourney使用场景 3.2 Stable Diffusion 3.2.1 Stable …

zynq的PS端mac与RTL8211F的连接要点

目录 1 VCCO_MIO12 PS_MIO_VREF3 PS的引脚4 RXDLY TXDLY5 ZYNQ的MAC可以调整延时吗 1 VCCO_MIO1 接1.8V 2 PS_MIO_VREF 接0.9V&#xff0c;可通过电阻分压 可通过电阻分压 3 PS的引脚 4 RXDLY TXDLY RXDLY RXD[0] TXDLY RXD[1] 与XC7Z020的PS端MAC连接&#xff0c;必须…

python画正方形、平行四边形、六边形、五角星、风车(四个半圆)

画正方形、平行四边形、六边形、五角星、风车&#xff08;四个半圆&#xff09; import turtle def square(side_length):"""正方形"""for _ in range(4):turtle.forward(side_length)turtle.right(90)def parallelogram(base, height):"&q…

C++——模拟实现string

1.再谈string string为什么要被设计成模板&#xff1f;日常使用string好像都是char*&#xff0c;char*不够使用吗&#xff0c;为什么要设计成模板呢&#xff1f; 1.1 关于编码 //计算机的存储如何区分呢&#xff1f;int main() {//比如在C语言中&#xff0c;有整型//如果是有…

Linux网络——HTTP协议详解(2)

文章目录 HTTP方法GET方法POST方法 状态码与报头状态码报头 会话 HTTP方法 HTTP方法有这些 但是怎么说呢&#xff0c;这些方法只有GET和POST方法是99%情况用到的 剩下的几乎不太用&#xff0c;如果有兴趣可以找《图解HTTP》&#xff0c;是处于了解的范畴 大家肯定一看就明白…