如何使用VSCode进行Docker容器内的开发【教程】

梦芳大大_9448

梦芳大大_9448

2026-01-21

416人浏览

原创

不能直接在宿主机装依赖而要进容器开发,因为环境一致性是核心诉求,需确保开发与生产环境的node版本、pip路径、glibc等完全一致。

如何使用vscode进行docker容器内的开发【教程】

为什么不能直接在宿主机装依赖,而要进容器开发

因为环境一致性是核心诉求。本地装的 node 版本、pip 包路径、甚至 glibc 小版本,都可能和生产镜像不一致。Docker 容器内开发不是为了炫技,而是让「写代码时的环境」和「上线跑的环境」完全对齐——比如你用 python:3.11-slim 镜像,那开发时就该在这个镜像里装 black、跑 pytest、连容器内的 redis,而不是靠本地 redis-cli 去连容器端口。

用 Remote-Containers 扩展打开项目目录后没反应

常见原因是工作区根目录下缺少 .devcontainer/devcontainer.json,VSCode 不会自动猜测你要进哪个容器。必须手动创建这个文件,并明确指定镜像或 Dockerfile:

  • 最简配置:指定基础镜像,如 "image": "mcr.microsoft.com/devcontainers/python:3.11"
  • 若已有 Dockerfile,改用 "dockerFile": "Dockerfile.dev"(路径需相对于工作区)
  • 务必检查 docker CLI 是否可用:docker version 能正常返回,否则扩展会静默失败
  • Windows 用户注意:WSL2 后端必须启用,且 Docker Desktop 设置中要勾选 “Use the WSL 2 based engine”

容器启动后 Python 解释器找不到,或者 pip install 失败

这是路径和权限的典型错配。Remote-Containers 默认把项目挂载到 /workspaces/your-project,但很多镜像的 PYTHONPATH 或 pip 默认不认这个路径:

Sentinal Redis
Sentinal Redis

监控Redis服务器健康状况、内存、性能及BullMQ队列。检查队列深度、失败任务,分析慢查询并诊断问题。

下载
  • 在 devcontainer.json 中加 "customizations": { "vscode": { "settings": { "python.defaultInterpreterPath": "/usr/local/bin/python" } } }
  • 如果要用虚拟环境,别在宿主机建 venv,而是在容器内运行 python -m venv /workspace/.venv,然后在设置里指向它
  • pip install 报权限错误?不是加 sudo,而是改 devcontainer.json 的 "remoteUser": "root"(仅开发用),或更稳妥地用 "features" 安装包(如 "ghcr.io/devcontainers/features/python:1")

调试 Flask/FastAPI 时断点不命中,或热重载失效

根本原因在于容器默认没有暴露调试端口,且进程没以调试模式启动。VSCode 的调试器需要双向通信,不是简单跑个 python app.py 就行:

  • 确保 devcontainer.json 有端口转发:"forwardPorts": [5000, 8000],否则浏览器打不开 localhost:5000
  • 启动命令得带调试参数,例如 FastAPI:用 uvicorn main:app --reload --host 0.0.0.0:8000,其中 --host 0.0.0.0 是关键,不然只监听 localhost(容器内 loopback)
  • VSCode 调试配置(.vscode/launch.json)里 "justMyCode": false 可能导致跳过断点,建议设为 true 并确认源码路径映射正确("pathMappings")

容器内开发真正卡住人的地方,往往不是“怎么连进去”,而是“进去之后,哪些路径、端口、用户权限、网络模式是默认关闭或隔离的”。这些细节不会报红错,只会让你觉得“代码没变,但就是不生效”。

相关文章

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

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

下载

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

相关专题

更多
flask框架如何搭建
flask框架如何搭建

搭建步骤:1、安装Python和Pip;2、创建虚拟环境;3、安装Flask;4、创建Flask应用;5、运行应用;6、访问应用。想了解更多flask框架的相关内容,可以阅读本专题下面的文章。

2024.06.27

4035

8

Python Flask框架
Python Flask框架

本专题专注于 Python 轻量级 Web 框架 Flask 的学习与实战,内容涵盖路由与视图、模板渲染、表单处理、数据库集成、用户认证以及RESTful API 开发。通过博客系统、任务管理工具与微服务接口等项目实战,帮助学员掌握 Flask 在快速构建小型到中型 Web 应用中的核心技能。

2025.08.25

6224

10

Python Flask Web框架与API开发
Python Flask Web框架与API开发

本专题系统介绍 Python Flask Web框架的基础与进阶应用,包括Flask路由、请求与响应、模板渲染、表单处理、安全性加固、数据库集成(SQLAlchemy)、以及使用Flask构建 RESTful API 服务。通过多个实战项目,帮助学习者掌握使用 Flask 开发高效、可扩展的 Web 应用与 API。

2025.12.15

316

16

json数据格式
json数据格式

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

2023.08.07

2235

5

json是什么
json是什么

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

2023.08.23

3562

1

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

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

2023.10.13

1196

3

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

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

2025.09.10

4099

7

Python FastAPI异步API开发_Python怎么用FastAPI构建异步API
Python FastAPI异步API开发_Python怎么用FastAPI构建异步API

Python FastAPI 异步开发利用 async/await 关键字,通过定义异步视图函数、使用异步数据库库 (如 databases)、异步 HTTP 客户端 (如 httpx),并结合后台任务队列(如 Celery)和异步依赖项,实现高效的 I/O 密集型 API,显著提升吞吐量和响应速度,尤其适用于处理数据库查询、网络请求等耗时操作,无需阻塞主线程。

2025.12.22

119

5

Python 微服务架构与 FastAPI 框架
Python 微服务架构与 FastAPI 框架

本专题系统讲解 Python 微服务架构设计与 FastAPI 框架应用,涵盖 FastAPI 的快速开发、路由与依赖注入、数据模型验证、API 文档自动生成、OAuth2 与 JWT 身份验证、异步支持、部署与扩展等。通过实际案例,帮助学习者掌握 使用 FastAPI 构建高效、可扩展的微服务应用,提高服务响应速度与系统可维护性。

2026.02.06

574

18

热门下载

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

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Uvicorn官方安装与入门手册
Uvicorn官方安装与入门手册

共0课时 | 0人学习

Python uv官方项目管理指南
Python uv官方项目管理指南

共0课时 | 0人学习

Python uv官方安装与入门文档
Python uv官方安装与入门文档

共0课时 | 0人学习