使用 VSCode Dev Containers 可在容器中开发,确保环境一致。1. 安装 Docker、VSCode 和 Dev Containers 扩展;2. 创建 devcontainer.json 配置镜像、功能和插件;3. 可选自定义 Dockerfile 安装依赖;4. 用 “Reopen in Container” 启动,自动构建并挂载项目;5. 配置端口、挂载、初始化脚本等提升体验。

使用 VSCode 进行容器化开发,可以通过 Dev Containers 功能在隔离的容器环境中编写、运行和调试代码。这种方式能确保开发环境的一致性,避免“在我机器上能跑”的问题。只需配置好 DevContainer,团队成员就能共享完全一致的工具链、依赖和设置。
1. 准备工作:安装必要组件
要启用 Dev Container 开发,你的系统需要预先安装以下工具:
- Docker:负责构建和运行容器环境
- Visual Studio Code:推荐使用最新稳定版
- Dev Containers 扩展:在 VSCode 扩展市场中搜索 “Dev Containers” 并安装(由 Microsoft 提供)
安装完成后,VSCode 就具备了打开或创建容器内开发环境的能力。
2. 创建 devcontainer.json 配置文件
项目根目录下新建 .devcontainer/devcontainer.json 文件,定义容器行为。最简单的配置如下:
{
"image": "mcr.microsoft.com/vscode/devcontainers/base:ubuntu-22.04",
"features": {
"git": "latest"
},
"customizations": {
"vscode": {
"extensions": [
"ms-python.python",
"ms-python.vscode-pylance"
],
"settings": {
"python.defaultInterpreterPath": "/usr/bin/python3"
}
}
}
}说明:
-
image指定基础镜像,也可用dockerFile自定义构建 -
features添加额外功能,如 Git、Node.js 等 -
extensions列出项目推荐的插件,打开容器时自动安装 -
settings设置 VSCode 行为,比如指定 Python 解释器路径
3. 使用自定义 Dockerfile(可选)
若需更精细控制环境,可在 .devcontainer 目录中添加 Dockerfile:
小兵小兵建站CMS V1.0(内容管理系统),基于OneThink开源框架,和超过300家以上网站建设客户进行了深度的合作与需求沟通,经过了一年时间的研发,打造了国内最简洁好用、易于操作的网站管理后台。小兵建站CMS,国内最简单易用的网站管理系统!永久免费开源!小兵建站CMS服务器配置要求:安装环境:PHP 版本 5.3以上 ; mysql: 5.0以上 IIS: 7.0 以上 安装
FROM mcr.microsoft.com/vscode/devcontainers/base:ubuntu-22.04
RUN apt-get update && apt-get install -y \
python3-pip \
postgresql-client \
&& rm -rf /var/lib/apt/lists/*
COPY requirements.txt /tmp/requirements.txt
RUN pip3 install -r /tmp/requirements.txt然后在 devcontainer.json 中引用它:
"build": {
"dockerfile": "Dockerfile"
}4. 启动并进入 Dev Container 环境
配置完成后,按以下步骤启动:
- 在 VSCode 中按下
F1或Ctrl+Shift+P - 输入命令 “Reopen in Container”
- VSCode 会自动构建镜像、启动容器,并将项目挂载进去
- 首次可能较慢,后续启动会利用缓存加快速度
成功后,左下角状态栏会显示当前连接的容器名称,终端也运行在容器内部。
5. 常见配置选项与技巧
提升开发体验的一些实用设置:
-
端口转发:添加
appPort字段让服务端口自动可用,例如"appPort": [3000, 5000] -
挂载本地文件:通过
mounts挂载主机目录,如数据库数据卷 -
初始化脚本:使用
onCreateCommand在容器创建后执行命令,如安装依赖 - 非 root 用户:建议保持默认用户权限,避免权限问题
基本上就这些。配置一次,团队共享,环境统一,开发更高效。









