使用 Docker + SSH 打造 PyCharm 远程开发环境(基于 Ubuntu 20.04 + Python 3.8)
使用 Docker + SSH 打造 PyCharm 远程开发环境(基于 Ubuntu 20.04 + Python 3.8)
适用人群:Python 初中级开发者、希望统一开发环境或远程调试的工程师
关键词:Docker、PyCharm、SSH、远程解释器、Python 开发环境
在日常 Python 开发中,我们常常面临“在我机器上能跑”的问题。为了统一开发环境、避免依赖冲突,越来越多开发者选择使用容器化方案。本文将带你从零开始,构建一个轻量级的 Python + SSH 开发容器镜像,并通过 PyCharm 的 SSH 解释器功能实现无缝本地-容器协同开发。
🧱 一、整体架构说明
我们将构建一个基于 ubuntu:20.04 的 Docker 镜像,预装:
- Python 3.8 + pip
- openssh-server(支持 root 密码登录)
- 常用调试工具(如 vim、net-tools)
容器内工作目录为 /workspace,通过 -v 挂载本地项目代码,实现“本地写代码,容器跑程序”。
PyCharm 通过 SSH 连接到容器,直接使用容器内的 Python 解释器运行和调试代码。
📁 二、所需文件清单【可在文章顶部直接下载】
共需 3 个文件(加上 README 共 4 个):
Dockerfile:定义镜像构建逻辑docker-entrypoint.sh:容器启动脚本,运行 SSH 服务sources.list(可选):替换为国内 apt 源加速构建README.md:使用说明文档
🛠 三、Dockerfile 详解
FROM ubuntu:20.04
ARG DEBIAN_FRONTEND=noninteractive
ENV TZ=Asia/Shanghai \
PYTHONUNBUFFERED=1 \
LC_ALL=C.UTF-8 \
LANG=C.UTF-8
# 替换为国内源(可选)
COPY sources.list /etc/apt/sources.list
# 安装 Python + SSH + 工具
RUN apt-get update && \
apt-get install -y --no-install-recommends \
python3.8 \
python3-pip \
openssh-server \
vim \
net-tools \
lsof && \
apt-get clean && \
rm -rf /var/lib/apt/lists/*
# 升级 pip
RUN python3.8 -m pip install --upgrade pip
# 配置 SSH
RUN mkdir -p /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 && \
ssh-keygen -A
# 复制并设置入口脚本
COPY docker-entrypoint.sh /usr/local/bin/
RUN chmod +x /usr/local/bin/docker-entrypoint.sh
WORKDIR /workspace
EXPOSE 22
ENTRYPOINT ["/usr/local/bin/docker-entrypoint.sh"]
⚠️ 安全提示:密码
123456仅用于本地开发,请勿用于生产!
🖥 四、入口脚本:docker-entrypoint.sh
#!/bin/bash
# 启动 SSH 服务(前台模式)
exec /usr/sbin/sshd -D
该脚本确保容器启动后持续运行 SSH 服务,而不是立即退出。
🏗 五、构建与运行容器
1. 构建镜像
docker build -t my-python-dev:20.04 .
2. 启动容器(挂载项目)
docker run -d \
--name devbox \
-p 2222:22 \
-p 5000:5000 \
-v /your/local/project:/workspace \
my-python-dev:20.04
2222:22:将容器 SSH 端口映射到宿主机 22225000:5000:开放 Flask 默认端口(可根据项目调整)/your/local/project替换为你的实际项目路径
💻 六、PyCharm 配置 SSH 解释器
-
打开 PyCharm → File → Settings → Project → Python Interpreter
-
点击右上角齿轮 → Add…

-
选择 SSH Interpreter
-
填写连接信息:
- Host:
localhost - Port:
2222 - Username:
root - Password:
123456
- Host:
-
映射路径:
- Local path:
/your/local/project - Remote path:
/workspace
- Local path:
-
Python 解释器路径:
/usr/bin/python3.8 -
取消勾选 “Automatically upload files to server”

✅ 配置完成后,PyCharm 将直接使用容器内的 Python 环境运行和调试代码!
🔍 七、进入容器调试(可选)
docker exec -it devbox bash
cd /workspace
pip install -r requirements.txt
python app.py # 注意:Flask 需指定 host='0.0.0.0'
💡 Flask 用户注意:必须设置
app.run(host='0.0.0.0', port=5000),否则无法从宿主机访问!
✅ 八、优势总结
- 环境隔离:每个项目可独立容器,避免依赖冲突
- 开发一致:团队共享同一镜像,杜绝“环境差异”问题
- 无缝集成:PyCharm 原生支持 SSH 解释器,体验接近本地开发
- 轻量灵活:仅 200MB+ 镜像体积,启动快,资源占用低
🚫 九、注意事项
- 此镜像仅限本地开发使用,切勿用于生产环境
- 默认密码过于简单,若需更高安全,可在
Dockerfile中修改chpasswd行 - 若项目使用其他端口(如 Django 的 8000),记得在
docker run中额外映射
📌 结语
通过 Docker + SSH + PyCharm 的组合,我们可以轻松搭建一个高效、统一、可复现的 Python 开发环境。无论是个人项目还是团队协作,这种模式都能显著提升开发体验和效率。
欢迎点赞、收藏、转发!如有疑问,欢迎评论区交流 👇
作者:[xu_wen_xing]
首发于 CSDN
版权声明:本文为原创,转载请注明出处。
更多推荐


所有评论(0)