使用vscode Dev Containers可在docker容器中搭建一致开发环境。1. 安装Docker、VSCode及Remote Containers扩展;2. 项目根目录下通过命令面板添加Dev Container配置文件,生成.devcontainer文件夹;3. 配置devcontainer.JSon指定镜像、端口、插件等,如用python镜像并自动安装Pylance;4. 点击左下角“Reopen in Container”构建并进入容器环境;5. 可选自定义Dockerfile安装系统依赖,如libpq-dev;6. 遇变更可重建容器,实现团队环境统一,避免“在我机器上正常”问题。

在现代开发中,使用容器化环境可以极大提升协作效率和环境一致性。VSCode 结合 Docker 提供了“Dev Containers”功能,让你在一个隔离的容器中进行开发,同时享受本地编辑器的流畅体验。下面是如何搭建 VSCode 容器化开发环境的完整流程。
1. 环境准备
确保你的系统已安装以下工具:
- Docker:负责运行容器环境
- visual studio Code:主编辑器
- Dev Containers 扩展:VSCode 官方插件(名称为 ms-vscode-remote.remote-containers)
安装完成后,重启 VSCode,你会在左侧活动栏看到一个“>[ ]”图标(Remote Explorer),说明扩展已就绪。
2. 创建 Dev Container 配置文件
打开你的项目文件夹,在 VSCode 中执行以下操作:
- 按下 F1 或 Ctrl+Shift+P 打开命令面板
- 输入并选择:Remote-Containers: Add Development Container Configuration Files…
- 你可以选择:
VSCode 会在项目根目录生成一个 .devcontainer/ 文件夹,包含:
3. 配置 devcontainer.json 示例
以下是一个基于 Ubuntu 的 Python 开发环境配置示例:
<font face="Courier New"> { "name": "Python Dev Container", "image": "mcr.microsoft.com/vscode/devcontainers/python:3.11-bullseye", "features": { "git": "os-provided" }, "forwardPorts": [8000, 8080], "postCreateCommand": "pip install --upgrade pip", "remoteUser": "vscode", "customizations": { "vscode": { "extensions": [ "ms-python.python", "ms-python.vscode-pylance" ], "settings": { "python.defaultInterpreterPath": "/usr/local/bin/python" } } } } </font>
说明:
- image:使用微软提供的标准 Python 镜像
- forwardPorts:自动转发常用服务端口
- postCreateCommand:容器创建后自动执行的命令
- extensions:进入容器时自动安装推荐插件
4. 启动容器开发环境
配置完成后:
- 点击 VSCode 左下角的绿色标签:<Reopen in Container>
- 首次会构建镜像并启动容器,稍等片刻
- 启动成功后,你当前的编辑环境就运行在容器内了
此时你可以在终端中执行 python –version、pip list 等命令,验证环境是否正确。
5. 自定义 Dockerfile(进阶)
若需更复杂的环境(如安装系统依赖),可配置 Dockerfile:
<font face="Courier New"> # .devcontainer/Dockerfile FROM mcr.microsoft.com/vscode/devcontainers/python:3.11-bullseye <h1>安装系统包</h1><p>RUN apt-get update && export DEBIAN_FRONTEND=noninteractive && apt-get -y install --no-install-recommends libpq-dev gcc</p><h1>设置工作目录</h1><p>WORKDIR /workspace </font>
然后在 devcontainer.json 中改为使用 dockerFile 字段:
<font face="Courier New"> "build": { "dockerfile": "Dockerfile" } </font>
6. 常见问题与技巧
- 权限问题:建议设置 remoteUser: vscode 避免 root 操作
- 文件挂载:项目目录默认挂载到容器内,修改实时同步
- 离线重连:关闭 VSCode 后容器可能暂停,重新打开会自动恢复
- 重建容器:配置变更后,可通过命令面板选择“Rebuild Container”
基本上就这些。用好 Dev Containers,团队成员不再需要“在我机器上是好的”这种尴尬。统一环境,开箱即用,开发体验更干净、更可控。


