vscode如何使用Docker容器进行开发

轻敏酱_3246

轻敏酱_3246

2026-03-20

892人浏览

原创

docker容器开发优于宿主机装环境,因能保障环境一致性;vs code通过remote-containers扩展实现一键“reopen in container”;需正确配置devcontainer.json、网络访问(如host.docker.internal)及调试端口映射。

vscode如何使用docker容器进行开发

为什么直接在宿主机装环境不如用 Docker 容器开发

因为环境一致性最难靠人来维护。你本地跑通的 Python 3.9 + Django 4.2,换台机器可能卡在 psycopg2 编译失败;前端项目里 Node 版本、node_modules 二进制依赖、甚至时区设置都可能让 npm run dev 行为不一致。Docker 把运行时、依赖、配置全打包,VS Code 只需连进去,就像在另一台干净的机器上敲命令。

关键不是“能不能”,而是“要不要绕过容器做本地构建”——答案通常是:不要。尤其当你提交的 Dockerfile 和 CI 用的是同一套镜像时,开发即预演上线环境。

安装 Remote - Containers 扩展后怎么打开一个容器

别从空文件夹开始,也别手动 docker run 后再连。正确路径是:打开含 .devcontainer/devcontainer.json 的项目根目录 → 点右下角绿色按钮「Reopen in Container」→ 等 VS Code 拉镜像、建容器、装扩展、执行 postCreateCommand。

常见错误现象:

  • 点按钮没反应?检查文件夹里有没有 .devcontainer 目录和有效的 devcontainer.json
  • 报错 The "docker" command was not found?确认 Docker Desktop 已启动,且 CLI 在系统 PATH 里(macOS/Linux 通常 ok,Windows 用户常漏掉 WSL2 集成)
  • 容器起来但终端卡在 Starting Dev Container?大概率是 devcontainer.json 里写的 image 名字拼错了,或私有 registry 没配 docker login

推荐做法:优先用 image 字段指定基础镜像(如 mcr.microsoft.com/vscode/devcontainers/python:3.11),而不是 dockerfile —— 省去自己写 Dockerfile 的调试成本,尤其对新手。

如何让容器里访问宿主机服务(比如本地数据库)

容器默认在独立网络命名空间,localhost 指向自己,不是宿主机。想连宿主机上的 postgres 或 redis,必须用特殊地址:

VSCode
VSCode

避免常见的 VSCode 错误——设置冲突、调试器配置和扩展冲突。

下载
  • macOS / Windows:用 host.docker.internal(Docker Desktop 默认支持)
  • Linux:只能用宿主机真实 IP(查 ip route | grep default | awk '{print $3}'),或启动容器时加 --add-host=host.docker.internal:host-gateway

注意:host.docker.internal 不是 Docker 标准,它只存在于 Docker Desktop 中。如果你用 podman 或裸 dockerd,这个域名会解析失败。别硬编码进应用配置,建议通过环境变量注入,例如在 devcontainer.json 里写:

"remoteEnv": {
    "DB_HOST": "host.docker.internal"
}

这样既可读,又方便 CI 替换为真实服务地址。

容器里调试 Python/Node.js 时断点不生效怎么办

VS Code 调试器需要和容器内进程通信,常见断点失效是因为端口没暴露、路径映射不对、或调试器没启用。

  • Python:确保 launch.json 里 "justMyCode": false(否则跳进第三方包就停不住),且容器里已装 debugpy(Remote - Containers 扩展通常自动装,但自定义镜像得手动 pip install debugpy)
  • Node.js:启动命令必须带 --inspect=0.0.0.0:9229(不能是 127.0.0.1),并在 devcontainer.json 的 forwardPorts 列表加上 9229
  • 路径映射错误最隐蔽:如果容器里代码路径是 /workspace/myapp,但 launch.json 的 "cwd" 写成 "./",VS Code 就找不到源码对应关系。务必用绝对路径,或在 devcontainer.json 里设 "workspaceFolder": "/workspace"

调试器连不上时,先在容器终端里跑 netstat -tuln | grep 9229 或 lsof -i :9229,确认进程真在监听,且绑定了 0.0.0.0。

路径映射和端口转发是两个独立开关,少一个都会让调试静默失败——这点最容易被忽略,因为没报错,只是断点变空心圆。

相关文章

PHP速学视频免费教程(入门到精通)
PHP速学视频免费教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

相关标签:

vscode

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
Python Web 框架 Django 深度开发
Python Web 框架 Django 深度开发

本专题系统讲解 Python Django 框架的核心功能与进阶开发技巧,包括 Django 项目结构、数据库模型与迁移、视图与模板渲染、表单与认证管理、RESTful API 开发、Django 中间件与缓存优化、部署与性能调优。通过实战案例,帮助学习者掌握 使用 Django 快速构建功能全面的 Web 应用与全栈开发能力。

2026.02.04

553

30

Python Django REST Framework接口安全与认证体系实践
Python Django REST Framework接口安全与认证体系实践

本专题围绕 Django REST Framework 展开,深入讲解 API 认证、JWT 鉴权、权限控制、接口安全防护以及防攻击策略设计。通过完整后端案例,帮助开发者构建安全可靠的 Web API 服务体系。

2026.06.29

220

15

504 gateway timeout怎么解决
504 gateway timeout怎么解决

504 gateway timeout的解决办法:1、检查服务器负载;2、优化查询和代码;3、增加超时限制;4、检查代理服务器;5、检查网络连接;6、使用负载均衡;7、监控和日志;8、故障排除;9、增加缓存;10、分析请求。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

2023.11.27

754

4

default gateway怎么配置
default gateway怎么配置

配置default gateway的步骤:1、了解网络环境;2、获取路由器IP地址;3、登录路由器管理界面;4、找到并配置WAN口设置;5、配置默认网关;6、保存设置并退出;7、检查网络连接是否正常。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

2023.12.07

357

5

json数据格式
json数据格式

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

2023.08.07

2135

5

json是什么
json是什么

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

2023.08.23

3262

1

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

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

2023.10.13

1096

3

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

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

2025.09.10

3739

7

pip安装使用方法
pip安装使用方法

安装步骤:1、确保Python已经正确安装在您的计算机上;2、下载“get-pip.py”脚本;3、按下Win + R键,然后输入cmd并按下Enter键来打开命令行窗口;4、在命令行窗口中,使用cd命令切换到“get-pip.py”所在的目录;5、执行安装命令;6、验证安装结果即可。大家可以访问本专题下的文章,了解pip安装使用方法的更多内容。

2023.10.09

3030

5

热门下载

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

精品课程

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