【Python编程工具】【ssh连接Docker容器】如何使用Docker容器里的python环境,如何调试在容器中的代码

文章目录

  • 方案一览
    • Gateway软件介绍
    • 启动容器
    • 配置apt源
    • 在容器中安装SSH服务器
    • 配置SSH服务器
    • 生成SSH密钥
    • 启动SSH服务
    • 为root创建密码
    • 连接到容器
    • 使用Gateway

方案一览

本篇博客将介绍如何在Docker容器中打开SSH连接服务,以及如何使用JetBrains Gateway软件进行代码调试。

Gateway软件介绍

JetBrains Gateway是一款紧凑型桌面应用,可让您通过 JetBrains IDE 远程工作,甚至无需下载这些IDE。通过在桌面端安装这款软件,您可以直接调试服务器上的代码。

JetBrains Gateway

启动容器

使用以下命令启动容器,其中 --net host 参数是为了让容器使用宿主机的网络。

docker run -it --net host --gpus all kevinchina/deeplearning:cu11.8ubuntu22.04 bash

您也可以指定端口,比如将宿主机的2024端口映射到容器的22端口:

docker run -it -p 2024:22 --gpus all kevinchina/deeplearning:cu11.8ubuntu22.04 bash

配置apt源

详细配置apt源,请参考博客:https://qq742971636.blog.csdn.net/article/details/134291339

对于Ubuntu 22.04,配置文件如下:

vim /etc/apt/sources.list
deb http://mirrors.aliyun.com/ubuntu/ jammy main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ jammy-security main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ jammy-updates main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ jammy-backports main restricted universe multiverse

# deb-src http://mirrors.aliyun.com/ubuntu/ jammy main restricted universe multiverse
# deb-src http://mirrors.aliyun.com/ubuntu/ jammy-security main restricted universe multiverse
# deb-src http://mirrors.aliyun.com/ubuntu/ jammy-updates main restricted universe multiverse
# deb-src http://mirrors.aliyun.com/ubuntu/ jammy-backports main restricted universe multiverse

## Pre-released source, not recommended.
# deb http://mirrors.aliyun.com/ubuntu/ jammy-proposed main restricted universe multiverse
# deb-src http://mirrors.aliyun.com/ubuntu/ jammy-proposed main restricted universe multiverse

在容器中安装SSH服务器

在容器内运行以下命令来安装SSH服务器,确保已经安装了openssh-server:

apt-get update
apt-get install -y openssh-server

配置SSH服务器

编辑SSH服务器配置文件 /etc/ssh/sshd_config,确保以下行被设置为合适的值:

Port 2024 # 根据需求设置,容器Linux开启SSH服务的默认端口是22
PermitRootLogin yes  # 允许root用户登录(可选,根据需要设置)
PasswordAuthentication yes  # 允许密码身份验证

生成SSH密钥

如果还没有SSH密钥对,可以生成一个:

ssh-keygen -t rsa -b 2048

启动SSH服务

启动SSH服务:

service ssh start

或者,如果容器中使用systemd,使用以下命令:

systemctl start ssh

为root创建密码

为root创建密码,例如设为 nihao123

passwd root
nihao123

连接到容器

现在,可以使用SSH连接到Docker容器。在另一台服务器上执行以下命令:

ssh -p 2024 user@your_docker_host_ip

也可以直接使用root登录:

ssh -p 2024 root@10.20.31.31

请注意,出于安全考虑,建议使用SSH密钥进行身份验证,并将 PasswordAuthentication 设置为 no。确保防火墙允许通过所选的SSH端口的流量。

使用Gateway

这个就比较轻松了,别的服务器都可以ssh连接到容器里面了,此时,Gateway或者其他ssh工具就当然也是可以直接用ssh连接到容器中去。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

leetcode-hot100双指针专题

第一题:移动零 题目链接 283. 移动零 - 力扣(LeetCode) 解题思路 我们创建两个指针i,j,第一次遍历的时候指针j用来记录当前面有多少非0元素。即遍历的时候每遇到一个非0元素就将其往数组左边挪,第一次遍历完后&…

【网站项目】基于SSM的249作业提交与查收系统

🙊作者简介:拥有多年开发工作经验,分享技术代码帮助学生学习,独立完成自己的项目或者毕业设计。 代码可以私聊博主获取。🌹赠送计算机毕业设计600个选题excel文件,帮助大学选题。赠送开题报告模板&#xff…

企业AI应用开发:定制AI解决方案助力企业智能转型

随着人工智能技术的迅猛发展,越来越多的企业开始意识到人工智能在业务中的价值,并将其应用于实际场景中。而在人工智能应用开发领域,定制AI解决方案成为了企业智能转型的重要一环。 那么,什么是企业AI应用开发呢?简单…

java基础:随机生成几个整数存放到数组里并按顺序输出案例分析

思路分析 具体步骤如下: 创建一个数组,用于存放生成的随机数。 定义最大值和最小值,用于限定随机数的取值范围。 使用循环和Random类中的方法生成随机数,并将其添加到数组中。 使用Arrays类中的sort()方法对数组进行排序&#…

fcpx视频剪辑:Final Cut Pro for Mac 10.7.1中文版

