当前位置: 首页 > 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.xdnf.cn/news/1076005.html

相关文章:

  • 【软考高项论文】论信息系统项目的进度管理
  • Zookeeper安装使用教程
  • SQL规范
  • IDEA相关配置记录
  • 【中文核心期刊推荐】《计算机应用与软件》
  • Windows CMD命令分类大全
  • 前端开发面试题总结-原生小程序部分
  • 衡石科技使用手册-企业即时通讯工具数据问答机器人用户手册
  • STM32要学到什么程度才算合格?
  • 华为云Flexus+DeepSeek征文|基于 Dify-LLM 构建网站智能客服助手的实践探索
  • Go语言安装使用教程
  • C++ 快速回顾(五)
  • Python 数据分析与机器学习入门 (二):NumPy 核心教程,玩转多维数组
  • 湖北理元理律师事务所债务解法:从法律技术到生活重建
  • 长短期记忆网络(LSTM):让神经网络拥有 “持久记忆力” 的神奇魔法
  • 安装bcolz包报错Cython.Compiler.Errors.CompileError: bcolz/carray_ext.pyx的解决方法
  • JavaScript异步编程的五种方式
  • 反射,枚举和lambda表达式
  • 七天学会SpringCloud分布式微服务——06——Sentinel
  • springboot中多个定时任务(@Scheduled)如何互不影响
  • 如何用废弃电脑变成服务器搭建web网站(公网访问零成本)
  • OpenCV CUDA模块设备层----- 正切(tangent)运算函数tan()
  • CSDN博客大搬家(本地下载markdown合适和图片本地化)
  • 关于 java:8. Java 内存模型与 JVM 基础
  • 基础算法合集-图论
  • 字节跳动 C++ QT PC客户端面试
  • Bessel位势方程求解步骤
  • OpenCV计算机视觉实战(14)——直方图均衡化
  • AutoCAD Electrical 2009无法激活
  • 通过python+openCV实现对图片中箭头方向的判断