欢迎光临
我们一直在努力

【docker①】在VS Code中使用Docker容器

0 序言

本文将系统介绍在VS Code中使用Docker的相关知识,涵盖基础概念、环境配置、核心操作及高级应用。通过学习,你将理解为何在VS Code中集成Docker能提升开发效率,掌握Docker镜像、容器的基本概念,以及在VS Code中构建、运行、调试容器的具体方法,利用VS Code与Docker协同进行项目开发。

1 Docker与VS Code集成基础

在开发过程中,不同项目可能依赖不同的环境(如Python版本、数据库配置等),手动配置容易出现环境不一致问题。Docker通过容器化技术实现环境隔离,而VS Code提供了对Docker的深度支持,可在同一界面完成镜像构建、容器管理、代码调试等操作,减少工具切换成本,提升开发效率。

1.1 Docker核心概念

1.1.1 镜像(Image)

Docker镜像是一个包含代码、运行时、库、环境变量和配置文件的只读模板,是创建容器的基础。例如,一个Python镜像可能包含Python解释器、必要的依赖库等。

1.1.2 容器(Container)

容器是镜像的运行实例,是一个独立的可执行单元。镜像相当于类,容器相当于对象,一个镜像可创建多个容器,容器间相互隔离。

1.1.3 Dockerfile

Dockerfile是一个文本文件,包含一系列指令,用于构建Docker镜像。通过Dockerfile,开发者可定义镜像的基础环境、安装依赖、配置程序等,实现镜像的可重复构建。

1.1.4 Docker Compose

Docker Compose是用于定义和运行多容器Docker应用的工具,通过yaml文件配置应用的服务,可一键启动、停止所有服务,适合多组件协同的项目(如前端+后端+数据库)。

总结就是,如果用面包这个例子来做一个类比的话,就是Dockerfile相当于面包磨具的图纸,Image相当于制作面包的磨具,Container相当于制作出来的面包,Docker Compose相当于面包店的套餐组合单。

2 环境准备

2.1 安装Docker

2.1.1 Windows系统

在这里还需要考虑一件事,就是原先电脑里是否有虚拟机,如果没有用过虚拟机,那就直接按照以下步骤即可。

但如果之前有在电脑创建过虚拟机并且运行了,有一定的数据储存情况下,我们得先确保要不要接着保留虚拟机,比如VirualBox等这些。

因为docker跟如VirualBox此类虚拟机还是存在一定的冲突风险的,所以如果后续还想接着使用虚拟机,最好还是先请确认一下,尤其是windows系统。

这里有个方法,可以实现在Windows系统中 Docker Desktop 和 VirtualBox 虚拟机共存,避免两者因虚拟化技术冲突而无法同时使用,可参考以下方法:

确认当前系统环境,通过在命令提示符中执行 wsl -l -v 命令,查看 Windows Subsystem for Linux(WSL)的安装和版本情况。

在这里插入图片描述

若输出结果中显示已安装的 Linux 发行版(如 Ubuntu)及其对应的 WSL 版本为 2,且状态为 Stopped 或 Running,则说明 WSL 2 环境已准备就绪。如果没有安装 WSL 2 或者没有对应的 Linux 发行版,需要先进行安装和配置。

此外就是要想使用docker的桌面版本,你得Windows系统版本号需要1904以上!!!

