Dev Containers 是 vscode 利用 docker 容器提供标准化开发环境的扩展功能,通过 devcontainer.json 定义镜像、端口、扩展等,实现一键复现一致环境,提升团队协作与开发效率。

VSCode Dev Containers 让你把整个开发环境打包进容器,代码、工具、依赖、配置全在里面,换电脑、换系统、拉新同事,一键复现一致环境。
什么是 Dev Containers
Dev Containers 是 VSCode 的一个扩展功能,它利用 Docker 容器作为开发环境的运行载体。你不再需要在本地安装 node.js、python、JDK、数据库客户端等一堆工具,而是通过 devcontainer.json 文件定义环境所需镜像、端口、挂载、扩展和初始化命令,VSCode 自动拉起容器并连接进去,就像在本地一样编辑、调试、运行。
怎么快速上手一个 Dev Container
打开你的项目文件夹,在 VSCode 中按 Ctrl+Shift+P(windows/linux)或 Cmd+Shift+P(Mac),输入 Dev Containers: Add Development Container Configuration Files,选择基础镜像(比如 node.js 18、Python 3.11 或自定义 Dockerfile)。VSCode 会生成 .devcontainer/ 目录,含 devcontainer.json 和可选的 Dockerfile。
- 修改 devcontainer.json 可添加端口转发(如
"forwardPorts": [3000, 5432])、安装 VSCode 扩展("customizations.vscode.extensions")、运行初始化脚本("postCreateCommand") - 用 Dev Containers: Reopen in Container 命令启动,等待构建完成,就进入了干净隔离的容器环境
- 所有文件操作默认映射到宿主机,git、保存、调试全部照常工作
为什么值得在团队中推广
新手入职不用花半天配环境,CI 流水线可复用同一套容器配置,测试环境与开发环境真正一致。遇到“在我机器上是好的”这类问题概率大幅下降。
- 配置即代码:所有环境细节写在 git 里,可审查、可回滚、可复用
- 安全隔离:不污染宿主机,删容器就清空环境,无残留风险
- 灵活组合:支持多容器(如前端 + 后端 + postgresql),用 docker-compose.yml 定义服务关系
- 无缝体验:终端、调试器、Git 集成、甚至 Live Share 都正常工作
几个实用技巧
别只停留在“能跑”,让 Dev Containers 更好用:
- 在 devcontainer.json 中设
"remoteUser": "vscode"避免 root 权限问题 - 用
"mounts"挂载宿主机的 CLI 工具(如/usr/local/bin/docker:/usr/local/bin/docker),方便容器内直接调用 - 对私有 npm registry 或 pip 源,可在 Dockerfile 中提前配置,避免每次重装
- 配合 github Codespaces,点一下就能在浏览器里打开完整开发环境
基本上就这些。Dev Containers 不是替代 Docker Compose 或 kubernetes,而是把容器能力下沉到日常编码环节,让标准化从部署阶段前移到开发起点。