所有文章 → 文章详情

PyCharm 连接至 Docker 容器进行开发

Anaconda有时并不是那么好用,venv配置起来又麻烦,我选择Docker~

我使用的是 PyCharm 专业版进行的操作,社区版也许会略有不同。
主要思路是 ssh 连接到容器内然后设置远程解释器,理论上能在任何支持远程解释器的编辑器内使用。

来自两年后的我:对于本地的 Docker 服务,应当直接将目录映射出来,然后单独使用镜像环境去做索引和自动补全,这样比用 SSH 方便的多。

不过,对于一些特殊情况——比如给 Codex 一个干净隔离的环境让它做开发乱霍霍,这个时候 SSH 到容器内是很合适的。可以参考文末的 SSH 设置流程。

接下来我来阐述正确方法:

Docker 容器配置

首先,在创建容器时将你的工作区映射到本地,例如:

docker run -it -v "$PWD":/workspace pytorch/pytorch

以防你不清楚,这条命令将当前路径$PWD与容器中/workspace建立映射。

PyCharm 配置

打开 Python 解释器设置,选择添加解释器 → 基于 Docker...

如果你使用的是现有镜像,就像我这样输入镜像标记,这里用的是 PyTorch 的官方镜像:

等待 PyCharm 重新拉取一遍镜像:

拉取完成后,可以看到 PyCharm 已经自动检测出了容器内的 Python 版本,选择你需要的那个继续就可以了:

如你所见,现在 PyCharm 检测出了容器内的所有依赖,可以进行自动补全了。

更新自 2026/2/28,使用 PyCharm 2025.3.2.1

以前写的用 SSH 的方法折叠在这里了

Docker 容器配置

首先需要创建一个 Docker 容器(如果没有的话)并将其 ssh 端口映射到本地,例如:

docker run -p 1022:22 -it python /bin/bash

这里将容器内的22端口映射到了本地的1022端口。1022可替换为任意本地端口(只要没有冲突)

容器内 ssh 配置

进入容器后安装 OpenSSH Server

apt update
apt install openssh-server

设置登录密码,我这里直接使用root登录,也可以使用其他账户

passwd root

OpenSSH Server 默认阻止 root 密码登录,需要修改配置文件,进入:

vim /etc/ssh/sshd_config
提示:部分镜像内可能没有安装vim,请通过apt install vim安装


sshd_config中的PermitRootLogin取消注释并改为:

PermitRootLogin yes

重启 ssh 服务

service ssh restart

至此容器内的 ssh 服务就配置完成了,在主机上测试 ssh 连接

ssh -p 1022 root@localhost

能顺利登录即为成功

PyCharm 配置

打开项目设置 → Python 解释器

添加解释器 → SSH...

按照之前配置的端口和用户名输入,再输入密码,PyCharm 会自动进行连接。

在运行时配置中选择系统解释器,将路径指向容器内 python 安装目录即可。

至此,配置已经完成,在解释器设置内选择刚配置完成的 Remote Python 即可。