Final Cut Pro是由苹果公司开发的一款专业视频编辑软件,主要用于影片的后期剪辑、调色、特效、音频处理等方面。 以下是Final Cut Pro的特点: 高效的视频编辑功能:Final Cut Pro提供了丰富的视频编辑工具,包括多轨道编辑、剪切、修…

apipost和curl收不到服务器响应的HTTP/1.1 404 Not Found

windows的apipost发送请求后,服务器响应了HTTP/1.1 404 Not Found,但是apipost一直显示发送中。 linux上的curl也一样。 使用wireshark抓包发现收到了响应,但是wireshark识别不了(图中是回应404后关闭了连接)&#xff…

Google翻译 替换插件 沉浸式翻译(放松一下)

下载地址 Greasy Fork - 安全、实用的用户脚本大全 安装后 测试 随便找一篇文章 点击右侧粉红标签图标 更多

基于云原生技术栈构建企业统一基础技术平台(总纲)

一、概述 本文主要介绍基于云原生技术栈建设企业技术平台的总纲,该技术平台对业务应用全生命周期进行管理和支撑,提供从需求交付、生产运行、稳定保障、资产运营,以及安全生产的体系化解决方案,为企业自建或采购技术平台提供参考。…

20240124-我的第一个知识星球

2024年01月25日22:50:04 家中 我在知识星球上创建了我第一个知识星球。事情是这样的: 去年搞完WHV之后,其实还是很受打击的,毕竟付出的辛苦没有得到相应的成绩,还是很失落的。但是那个时候失落没多久,想到要去小红书发帖子,把程序分享出去,我的程序不能白开发,我想让…

照片上的杂物怎么清除?这两个方法很好用

随着智能手机的普及和拍照技术的发展,我们经常会在社交媒体上分享自己的照片。然而,有时候拍摄的照片中会包含一些不必要的杂物,如电线、垃圾、阴影等,这些杂物会影响照片的美观度和视觉效果。这时候我们就需要借助工具来帮我们清…

DiffBIR: Towards Blind Image Restoration with Generative Diffusion Prior

DiffBIR: Towards Blind Image Restoration with Generative Diffusion Prior Abstract1. Introduction2. Relate work3. Methodology3.1 退化去除预训练3.2 利用生成先验进行图像重建3.3 保真度-真实性权衡的潜在图像引导 4. Experiments4.1 数据集、实现、度量4.2 与最先进方…

接口性能优化常见12式

目录 1.批处理 2.异步处理 3.空间换时间 4.预处理 5.池化思想 6.串行改并行 7.索引 8.避免大事务 9.优化程序结构 10.深分页问题 11.SQL优化 12.锁粒度避免过粗 1.批处理 批量思想:批量操作数据库,这个很好理解,我们在循环插入场…

github上传代码

github上传代码 分为三步: 1.在自己的github上找个放代码地方,比如创建一个仓库 2. 在该仓库中点击上传代码 3. 然后直接把代码拖拽过来或者点击choose your files,上传后点击一下commit即可 最后代码就可以上传上来啦 ,如果想在该…

C++——函数

1,概述 函数的作用:将一段经常使用的代码封装起来,减少重复代码 一个较大的程序,一般分为若干个程序块,每个模块实现特定的功能。 2,函数的定义 函数的定义一般主要有五个步骤: 1&#xff…

爬虫(一)

1. HTTP协议与WEB开发 1. 什么是请求头请求体,响应头响应体 2. URL地址包括什么 3. get请求和post请求到底是什么 4. Content-Type是什么1.1 简介 HTTP协议是Hyper Text Transfer Protocol(超文本传输协议)的缩写,是用于万维网(…

金融OCR领域实习日志(一)——OCR技术从0到1全面调研

一、OCR基础 任务要求: 工作原理 OCR(Optical Character Recognition,光学字符识别)是指电子设备(例如扫描仪或数码相)检查纸上打印的字符,经过检测暗、亮的模式肯定其形状,而后用…

SRPC 框架服务端源码解析

0. RPC Context 保存某些必要的上下文信息; 某端独有功能:Client 获取请求成功或失败 1. RPCBuffer const 和 constexpr 变量的主要区别是:const 变量的初始化可以被推迟到运行期,constexpr 必须在编译期初始化;所…

OpenHarmony开发——GN快速上手

背景 最近在研究鸿蒙操作系统的开源项目OpenHarmony,该项目使用了GNNinja工具链进行配置,编译,于是开始研究GN如何使用。 本文的所有信息均来自GN官网和本人个人体会。 GN快速入门 使用GN GN的主要功能是根据配置文件(.gn, BU…

Android开发--状态栏布局隐藏的方法

1.问题如下,安卓布局很不协调 2.先将ActionBar设置为NoActionBar 先打开styles.xml 3.使用工具类 package com.afison.newfault.utils;import android.annotation.TargetApi; import android.app.Activity; import android.content.Context; import android.graph…

字符串匹配(BF KMP)详解 + 刷题

目录 🌼前言 BF 算法 KMP 算法 (1)前缀函数 -- O(n^3) (2)前缀函数 -- O(n^2) (3)前缀函数 -- O(n) (4)辅助理解 🐋P1308 -- 统计单词数 …