0

0

VSCode与Docker的完美结合:容器化开发入门

P粉986688829

P粉986688829

发布时间:2025-12-17 16:47:31

|

894人浏览过

|

来源于php中文网

原创

VSCode 通过 Remote-Containers 扩展实现真正“进容器开发”。安装扩展后,用 .devcontainer/devcontainer.json 定义镜像、工具、端口等,一键在容器内编码、调试、运行,环境可复现、团队一致。

vscode与docker的完美结合:容器化开发入门

VSCode 和 Docker 结合,能让本地开发环境更干净、可复现,也更容易和生产环境对齐。关键不是“装上就用”,而是理解怎么让 VSCode 真正“进到容器里”去写代码、调试、运行——而不是只在宿主机上敲 docker 命令。

用 Remote-Containers 打开项目,直接在容器里编码

这是最核心的体验升级。安装官方扩展 Remote - Containers 后,打开一个文件夹,点击左下角绿色按钮(或按 Ctrl+Shift+P → “Remote-Containers: Open Folder in Container”),VSCode 就会根据项目里的 .devcontainer/devcontainer.json 自动构建镜像、启动容器,并把整个工作区挂载进去。

  • devcontainer.json 定义了基础镜像、要安装的工具(如 Python、Node.js、Go)、端口转发、环境变量,甚至启动后自动执行的命令
  • 你编辑的代码实时存在容器里,终端也是容器内的 shell,git、npm、python manage.py runserver 全部原生运行
  • 不需要手动 docker build / docker run,也不用反复 cp 文件或改路径

调试器也能进容器:断点、变量、调用栈全正常

只要容器里装了对应语言的调试支持(比如 Python 的 ptvsd 或 debugpy,Node 的 --inspect),并在 devcontainer.json 中配置好端口转发和 launch.json,VSCode 的调试器就能无缝连接。

  • 例如 Python 项目:在容器内启动服务时加上 --no-browser --port=8000 --host=0.0.0.0,再把 8000 端口映射出来,launch.json 里设好 "attach" 模式和端口,F5 就能连上
  • 调试时看到的路径是容器内的路径(如 /workspace/src/main.py),但 VSCode 会自动映射到你本地打开的文件,断点不掉、变量可查

共享配置,团队协作少踩坑

.devcontainer/ 提交到 Git,所有人拉代码后一键进容器,环境完全一致。

Angel工作室企业网站管理系统1.2
Angel工作室企业网站管理系统1.2

Angel工作室企业网站管理系统全DIV+CSS模板,中英文显示,防注入sql关键字过滤,多浏览器适应,完美兼容IE6-IE8,火狐,谷歌等符合标准的浏览器,模板样式集中在一个CSS样式中,内容与样式完全分离,方便网站设计人员开发模板与管理。系统较为安全,以设计防注入,敏感字符屏蔽。新闻,产品,单页独立关键字设计,提高搜索引擎收录。内置IIS测试,双击打启动预览网站    Angel工作室企业网站

下载
  • 避免“我本地跑得好好的,怎么 CI 报错了?”——因为 CI 可以复用同一份 devcontainer 配置做测试环境
  • 新成员不用看长达一页的“本地环境搭建指南”,打开 VSCode → Open in Container → 等两分钟 → 开始写代码
  • 不同项目可用不同基础镜像(如前端node:18,后端用 python:3.11-slim),互不干扰

小技巧让体验更顺滑

有些细节不注意,容易卡住或白忙活:

  • 确保 Docker Desktop 正在运行,且用户在 docker 组里(Linux/macOS);Windows 用户推荐开启 WSL2 后端
  • 如果容器启动失败,点左下角绿色按钮 → “Reopen in Container”,再看 VSCode 右下角弹出的构建日志,错误通常很明确(比如 apt 源超时、缺少 build-essential)
  • 需要图形界面(如 Electron 调试)?得额外配 X11 转发或用 VSCode Web 版 + 容器内浏览器

基本上就这些。不需要改 workflow,也不用学新语法,几个配置文件 + 一个扩展,就能把开发环境从“本机拼凑”变成“容器封装”。不复杂,但容易忽略。

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

通义千问
通义千问

阿里巴巴推出的全能AI助手

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
json数据格式
json数据格式

JSON是一种轻量级的数据交换格式。本专题为大家带来json数据格式相关文章,帮助大家解决问题。

420

2023.08.07

json是什么
json是什么

JSON是一种轻量级的数据交换格式,具有简洁、易读、跨平台和语言的特点,JSON数据是通过键值对的方式进行组织,其中键是字符串,值可以是字符串、数值、布尔值、数组、对象或者null,在Web开发、数据交换和配置文件等方面得到广泛应用。本专题为大家提供json相关的文章、下载、课程内容,供大家免费下载体验。

536

2023.08.23

jquery怎么操作json
jquery怎么操作json

操作的方法有:1、“$.parseJSON(jsonString)”2、“$.getJSON(url, data, success)”;3、“$.each(obj, callback)”;4、“$.ajax()”。更多jquery怎么操作json的详细内容,可以访问本专题下面的文章。

311

2023.10.13

go语言处理json数据方法
go语言处理json数据方法

本专题整合了go语言中处理json数据方法,阅读专题下面的文章了解更多详细内容。

77

2025.09.10

堆和栈的区别
堆和栈的区别

堆和栈的区别:1、内存分配方式不同;2、大小不同;3、数据访问方式不同;4、数据的生命周期。本专题为大家提供堆和栈的区别的相关的文章、下载、课程内容,供大家免费下载体验。

397

2023.07.18

堆和栈区别
堆和栈区别

堆(Heap)和栈(Stack)是计算机中两种常见的内存分配机制。它们在内存管理的方式、分配方式以及使用场景上有很大的区别。本文将详细介绍堆和栈的特点、区别以及各自的使用场景。php中文网给大家带来了相关的教程以及文章欢迎大家前来学习阅读。

575

2023.08.10

js正则表达式
js正则表达式

php中文网为大家提供各种js正则表达式语法大全以及各种js正则表达式使用的方法,还有更多js正则表达式的相关文章、相关下载、相关课程,供大家免费下载体验。

515

2023.06.20

js获取当前时间
js获取当前时间

JS全称JavaScript,是一种具有函数优先的轻量级,解释型或即时编译型的编程语言;它是一种属于网络的高级脚本语言,主要用于Web,常用来为网页添加各式各样的动态功能。js怎么获取当前时间呢?php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

244

2023.07.28

C++ 设计模式与软件架构
C++ 设计模式与软件架构

本专题深入讲解 C++ 中的常见设计模式与架构优化,包括单例模式、工厂模式、观察者模式、策略模式、命令模式等,结合实际案例展示如何在 C++ 项目中应用这些模式提升代码可维护性与扩展性。通过案例分析,帮助开发者掌握 如何运用设计模式构建高质量的软件架构,提升系统的灵活性与可扩展性。

14

2026.01.30

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
PostgreSQL 教程
PostgreSQL 教程

共48课时 | 8.1万人学习

Git 教程
Git 教程

共21课时 | 3.1万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号