0

0

VSCode极简配置Docker:容器管理、中文终端、镜像调试

雪夜

雪夜

发布时间:2025-08-12 19:28:01

|

836人浏览过

|

来源于php中文网

原创

  1. 安装docker、remote - containers及语言包等必要插件;2. 编写dockerfile定义开发环境;3. 配置.devcontainer/devcontainer.json指定构建参数与扩展;4. 使用“reopen in container”命令自动构建并连接容器;5. 通过postcreatecommand解决中文乱码;6. 配置launch.json实现容器内代码调试;7. 优化镜像大小、使用国内源、预构建镜像以解决连接慢问题;8. 利用vscode docker插件管理容器状态、日志、终端与镜像;9. 通过remoteuser、权限调整或volume挂载避免权限问题,从而实现高效便捷的容器化开发。

VSCode极简配置Docker:容器管理、中文终端、镜像调试

VSCode极简配置Docker,核心在于打通开发环境与容器,实现高效调试和管理。简化配置流程,让开发者专注于代码,而非繁琐的环境搭建。

解决方案

  1. 安装必备插件:

    • Docker: 这个不用多说,官方出品,支持 Docker 命令、镜像管理、容器操作等。
    • Remote - Containers: 核心插件,让 VSCode 直接连接到 Docker 容器内部进行开发。
    • Chinese (Simplified) Language Pack for VS Code: 如果你需要中文界面,安装它。
    • (Optional) Python/Java/Go 等语言支持插件: 根据你的项目语言选择安装,提供语法高亮、代码补全等功能。
  2. 编写

    Dockerfile

    FROM ubuntu:latest
    
    # 设置工作目录
    WORKDIR /app
    
    # 安装必要的依赖 (以 Python 为例)
    RUN apt-get update && apt-get install -y python3 python3-pip
    
    # 复制项目文件到容器
    COPY . .
    
    # 安装 Python 依赖
    RUN pip3 install -r requirements.txt
    
    # 暴露端口 (如果需要)
    EXPOSE 8000
    
    # 启动命令
    CMD ["python3", "app.py"]

    这个

    Dockerfile
    只是一个示例,你需要根据自己的项目进行修改。注意:
    COPY . .
    会将当前目录下的所有文件复制到容器中,如果你的项目很大,可以考虑使用
    .dockerignore
    文件排除一些不需要的文件。

  3. 配置

    .devcontainer/devcontainer.json

    在项目根目录下创建

    .devcontainer
    文件夹,并在其中创建一个
    devcontainer.json
    文件。这个文件定义了 VSCode 如何连接到 Docker 容器。

    {
        "name": "My Project",
        "build": {
            "dockerfile": "Dockerfile"
        },
        "settings": {
            "terminal.integrated.shell.linux": "/bin/bash" // 设置默认终端为 bash
        },
        "extensions": [
            "ms-python.python", // Python 扩展
            "ms-azuretools.vscode-docker" // Docker 扩展
        ],
        "forwardPorts": [8000] // 端口转发
    }

    build.dockerfile
    指定了
    Dockerfile
    的路径。
    settings
    可以设置 VSCode 的一些配置,比如终端。
    extensions
    指定了需要安装的 VSCode 扩展。
    forwardPorts
    指定了需要转发的端口。

  4. 使用 Remote-Containers 连接到容器:

    打开 VSCode,按下

    Ctrl+Shift+P
    (Windows/Linux) 或
    Cmd+Shift+P
    (macOS),输入 "Remote-Containers: Reopen in Container" 并选择它。VSCode 会自动构建 Docker 镜像,启动容器,并连接到容器内部。

  5. 中文终端问题:

    元典智库
    元典智库

    元典智库:智能开放的法律搜索引擎

    下载

    有时候在容器内部的终端可能会出现中文乱码的问题。可以在

    devcontainer.json
    中添加如下配置:

    "remoteUser": "vscode", // 如果不是 vscode 用户,改成你的用户名
    "postCreateCommand": "sudo apt-get update && sudo apt-get install -y locales && sudo locale-gen zh_CN.UTF-8 && sudo update-locale LC_ALL=zh_CN.UTF-8 LANG=zh_CN.UTF-8 && echo 'export LANG=zh_CN.UTF-8' >> ~/.bashrc && echo 'export LANGUAGE=zh_CN.UTF-8' >> ~/.bashrc"

    这段命令会在容器创建后自动安装中文语言包,并设置环境变量。注意:

    remoteUser
    需要改成你的用户名。

  6. 镜像调试:

    在 VSCode 中,你可以直接调试运行在 Docker 容器中的代码。以 Python 为例,你需要安装 Python 扩展,并在

    .vscode/launch.json
    文件中配置调试器。

    {
        "version": "0.2.0",
        "configurations": [
            {
                "name": "Python: Remote Attach",
                "type": "python",
                "request": "attach",
                "connect": {
                    "host": "localhost",
                    "port": 5678 // 调试端口
                },
                "pathMappings": [
                    {
                        "localRoot": "${workspaceFolder}",
                        "remoteRoot": "/app" // 容器中的代码路径
                    }
                ]
            }
        ]
    }

    然后,在你的 Python 代码中添加如下代码:

    import debugpy
    debugpy.listen(("0.0.0.0", 5678))
    debugpy.wait_for_client()  # 阻塞程序,直到调试器连接

    运行你的 Python 代码,然后在 VSCode 中启动调试器。VSCode 会自动连接到容器中的调试器,你就可以像调试本地代码一样调试容器中的代码了。需要注意的是,容器中的调试端口需要通过

    forwardPorts
    转发到本地。

