【VSCode】Dev Container - 开发环境一致性
- https://github.com/microsoft/vscode-dev-containers/tree/main
- https://github.com/devcontainers/cli
一、仓库核心用途
microsoft/vscode-dev-containers 是微软官方维护的 VS Code 开发容器(Dev Container)定义和模板仓库,核心作用是提供开箱即用的开发容器配置,让开发者快速搭建标准化的本地/云端开发环境:
借助 Docker 和 VSCode 工具链,保证开发环境的一致性和可维护性。可以跨平台与网页端访问,快速搭建。
1. 核心能力
开发容器(Dev Container)是基于 Docker 的标准化开发环境,结合 VS Code 的「Remote - Containers」扩展(或 GitHub Codespaces),可以实现:
- 跨平台一致的开发环境(Windows/macOS/Linux 无差异);
- 一键复用预配置的工具链、依赖、扩展(比如 Go/.NET/C++/Python 等语言的完整开发环境);
- 隔离项目依赖,避免本地环境污染。
2. 仓库主要内容
| 目录/文件 | 作用 |
|---|---|
containers/ |
核心:多语言/框架的开发容器模板(Go、.NET、C++、Python、Docker-in-Docker 等) |
repository-containers/ |
针对特定开源仓库(如 VS Code、TensorFlow、CPython)的定制化开发容器配置 |
script-library/ |
构建容器时的通用脚本(如安装 zsh、Node.js、桌面环境等) |
build/ |
容器镜像构建、发布到 MCR(微软容器仓库)的脚本 |
.devcontainer/ |
仓库自身的开发容器配置(用于调试/维护该仓库) |
⚠️ 重要提示:该仓库已标记为弃用,计划在 2023 年 11 月归档,微软建议迁移到 devcontainers/spec、devcontainers/cli 等新一代开发容器生态仓库。
二、本地部署/使用方法
该仓库的核心价值是「复用开发容器配置」,本地使用需满足前置条件 + 核心步骤:
前置条件
- 安装 Docker(Desktop 版,官网);
- 安装 VS Code + 「Dev Containers」扩展(原 Remote - Containers,市场链接);
- (可选)Git(用于克隆仓库)。
核心使用步骤
方式 1:复用现有容器模板(推荐)
比如想快速搭建 Go 开发环境:
- 克隆仓库到本地:
git clone https://github.com/microsoft/vscode-dev-containers.git cd vscode-dev-containers - 打开
containers/go/.devcontainer/目录(该目录包含devcontainer.json+Dockerfile); - 在 VS Code 中按下
F1/Ctrl/Cmd + Shift + P,执行「Dev Containers: Reopen in Container」; - VS Code 会自动构建/拉取 Go 开发容器镜像,启动容器并进入开发环境(已预装 Go 工具链、VS Code Go 扩展)。
方式 2:定制自己的开发容器
基于仓库模板修改配置(以 .NET 为例):
- 复制
containers/dotnet/.devcontainer/到你的项目根目录; - 修改
devcontainer.json中的参数(如 .NET 版本、扩展、端口转发):// 示例:修改 .NET 版本为 8.0 "build": { "dockerfile": "Dockerfile", "args": { "VARIANT": "8.0-bullseye" } } - 执行「Dev Containers: Reopen in Container」,VS Code 会基于定制的 Dockerfile 构建容器。
方式 3:使用预构建镜像
仓库提供了大量预构建镜像(发布在 MCR),可直接在 devcontainer.json 中引用:
{
"name": "VS Code Dev",
"image": "mcr.microsoft.com/vscode/devcontainers/repos/microsoft/vscode:dev"
}
三、注意事项
- 弃用影响:仓库归档后不再维护,建议优先使用 devcontainers/templates 新一代模板;
- 权限配置:部分容器需要
--privileged/SYS_PTRACE权限(如 C++/Go 调试),配置在devcontainer.json的runArgs中; - 非 root 用户:默认使用
vscode/node非 root 用户,如需 root 可注释remoteUser配置; - GitHub Codespaces 兼容:
repository-containers/目录的配置目前不支持 GitHub Codespaces,仅本地可用。
四、快速测试仓库自身的开发容器
仓库提供了「容器内嵌套容器」的调试环境(Inception 模式):
- 打开仓库根目录的
.devcontainer/; - 执行「Reopen in Container」,容器会启动带桌面环境的调试环境;
- 按下
F1→ 「Ports: Focus on Ports View」,查看 6080/5901 端口,访问即可进入容器内的桌面(密码:vscode)。
综上,该仓库是 VS Code 开发容器的「模板库」,本地完全可部署/复用,核心是结合 Docker + VS Code 扩展实现标准化开发环境,尽管仓库已弃用,但现有模板仍可作为开发容器配置的参考。

浙公网安备 33010602011771号