banner
约 1,200 字
4 分钟

用Docker Dev Container/Codespace实现免配置开发环境自由

2025年3月28日
2026年3月15日

摘要

Dev Container是利用Docker容器技术,实现开发环境的一致性和持久化。开发者可以配置容器环境,挂载本机目录,实现数据持久化。可以通过VS Code创建和管理Dev Container,配置文件devcontainer.json可以自定义环境和设置。

这个东西都不陌生,大名鼎鼎的虚拟容器化技术使开发者们部署应用到不同的环境中不再有这样的烦恼:

欸?明明在我的机器可以正常,为什么在你的机器上就各种报错?

Docker的容器不仅仅可以用来运行应用,还可以用来配置一致的开发环境

但是运行一个容器,当容器停止运行之后,所有的修改都会消失

这个问题可以通过挂载来解决,我们把本机中的一个目录挂载到正在运行的容器中,然后把这期间要保存的数据都放在挂载目录下,就可以实现数据持久化

架构图
架构图

Dev Container其实就是利用这样的一个原理,开发者们可以自己配置容器的环境,然后把自己的工作目录挂载到容器中,这样就可以实现本机啥都没装,但是应用可以在容器中正常运行

这样你就可以通过创建不同的Dev Container而实现无缝切换各种开发环境

前提条件

  • 安装VS Code

  • 安装Docker 18.06+

创建Dev Container

想创建一个Dev Container可以通过微软官方提供的各种开发环境模板来快速开始,这也是最简单的做法

模板创建

左下角箭头呼出命令面板,选择New Dev Container…

命令面板
命令面板

选择一个模板,比如说我这里选择了Python

模板
模板

选择之后,你可以直接创建容器,不过还有额外的选项,额外选项就是让你选择安装其他需要的环境或者依赖

之后稍等一会,他就会创建好自动打开

完事之后,打开终端可以发现我们所需要的环境已经都配置好了,之后就像正常开发一样,随便玩

终端
终端
你好
你好

配置文件创建

Ctrl+Shift+P或者F1打开VS Code命令面板

搜索Dev Containers: Add Dev Container Configuration Files…

然后又是熟悉的自己选环境环节了

选完之后,你的目录会多出一个.devcontainer文件夹,里面有个devcontainer.json

配置devcontainer.json

JSON
// For format details, see https://aka.ms/devcontainer.json. For config options, see the
// README at: https://github.com/devcontainers/templates/tree/main/src/alpine
{
	"name": "Alpine",//配置文件的名字
	// Or use a Dockerfile or Docker Compose file. More info: https://containers.dev/guide/dockerfile
	"image": "mcr.microsoft.com/devcontainers/base:alpine-3.19"//选择镜像
	//"dockerfile":

	// Features to add to the dev container. More info: https://containers.dev/features.
	 //"features": {},//这里添加你要的环境

	// Use 'forwardPorts' to make a list of ports inside the container available locally.
	// "forwardPorts": [],//配置端口转发,把容器里的端口转发到本地的端口

	// Use 'postCreateCommand' to run commands after the container is created.
	// "postCreateCommand": "uname -a",//配置容器创建好后执行什么命令
	// 如npm install命令,这样就不用自己再跑一边了

	// Configure tool-specific properties.可以配置容器里VSCode的扩展
	"customizations": {
    "vscode": {
      "extensions": ["streetsidesoftware.code-spell-checker"]
    }
  },
	// Uncomment to connect as root instead. More info: https://aka.ms/dev-containers-non-root.
	// "remoteUser": "root"
}

更多配置项,详见Dev Container metadata reference (containers.dev)

重新打开Dev Container

确保你的工作目录里有Dev Container的配置文件

Ctrl+Shift+P或者F1打开VS Code命令面板

搜索Reopen in Container打开容器,如果你期间改动过配置文件搜索Rebuild and Reopen

退出容器

点击左下角箭头,选择Close Remote Connection

可以发现VS Code就是远程连接了一个正在运行的Dockers容器,所以就和平常SSH连接到服务器开发差不多

GitHub Codespace

Codespace是Github推出的一个云端的开发环境,其实它的本质就是一个云端的Dev Container

而且它给的配置很慷慨,直接4核4G起步

使用

想要使用,非常简单只需要在你的Repo里点击Code按钮,然后选择Codespace,就可以创建一个基于你Repo不同分支的云端开发环境了

CodeSpace
CodeSpace

然后它其实也可以自己配置各个东西,只要你在你的Repo里添加.devcontainer/devcontainer.json

然后他就会根据你这配置文件来生成开发环境

之后会打开一个浏览器的VSCode,之后你可以在上面开发了

不过要注意的是,你如果关掉了那个窗口,默认云端的环境会在30分钟没动作后自动停止

在VS Code里打开
在VS Code里打开

END
© 2026 阿旷. All Rights Reserved. / RSS / Sitemap
Powered by Tanstack Start & Flare Stack Blog