在 Windows 系统中配置 PyCharm 连接 Docker GPU 容器的完整指南
概述
本文将详细介绍如何在 Windows 系统下,通过 SSH 将 PyCharm 连接到运行在 Docker 中的 NVIDIA PyTorch GPU 容器。这种方法可以让你在本地 PyCharm IDE 中使用远程容器中的 GPU 环境和 Python 解释器。
环境准备
- Windows 10/11 操作系统
- Docker Desktop for Windows(已安装并启用 WSL2)
- NVIDIA 显卡驱动
- Docker NVIDIA 容器工具包
- PyCharm Professional 版本(社区版不支持远程解释器)
步骤一:启动并配置 Docker 容器
1.1 启动 PyTorch GPU 容器
打开 PowerShell 或 CMD,执行以下命令:
bash
docker run -it --rm --name tests --gpus all -p 2222:22 1dc787f5c626 bash
参数说明:
-it:交互式终端--rm:容器退出时自动删除--name tests:容器名称--gpus all:启用所有 GPU-p 2222:22:将主机的 2222 端口映射到容器的 22 端口1dc787f5c626:PyTorch 镜像 IDbash:启动 bash shell
1.2 在容器内安装和配置 SSH 服务
容器启动后,依次执行以下命令:
bash
# 更新包列表
apt-get update
# 安装 SSH 服务器
apt-get install -y openssh-server
# 创建 SSH 运行时目录
mkdir -p /var/run/sshd
# 设置 root 密码(这里设置为 123456,生产环境请使用复杂密码)
echo 'root:123456' | chpasswd
# 允许 root 用户通过 SSH 登录
sed -i 's/#PermitRootLogin prohibit-password/PermitRootLogin yes/' /etc/ssh/sshd_config
# 启用密码认证
sed -i 's/#PasswordAuthentication yes/PasswordAuthentication yes/' /etc/ssh/sshd_config
1.3 启动 SSH 服务
bash
/usr/sbin/sshd -D
注意:执行此命令后,终端会"卡住",这是正常的。SSH 服务正在前台运行,你需要保持这个窗口打开。可以最小化它,但不要关闭。
步骤二:PyCharm 配置
2.1 打开 PyCharm 设置
- 打开 PyCharm
- 点击菜单栏的 File → Settings (Windows/Linux)

2.2 添加 Python 解释器
- 在设置窗口中,导航到Python > Interpreter
- 点击当前解释器旁边的齿轮图标,选择 Add...

2.3 选择 SSH 解释器
- 在弹出的窗口中,选择 SSH Interpreter
- 点击 New... 创建新服务器配置

2.4 配置 SSH 连接
- 填写 SSH 连接信息:
- Host :
localhost - Port :
2222 - Username :
root - Password :
123456
- Host :

- 点击 Next
2.5 配置解释器路径
-
在下一界面中,设置远程 Python 解释器路径:
/usr/bin/python

- 同步文件夹设置(可选):
- 本地项目路径会自动同步到容器中
- 默认同步到容器的
/tmp/pycharm_project_xxx目录 - 可以点击文件夹图标修改同步路径
2.6 完成配置
- 点击 Finish,PyCharm 会测试连接
- 如果一切正常,你会看到容器中的 Python 包列表
步骤三:验证配置
3.1 验证 SSH 连接
打开新的 PowerShell 窗口,测试 SSH 连接:
bash
ssh -p 2222 root@localhost
输入密码 123456,如果成功登录,说明 SSH 配置正确。
3.2 验证 GPU 可用性
在 PyCharm 中创建一个 Python 文件,运行以下代码:
python
import torch
print(f"PyTorch版本: {torch.__version__}")
print(f"CUDA是否可用: {torch.cuda.is_available()}")
if torch.cuda.is_available():
print(f"CUDA版本: {torch.version.cuda}")
print(f"GPU名称: {torch.cuda.get_device_name(0)}")
print(f"GPU数量: {torch.cuda.device_count()}")
运行后应该能看到类似以下输出:
PyTorch版本: 2.5.0
CUDA是否可用: True
CUDA版本: 12.4
GPU名称: NVIDIA GeForce RTX 4090
GPU数量: 1
常见问题解决
问题1:SSH 连接失败
解决方案:
- 检查 Docker 容器是否在运行:
docker ps - 检查端口是否被占用,可以尝试更换端口,如
-p 2223:22 - 确认防火墙是否阻止了连接
问题2:PyCharm 无法同步文件
解决方案:
- 检查容器中的目标目录权限
- 在 PyCharm 的 Tools → Deployment → Configuration 中重新配置部署
问题3:GPU 不可用
解决方案:
- 确保 Docker Desktop 中启用了 GPU 支持
- 检查 NVIDIA 容器工具包是否安装正确
- 重启 Docker Desktop
进阶配置
持久化容器配置
为了避免每次都要重新配置,可以创建 Dockerfile:
dockerfile
FROM nvcr.io/nvidia/pytorch:25.12-py3
RUN apt-get update && \
apt-get install -y openssh-server && \
mkdir -p /var/run/sshd && \
echo 'root:123456' | chpasswd && \
sed -i 's/#PermitRootLogin prohibit-password/PermitRootLogin yes/' /etc/ssh/sshd_config && \
sed -i 's/#PasswordAuthentication yes/PasswordAuthentication yes/' /etc/ssh/sshd_config
EXPOSE 22
CMD ["/usr/sbin/sshd", "-D"]
构建并运行:
bash
docker build -t pytorch-ssh .
docker run -d --name pytorch-dev --gpus all -p 2222:22 pytorch-ssh
使用密钥认证(更安全)
- 生成 SSH 密钥对
- 将公钥添加到容器的
~/.ssh/authorized_keys - 在 PyCharm 中使用密钥认证
优点总结
- 本地开发体验:在熟悉的 PyCharm 界面中开发
- GPU 加速:充分利用本地 GPU 资源
- 环境隔离:避免污染本地 Python 环境
- 可重复性:Docker 容器确保环境一致性
- 便捷调试:支持 PyCharm 的完整调试功能
注意事项
- 安全警告:示例中使用简单密码,生产环境请使用复杂密码或密钥认证
- 资源占用:Docker 容器会占用磁盘空间和内存
- 网络问题:公司网络可能限制 Docker 使用
- 版本兼容:确保 PyCharm 和 Docker 版本兼容
结论
通过本文的配置,你可以在 Windows 系统上使用 PyCharm 无缝连接到 Docker 容器中的 GPU 环境,享受本地开发的便利性和容器化环境的优势。这种方法特别适合机器学习、深度学习开发,可以充分利用本地硬件资源,同时保持开发环境的整洁和一致性。
配置完成后的工作流程:
- 启动 Docker 容器并运行 SSH 服务
- 在 PyCharm 中连接到容器解释器
- 像本地开发一样编写和调试代码
- 代码会自动同步到容器中执行
- 享受 GPU 加速的计算性能