Pycharm远程连接服务器
1 远程文件夹映射
# linux上的文件修改
可通过Pycharm 或者 sublime等工具远程连接 下载-->修改-->上传
# eg: Pycharm
1.选项卡:Tools ---> Deployment ---> Configuration
2.增加SFTP模式连接:SSH Configuration
ip地址、端口(22)、用户名、密码
3.配置映射:Mapping # 将本地文件夹和远程映射关联上
4.工作目录栏 ---> 右键---> Deployment # 就可以将远程或者本地文件上传下载
# 配置 自动上传文件
选项卡:Tools ---> Deployment ---> Automatic upload
# 配置 排除一些文件上传
选项卡:Tools ---> Deployment ---> Configuration
---> Exclude Paths ---> local path(选择本地一些不用上传的文件)
2 Pycharm远程连接Linux服务器开发
原理差不多 都是SSH配置 + SFTP 安全文件传输协议
参考地址:https://blog.csdn.net/hehedadaq/article/details/118737855
# 以远程服务器的python解释器 运行代码
1.选项卡:File ---> Settings---> Python Interpreter
2.添加解释器: SSH Interpreter ---> 选择新的ssh用户配置 或 已存在的ssh用户配置
3.选择远程服务器的python解释器 所在位置
# Add Python Interpreter 窗口下
---> Interpreter: /usr/bin/python
# 将会让代码以root权限执行
勾选 Execute code using this interpreter with root privileges via sudo
# 注:Linux服务器上 查看 命令的所在文件夹位置
whereis python3
>>> python3: /usr/bin/python3 /usr/bin/python3.6 /usr/local/python3
4.目录配置映射:Mapping # 将本地文件夹和远程映射关联上
# Add Python Interpreter 窗口下
---> Sync folders ---> 本地目录 映射到 远程目录
3 pycharm远程连接Docker开发
3.1 通过ssh服务,连接已在运行中的docker容器
# 原理
1.pycharm 通过ssh远程连接服务,直接连接 服务器上 docker已启动的容器 # 注:是直接连接 docker的一个容器
2.并设置pycharm的python interpreter 为 SSH Interpreter
>>> 通过ssh(ip + 容器映射到服务器上的端口),指定为 docker容器内的 python解释器
# 前提
docker已启动的容器内 需要支持的服务:ssh服务、以及python环境
参考地址:https://blog.csdn.net/Thanours/article/details/109265315
参考地址:https://cloud.tencent.com/developer/article/1649280
- 1.创建并运行一个带有ssh和python的docker容器 eg: centos7 或者 pytorch
### 1.先创建一个支持SSH服务的镜像 centos:7-ssh
# 1.1 制作带有ssh 的centos镜像
# 创建基础centos容器
docker run -di --name centos7 centos:7 # 错误
docker run -di --name centos7 --privileged=true -p 2222:22 centos:7 /usr/sbin/init
# 要以特权模式创建,不然ssh服务,用systemctl启动不了
# 进入容器装软件
docker exec -it centos7 /bin/bash
# 安装openssh-server
yum update -y && yum install openssh-server -y
# 启动ssh服务
systemctl start sshd # status、restart、enable
# 设置为开机自启动
systemctl enable sshd
# 修改容器内root的密码
passwd
1
# 把容器做成镜像
docker commit centos7 centos:7-ssh
# eg:
docker run -d --name centos7-ssh -p 2222:22 centos:7-ssh /usr/sbin/sshd -D
# 1.2 或 使用Dockerfile 创建带有ssh的镜像
# 编写Dockerfile
vim Dockerfile
# 生成的新镜像以centos7镜像为基础
FROM centos:7
# 升级yum
RUN yum -y update
# 安装openssh-server
RUN yum -y install openssh-server
# 生成sshkey 不然 /usr/sbin/sshd -D 启动不了
RUN ssh-keygen -t rsa -f /etc/ssh/ssh_host_rsa_key
# 变更root密码
RUN echo 密码 | passwd --stdin root
# 开放窗口的22端口
EXPOSE 22
# 运行脚本,启动sshd服务
CMD ["/usr/sbin/sshd", "-D"]
# 构建镜像
docker build -t centos:7-ssh .
# eg:
docker run -d --name centos7-ssh -p 2222:22 centos:7-ssh
### 2.基于ssh的centos镜像,再创建带有 python3环境的镜像 python_env
# 2.1 编写Dockerfile
vim Dockerfile
# Using Centos for base image
FROM centos:7-ssh
# author label
MAINTAINER Edmond
# install timezone gcc
ENV ENVIRONMENT DOCKER_PROD
RUN cd / && ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime \
&& yum makecache \
&& yum install -y wget aclocal automake autoconf make gcc gcc-c++ python-devel mysql-devel bzip2 libffi-devel epel-release \
# install python 3.7.1
&& wget https://npm.taobao.org/mirrors/python/3.7.1/Python-3.7.1.tar.xz \
&& tar -xvf Python-3.7.1.tar.xz -C /usr/local/ \
&& rm -rf Python-3.7.1.tar.xz \
&& cd /usr/local/Python-3.7.1 \
&& ./configure && make && make install \
# install pip3
&& yum install -y python-pip \
&& yum install -y python-setuptools \
&& pip3 install --upgrade pip -i http://pypi.douban.com/simple/ --trusted-host pypi.douban.com \
&& pip3 install setuptools==33.1.1 -i http://pypi.douban.com/simple/ --trusted-host pypi.douban.com \
&& yum clean all
# copy project
COPY . /project
# 运行脚本,启动sshd服务
CMD ["/usr/sbin/sshd", "-D"]
# 2.2 构建执行镜像
docker build -t python_env .
### 3.基于自定义好的docker镜像,创建容器
docker run -di --name python_env -p 2222:22 python_env
docker exec -it python_env /bin/bash
cd /project
- 2.配置Pycharm的调试环境,使用SSH连接上python_env
# 1.选择菜单栏的File > Setting > Project Interpreter > Add > 添加解释器: SSH Interpreter
# 2.配置添加SSH调试环境 选择新的ssh用户配置 或 已存在的ssh用户配置
ip地址、端口(2222 容器映射到服务器上的端口)、用户名(root)、密码
# 3.配置添加SSH调试环境中,使用的python3路径
首先在容器中,查看一下python3的执行文件路径:whereis python3
# Add Python Interpreter 窗口下
---> Interpreter: /usr/bin/python
# 4.配置目录映射: # 将本地文件夹和远程映射关联上
# Add Python Interpreter 窗口下
---> Sync folders ---> 本地目录 映射到 远程目录(/project)
3.2 通过TCP socket,连接docker服务,pycharm运行代码再自动创建容器
参考地址:https://www.cnblogs.com/cqzlei/articles/16811603.html
# 原理
1.pycharm 通过socket连接,直接连接 服务器上的docker # 注:是连接 docker服务,而不是连接的docker的一个容器
2.设置pycharm的python interpreter 为 docker
再具体选择 带有python环境的 镜像
或 根据自定义docker的Dockerfile文件,构建镜像
# 一般是这种,因为上面docker仓库中带python的镜像,无法安装模块
3.pycharm运行代码时,会根据选择的镜像,自动临时创建容器
# 前提
1.需要修改docker服务的配置,使得能通过远程 socket连接
2.本地需要Dockerfile文件,来构建创建容器所需的镜像
- 1.服务器上,配置docker远程服务
# 两种方式,使得docker能被远程socket连接
### 方式1:直接修改docker服务的配置文件
# 1.修改docker服务配置
vim /lib/systemd/system/docker.service
# ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock
ExecStart=/usr/bin/dockerd -H tcp://0.0.0.0:2376 -H unix:///var/run/docker.sock
# 2.设置环境变量
echo 'export DOCKER_HOST=tcp://0.0.0.0:2376' >> /etc/profile
source /etc/profile # 刷新
# 3.重启docker服务
systemctl daemon-reload && systemctl restart docker
### 方式2:新增 自定义docker daemon的守护进程 的设置文件 推荐
# 1.添加docker daemon配置
vim /etc/docker/daemon.json
{
"hosts": ["tcp://0.0.0.0:2376","unix:///var/run/docker.sock"]
}
# 2.修改docker服务配置 不修改会启动失败,daemon.json与docker服务配置 设置冲突
vim /lib/systemd/system/docker.service
#ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock
ExecStart=/usr/bin/dockerd --containerd=/run/containerd/containerd.sock
# 3.重启docker服务
systemctl daemon-reload
systemctl restart docker
# 测试
curl 127.0.0.1:2376/version
http://192.168.45.200:2376/version
- 2.配置Pycharm的调试环境
1.配置连接远程的docker
选择TCP socket >> 填入:tcp://101.133.225.166:2376 >> Certificates folder暂时不填 >> Path mappings:暂时删掉 >> 点击ok
2.配置文件的调试环境
3.可自定义容器运行时的配置
包括绑定端口、目录挂载、环境变量等
4.部署或者直接运行调试代码
注:可以看到服务器内由pycharm远程连接,拉取的镜像 和 创建的容器
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· winform 绘制太阳,地球,月球 运作规律
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人