如何解决 VSCode Remote-Containers 连接慢的问题?

连接慢通常是因为需要下载 Docker 镜像,或者网络不稳定。

  • 优化 Dockerfile: 尽量使用多阶段构建,减少镜像大小。
  • 使用国内镜像源: 配置 Docker 使用国内镜像源,加快镜像下载速度。
  • 检查网络连接: 确保你的网络连接稳定。
  • 缓存机制: Docker 有缓存机制,如果你的
    Dockerfile
    没有修改,Docker 会直接使用缓存,加快构建速度。
  • 预构建镜像: 可以提前构建好镜像,然后直接使用
    Remote-Containers: Attach to Running Container...
    连接到容器。

如何在 VSCode 中管理 Docker 容器?

VSCode 的 Docker 插件提供了强大的容器管理功能。

  • 查看容器状态: 在 VSCode 的 Docker 视图中,你可以看到所有容器的状态,包括运行状态、端口映射、日志等。
  • 启动/停止/重启容器: 你可以直接在 VSCode 中启动、停止、重启容器。
  • 进入容器终端: 你可以直接在 VSCode 中进入容器的终端,执行命令。
  • 查看容器日志: 你可以直接在 VSCode 中查看容器的日志,方便调试。
  • 镜像管理: 你可以直接在 VSCode 中构建、推送、拉取 Docker 镜像。

如何避免 VSCode Remote-Containers 权限问题?

权限问题通常是因为容器内部的用户权限和宿主机的用户权限不一致。

  • 使用
    remoteUser
    配置:
    devcontainer.json
    中配置
    remoteUser
    ,指定连接到容器的用户。
  • 修改容器内部用户权限:
    Dockerfile
    中修改容器内部用户的权限,使其与宿主机用户权限一致。
  • 使用 Docker Volumes: 使用 Docker Volumes 将宿主机目录挂载到容器内部,可以避免权限问题。
  • 注意文件所有者: 确保容器内部的用户对需要操作的文件具有读写权限。

这些方法可以帮助你更轻松地在 VSCode 中配置和使用 Docker,提高开发效率。

热门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的详细内容,可以访问本专题下面的文章。

313

2023.10.13

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

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

77

2025.09.10

li是什么元素
li是什么元素

li是HTML标记语言中的一个元素,用于创建列表。li代表列表项,它是ul或ol的子元素,li标签的作用是定义列表中的每个项目。本专题为大家li元素相关的各种文章、以及下载和课程。

419

2023.08.03

windows查看端口占用情况
windows查看端口占用情况

Windows端口可以认为是计算机与外界通讯交流的出入口。逻辑意义上的端口一般是指TCP/IP协议中的端口,端口号的范围从0到65535,比如用于浏览网页服务的80端口,用于FTP服务的21端口等等。怎么查看windows端口占用情况呢?php中文网给大家带来了相关的教程以及文章,欢迎大家前来阅读学习。

811

2023.07.26

查看端口占用情况windows
查看端口占用情况windows

端口占用是指与端口关联的软件占用端口而使得其他应用程序无法使用这些端口,端口占用问题是计算机系统编程领域的一个常见问题,端口占用的根本原因可能是操作系统的一些错误,服务器也可能会出现端口占用问题。php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

1129

2023.07.27

windows照片无法显示
windows照片无法显示

当我们尝试打开一张图片时,可能会出现一个错误提示,提示说"Windows照片查看器无法显示此图片,因为计算机上的可用内存不足",本专题为大家提供windows照片无法显示相关的文章,帮助大家解决该问题。

804

2023.08.01

2026赚钱平台入口大全
2026赚钱平台入口大全

2026年最新赚钱平台入口汇总,涵盖任务众包、内容创作、电商运营、技能变现等多类正规渠道,助你轻松开启副业增收之路。阅读专题下面的文章了解更多详细内容。

54

2026.01.31

热门下载

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

精品课程

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

共28课时 | 3.7万人学习

Kotlin 教程
Kotlin 教程

共23课时 | 3.1万人学习

SQL 教程
SQL 教程

共61课时 | 3.6万人学习

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

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