在这里插入图片描述

  • 检查系统要求:需Windows 10 64位专业版、企业版或教育版(支持Hyper-V),或Windows 11。
  • 下载Docker Desktop:访问Docker官网,下载对应版本并安装。
  • 验证安装:打开命令提示符,输入docker –version,若显示版本信息则安装成功。
  • 打开Docker官网,点击下载, 在这里插入图片描述 只要你的电脑是 x86 架构 64 位处理器,一般都是选择AMD64版本。

    在这里插入图片描述

    下载完后双击打开该exe文件,

    在这里插入图片描述 选择以上两个选项,点击下一步。

    在这里插入图片描述 等待加载。

    在这里插入图片描述 点 Close and log out 注销 – 重新登录 – 启动 Docker 继续配置,注销只是短暂退出登录,不会丢文件。

    在这里插入图片描述 在弹出该页面的地方选择Accept

    在这里插入图片描述

    单纯想先用 Docker 跑公开镜像、本地容器,不用登录,直接跳过即可。

    如果你想用私有镜像、Docker Hub 远程操作,或是已经有账号,就直接sign in即可。

    在这里插入图片描述 正常填写即可,也可以选择跳过,不影响后续操作。

    在这里插入图片描述 接下来需要完成 WSL 2 集成配置,这样 Docker 才能借助 WSL 2 跑容器。

    点击 Docker Desktop 右上角的 齿轮图标(Settings,设置),进入配置界面。

    在这里插入图片描述 按上图要求完成配置。

    在这里插入图片描述 Docker Desktop 已正常启动并处于运行状态,但还需结合功能验证来确认是否真的能正常工作。

    win + r输出cmd打开Windows 命令提示符,输入docker ps并回车。

    在这里插入图片描述

    由于国内的镜像源拉取速度比较慢,很容易出现网络超时这种情况,因此有必要用国内的镜像源来加快拉取速度。

    粘贴以下程序:

    {
    "builder": {
    "gc": {
    "defaultKeepStorage": "20GB",
    "enabled": true
    }
    },
    "experimental": false,
    "registry-mirrors": [
    "https://docker.mirrors.ustc.edu.cn",
    "https://hub-mirror.c.163.com",
    "https://mirror.baidubce.com"
    ]
    }

    在这里插入图片描述 然后在下面这个地方修改一下镜像存放的位置。 (也可以选择不做更改,都可以,如果C盘空间足够的话)

    在这里插入图片描述

    接着打开终端,验证一下docker能够正常拉取镜像。

    在这里插入图片描述

    如果出现这个就说明成功拉取到了。

    当然,你也可以回到docker桌面端,在images中可以看到你拉取到的镜像,点击运行即可。

    在这里插入图片描述

    点运行后会弹出创建容器,根据自己需求填写后点运行即可。

    在这里插入图片描述

    运行后就可以看到运行结果了。

    在这里插入图片描述

    2.2 配置VS Code

    2.2.1 安装Docker插件

  • 打开VS Code,进入扩展面板(快捷键Ctrl+Shift+X或Cmd+Shift+X)。
  • 搜索“Docker”,选择微软官方的“Docker”插件(作者为Microsoft),点击“安装”。
  • 安装完成后,VS Code左侧会出现Docker图标,可通过该面板管理镜像、容器等。
  • 在这里插入图片描述

    这里就看到VsCode已经自动连接上docker了。 在这里插入图片描述

    2.2.2 配置Docker连接(默认无需额外配置)

    Docker插件默认会自动连接本地Docker服务,若需连接远程Docker服务,可按以下步骤:

  • 打开VS Code设置(Ctrl+,或Cmd+,)。
  • 搜索“docker.host”,设置远程Docker服务地址(如tcp://remote-host:2375)。
  • 重启VS Code使配置生效。
  • 3 VS Code中使用Docker的核心操作

    3.1 创建Dockerfile

    3.1.1 新建Dockerfile

  • 在VS Code中打开项目文件夹,右键新建文件,命名为Dockerfile(无扩展名)。
  • 输入基础指令: 在你新创建的Dockerfile里写上以下程序。
  • # 基础镜像
    FROM python:3.9-slim

    # 设置工作目录
    WORKDIR /app

    # 复制项目依赖文件
    COPY requirements.txt .

    # 安装依赖
    RUN pip install –no-cache-dir -r requirements.txt

    # 复制项目代码
    COPY . .

    # 暴露端口(若项目有服务)
    EXPOSE 5000

    # 启动命令
    CMD ["python", "app.py"]

    在这里插入图片描述 在运行程序之前,需要确保你的项目目录下需要有 requirements.txt 文件(用于记录 Python 项目的依赖包),如果没有实际依赖,可以创建一个空的 requirements.txt 文件,

    项目目录下还需要有 app.py 文件。 app.py文件程序内容如下:

    from flask import Flask

    app = Flask(__name__)

    @app.route('/')
    def hello_world():
    return 'Hello, Docker!'

    if __name__ == '__main__':
    app.run(host='0.0.0.0', port=5000)

    在这里插入图片描述

    3.1.2 Dockerfile指令说明

    • FROM:指定基础镜像,必须为Dockerfile的第一条指令。
    • WORKDIR:设置后续指令的工作目录。
    • COPY:将本地文件复制到镜像中。
    • RUN:在镜像构建过程中执行命令。
    • EXPOSE:声明容器运行时暴露的端口(仅为文档说明,需配合-p参数映射)。
    • CMD:指定容器启动时执行的命令(可被docker run后的命令覆盖)。

    3.2 构建Docker镜像

    3.2.1 基于Dockerfile构建

  • 打开VS Code终端(Ctrl+` 或Cmd+`)。
  • 执行构建命令:docker build -t my-python-app:1.0 .
    • -t:指定镜像标签(格式为名称:版本)。
    • .:表示Dockerfile所在的当前目录。
  • 构建完成后,可在VS Code的Docker面板Images中看到新构建的镜像。
  • 在这里插入图片描述 从docker的images就能看到新建好的镜像了。

    在这里插入图片描述

    3.2.2 查看镜像信息

    在VS Code Docker面板中,右键镜像选择“Inspect”,可查看镜像的详细配置(如层信息、环境变量等);或在终端执行:

    docker images my-python-app:1.0

    在这里插入图片描述

    3.3 运行Docker容器

    3.3.1 基础运行命令

    在终端执行:

    docker run -d -p 5000:5000 –name my-app-container my-python-app:1.0

    • -d:后台运行容器。
    • -p 5000:5000:将容器的5000端口映射到主机的5000端口(主机端口:容器端口)。
    • –name:指定容器名称。

    在这里插入图片描述 在这里插入图片描述

    3.3.2 在VS Code中管理容器

  • 打开Docker面板,在Containers中可看到运行中的容器。
  • 右键容器可执行“Start”“Stop”“Restart”“Delete”等操作。
  • 选择“Attach Shell”可进入容器内部终端;选择“View Logs”可查看容器运行日志。
  • 在这里插入图片描述

    3.4 调试容器内的应用

    3.4.1 配置调试环境

  • 在VS Code中创建.vscode/launch.json文件,添加Docker调试配置:
  • {
    "version": "0.2.0", // 配置文件的版本,固定值
    "configurations": [ // 调试配置列表(可以有多个配置)
    {
    "name": "Docker: Python – Launch", // 配置名称(自己能认就行,比如“调试Docker里的Python”)
    "type": "docker", // 调试类型:告诉VS Code这是Docker环境的调试
    "request": "launch", // 调试方式:启动新的容器并开始调试(另一种是“attach”,附加到已运行的容器)
    "preLaunchTask": "docker-build", // 调试前自动执行的任务:这里是先构建镜像(确保代码最新)
    "python": { // Python相关的调试配置
    "pathMappings": [ // 路径映射:关键!让VS Code知道本地代码和容器内代码的对应关系
    {
    "localRoot": "${workspaceFolder}", // 本地代码路径(你电脑上的项目文件夹)
    "remoteRoot": "/app" // 容器内代码路径(Dockerfile里WORKDIR设置的/app)
    }
    ],
    "projectType": "general" // 项目类型:通用Python项目(不用改)
    }
    }
    ]
    }

    这个 launch.json 配置是用于 在 VS Code 中直接调试 Docker 容器内的 Python 代码。

    因为通过上文我们已经通过 docker build 和 docker run 让代码在容器里跑起来了,但如果个问题: 如果代码出了 bug,怎么像本地调试那样一步步看哪里错了?

    直接在容器里打印日志太麻烦,而 VS Code 的调试功能(断点、变量监视)又默认只能用在本地环境。

    这个 launch.json 就是让 VS Code 和 Docker 容器打通,让调试器能到容器内部,直接调试里面运行的代码。

  • 创建.vscode/tasks.json文件,定义构建任务:
  • {
    "version": "2.0.0", // 配置文件版本,固定值
    "tasks": [
    {
    "label": "docker-build", // 任务名称(必须和launch.json里的preLaunchTask一致)
    "type": "docker-build", // 任务类型:Docker构建(VS Code的Docker插件会识别)
    "dockerBuild": {
    "context": "${workspaceFolder}", // 构建上下文:当前项目文件夹(和手动构建时的“.”作用一样)
    "tag": "my-python-app:1.0" // 镜像标签(和手动构建的 -t 参数一样)
    }
    }
    ]
    }

    这个 tasks.json 文件是为了在 VS Code 里更方便地管理 Docker 构建任务,让你不用每次手动输入 docker build 命令,同时和调试流程(launch.json 里的 preLaunchTask)联动,

    你之前手动构建镜像的命令是:

    docker build -t my-python-app:1.0 .

    而 tasks.json 的作用是把这个命令固化成 VS Code 的一个任务,

    以后就可以用快捷键自动执行构建。

    3.4.2 启动调试

  • 可以在程序中设置断点(点击行号左侧)。
  • 按F5启动调试,或者在左侧选择运行和调试,VS Code会自动构建镜像、运行容器并附加调试器,程序执行到断点时会暂停,可查看变量、调用栈等信息。
  • 在这里插入图片描述

    在这里插入图片描述

    从日志看,镜像构建已经成功完成。

    构建过程利用了 Docker 的缓存机制(CACHED 的步骤),加速了构建流程(因为代码 / 依赖没变化,复用了之前的结果 )。

    终端提示是正常的 VS Code 任务执行收尾逻辑,按需按任意键关闭即可,不影响镜像使用。

    4 小结

    本文很基础,介绍了在VS Code中使用Docker的全流程。首先明确了Docker与VS Code集成的价值——解决环境一致性问题并提升开发效率;接着讲解了镜像、容器等核心概念,以及Docker和VS Code的安装配置;然后通过实例演示了Dockerfile编写、镜像构建、容器运行及调试的具体操作。

    掌握这些知识后,你可在VS Code中高效完成容器化开发,无论是单服务应用还是多组件协同项目(道理一样),都能通过Docker实现环境隔离与快速部署,显著提升开发体验和项目可维护性。

    赞(0)
    未经允许不得转载:171主机测评 » 【docker①】在VS Code中使用Docker容器
    分享到: 更多 (0)

    评论 抢沙发

    • 昵称 (必填)
    • 邮箱 (必填)
    • 网址