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

38.docker启动python解释器,pycharm通过SSH服务直连

如果希望 PyCharm 通过 SSH 连接,需在容器内安装 SSH 服务
拉取 Python 3.11 镜像

docker pull python:3.11

创建Dockerfile文件
FROM python:3.11# 对于 Debian Bookworm 或更新版本,使用新的 sources 格式
RUN echo "deb [arch=amd64 signed-by=/usr/share/keyrings/debian-archive-keyring.gpg] http://mirrors.tuna.tsinghua.edu.cn/debian/ bookworm main contrib non-free non-free-firmware" > /etc/apt/sources.list && \echo "deb [arch=amd64 signed-by=/usr/share/keyrings/debian-archive-keyring.gpg] http://mirrors.tuna.tsinghua.edu.cn/debian/ bookworm-updates main contrib non-free non-free-firmware" >> /etc/apt/sources.list && \echo "deb [arch=amd64 signed-by=/usr/share/keyrings/debian-archive-keyring.gpg] http://mirrors.tuna.tsinghua.edu.cn/debian-security bookworm-security main contrib non-free non-free-firmware" >> /etc/apt/sources.list
# 安装SSH服务器和必要的工具
RUN apt-get update && \apt-get install -y openssh-server sudo openssh-client && \rm -rf /var/lib/apt/lists/*# 创建SSH目录
RUN mkdir /var/run/sshd# 允许root通过SSH登录(仅用于开发环境)
RUN sed -i 's/#PermitRootLogin prohibit-password/PermitRootLogin yes/' /etc/ssh/sshd_config# SSH登录修复
RUN sed 's@session\s*required\s*pam_loginuid.so@session optional pam_loginuid.so@g' -i /etc/pam.d/sshd# 设置环境变量
ENV NOTVISIBLE "in users profile"
RUN echo "export VISIBLE=now" >> /etc/profile# 暴露SSH端口
EXPOSE 22# 添加设置密码的脚本
COPY set_password.sh /usr/local/bin/
RUN chmod +x /usr/local/bin/set_password.sh# 启动SSH服务和设置密码
CMD ["/usr/local/bin/set_password.sh"]

set_password.sh(通过环境变量动态设置密码)

#!/bin/bash# 设置root密码(如果环境变量ROOT_PASSWORD已设置)
if [ -n "$ROOT_PASSWORD" ]; thenecho "root:$ROOT_PASSWORD" | chpasswd
else# 默认密码(仅用于开发环境)echo "root:123456" | chpasswd
fi# 启动SSH服务
exec /usr/sbin/sshd -D

构建镜像 python-311-ssh:latest 

创建容器python-ssh,隐射端口3333:22,设置环境变量动态密码,然后本地pycharm工具连接该容器

docker run -d -p 2222:22 -e ROOT_PASSWORD=123456 --name python-ssh python-311-ssh

连接好后,启动本地代码,看缺哪些包,然后在容器内部使用 pip install 进行安装。

可以启动后,docker commit 命令将容器打成新的镜像 python-311-base:latest

在使用dockerfile文件:

FROM python-311-base:latest
WORKDIR /app
CMD ["sh", "-c", "/usr/local/bin/set_password.sh & exec /usr/local/bin/python3.11 ./pro/start.py"]

python-311-base:v1.0

再创建该容器:

docker run -itd --name pro_start -p 10088:10082 -p 2222:22  -e ROOT_PASSWORD=123456 -v /home/xiankejin/knowledge_model_nb:/app/pro python-311-base:v1.0

这个容器,既可以被本地的pycharm连接使用,又可以在服务器上部署项目使用。但是切忌不能同时启动,否则端口冲突。因为本地pycharm启动实质也是将代码上传到容器内启动。

http://www.lryc.cn/news/578155.html

相关文章:

  • ERP系统Bug记录
  • 前端Vue面试八股常考题(一)
  • 中证500股指期货一手多少钱呢?风险如何?
  • HTML5 实现的圣诞主题网站源码,使用了 HTML5 和 CSS3 技术,界面美观、节日氛围浓厚。
  • 华为云 Flexus+DeepSeek 征文|基于 Dify 平台开发智能客服 AI Agent 的完整实战指南
  • 【STM32HAL-第1讲 基础篇-单片机简介】
  • 前端开发面试题总结-原生小程序部分
  • 《从量子奇境到前端优化:解锁卡西米尔效应的隐藏力量》
  • 《用奥卡姆剃刀原理,为前端开发“减负增效”》
  • 【软考高项论文】论信息系统项目的整体管理
  • 【Java面试】10GB,1GB内存,如何排序?
  • PHP WebSocket服务器搭建指南
  • 从入门到精通:npm、npx、nvm 包管理工具详解及常用命令
  • Springboot + vue + uni-app小程序web端全套家具商场
  • 【Spring】——事务、整合、注解
  • 设计模式-观察者模式(发布订阅模式)
  • UE5 - 制作《塞尔达传说》中林克的技能 - 17 - 遥控炸弹(二)
  • 键盘第一下无反应
  • 基于Spring Boot的绿园社区团购系统的设计与实现
  • 磁悬浮轴承位移信号的高精度估计:卡尔曼滤波算法深度解析
  • MySQL复杂SQL性能优化实战:多表联查与子查询的高效方法
  • 【数据清洗与预处理】-文本采集与处理
  • LoRA 问答微调与部署全流程:基于 LLaMA-Factory + DeepSeek + FastAPI 打造专属大模型
  • Hive SQL 实战:电商销售数据分析全流程案例
  • 大数据轻量化流批一体架构探索实践(一)
  • 【数据分析】环境数据降维与聚类分析教程:从PCA到可视化
  • [特殊字符]【联邦学习实战】用 PyTorch 从 0 搭建一个最简单的联邦学习系统(含完整代码)
  • ubuntu下免sudo执行docker
  • spring-ai-alibaba官方 Playground 示例
  • 根据OS自动加载不同的native库和本地jar包