pycharm连接docker容器镜像进行开发(一)

PyCharm可以通过两种方法连接远程服务器的docker容器:
一、PyCharm通过SSH连接已在运行中的docker容器
二、PyCharm连接docker镜像,运行代码再自动创建容器
本文内容属于第一种情况。

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档


一、在镜像中安装并启动SSH服务

指定端口号启动docker容器

docker run -v  D:\datasets\uniform\data:/usr/src/app/uniform/data --name yolov5-lbh -p 16022:22 -it ultralytics/yolov5:latest

这里的22是容器的端口,SFTP默认使用22端口;
16022是宿主机的端口。

配置apt-get的国内安装源

(这里换成清华的源了)

#gedit /etc/apt/sources.list
#镜像中可能没有gedit,可以使用nano
nano /etc/apt/sources.list
#注释掉原来的内容,添加国内源
#默认注释了源码镜像以提高 apt update 速度,如有需要可自行取消注释
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-updates main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-updates main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-backports main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-backports main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-security main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-security main restricted universe multiverse

CTRL-X然后Y确认保存退出nano编辑器
安装完成后需要更新apt-get,然后安装sudo

apt-get update
apt-get install sudo

安装并启动SSH服务

#安装SSH服务
sudo apt-get install openssh-server
#启动SSH服务
sudo /etc/init.d/ssh start
#查看SSH服务状态
sudo service ssh status

设置root密码和配置文件(如需)

passwd root
nano /etc/ssh/sshd_config

增加如下内容

#启用 RSA 认证
RSAAuthentication yes 
#启用公钥私钥配对认证方式
PubkeyAuthentication yes 
#公钥文件路径(和上面生成的文件同)
AuthorizedKeysFile .ssh/authorized_keys 
#root能使用ssh登录
PermitRootLogin yes 

重启SSH

service ssh restart

完成上述操作后,可以通过127.0.0.1:16022连接本地的docker

二、通过PyCharm连接本地docker容器

配置SSH信息

在PyCharm专业版中选择SSH interpreter,输入相关的IP:port,帐号密码等信息。在这里插入图片描述
通过which python找到镜像中python的地址,在pycharm中输入,同时设置同步目录自动把project的文件全部上传到docker中。
在这里插入图片描述
在这里插入图片描述

设置代码自动上传

在这里插入图片描述
保存时同步上传
在这里插入图片描述

### 解决 PyCharm 连接 Docker 容器中的 Spark 无法运行问题 #### 配置 Docker 容器内的 Spark 环境 为了使 PyCharm 能够成功调用 Docker 容器内安装的 Spark 并正常工作,需先确认容器内部署了完整的 Spark 环境。这通常意味着要确保镜像中包含了 Spark 的二进制文件以及任何必要的依赖项。 #### 设置正确的 Python 解释器 当配置 PyCharm 使用 Anaconda3 基础环境中包含的 Python 版本作为解释器时,应验证此环境中已正确设置了 SPARK_HOME 变量,并且 `findspark` 或其他类似的库已被安装以便于自动初始化 SparkSession 对象[^1]。 ```bash export SPARK_HOME=/path/to/spark pip install findspark ``` #### 修改防火墙/安全组规则 有时网络策略可能会阻止主机与 Docker 容器之间的通信。因此建议检查并调整相关设置允许来自本地开发机器到目标端口(通常是7077用于Master节点,默认情况下)的数据流通过[^2]。 #### 更新 PyCharm Professional Edition 中的项目 SDK 和路径映射 在 PyCharm 中添加新的远程解释器之后,还需要指定源码目录同容器间的对应关系。具体来说就是告诉 IDE 如何将宿主机上的代码转换成容器里可以访问的形式。这过程可以通过编辑 Deployment Settings 来完成,在这里定义好两者之间相对位置后保存更改即可生效。 #### 测试连接稳定性 最后步是在切准备就绪的情况下尝试执行简单的测试程序来检验整个流程是否顺畅无阻。比如创建个新的 Python 文件编写如下所示的段简单脚本来启动个 Spark 应用: ```python import os from pyspark.sql import SparkSession os.environ['SPARK_HOME'] = '/opt/spark' # 替换成实际路径 spark = ( SparkSession.builder.appName("TestApp") .master("local[*]") .getOrCreate() ) data = [("James", "Sales"), ("Michael", "Sales")] df = spark.createDataFrame(data, ["name", "dept"]) print(df.show()) ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值