当前位置: 首页 > news >正文

Docker 容器调试技巧

在开发和运维过程中,调试 Docker 容器中的应用或服务是一个常见且重要的任务。由于容器是相互隔离的,容器内部的日志和错误信息可能不像传统的服务器那样直观,因此掌握 Docker 容器调试技巧对于快速定位和解决问题至关重要。

本文将介绍一些常用的 Docker 容器调试技巧,帮助你有效排查问题并提高容器应用的可靠性。


1. 查看容器的日志

Docker 提供了多种方式查看容器的输出日志,帮助你理解容器内部的运行状况。

1.1 使用 docker logs 查看容器日志

docker logs 命令可以查看容器的标准输出(stdout)和标准错误(stderr)日志。最常见的用法是查看容器启动时的日志输出。

docker logs <container_id>
  • -f:实时查看日志(类似 tail -f)。

    docker logs -f <container_id>
    
  • --tail:查看最后几行日志,避免日志太多时查看不便。

    docker logs --tail 100 <container_id>
    
  • --since:显示某个时间点之后的日志,例如:

    docker logs --since="2023-01-01T13:23:10" <container_id>
    

1.2 查看容器的内存、CPU 和网络使用情况

使用 docker stats 可以查看容器的实时性能指标,如 CPU 使用率、内存占用、网络和磁盘 I/O 等。

docker stats <container_id>

这将显示类似以下的信息:

CONTAINER ID   NAME               CPU %     MEM USAGE / LIMIT     MEM %     NET I/O           BLOCK I/O         PIDS
abc123456789   my-container       0.10%     23.34MiB / 2GiB       1.14%     1.42MB / 2.1MB    5.98MB / 0B       5

1.3 日志驱动和日志存储

Docker 支持多种 日志驱动,你可以通过修改容器的日志驱动来管理日志存储和输出。例如,使用 --log-driver=syslog 可以将日志输出到系统日志。

docker run --log-driver=syslog my-container

2. 进入容器内部调试

2.1 使用 docker exec 进入容器

docker exec 命令允许你进入正在运行的容器内部并执行命令。这对于调试和检查容器内的文件、进程等非常有用。

docker exec -it <container_id> bash
  • -it:交互模式,允许你与容器进行交互。
  • bash:进入容器的 bash shell。

如果容器内部没有 bash,可以尝试使用 sh 或其他可用的 shell。

2.2 检查容器内的进程

进入容器后,你可以使用命令检查容器内正在运行的进程。

ps aux

或者使用 top 命令查看容器的资源使用情况。

top

2.3 查看容器内的文件

进入容器后,可以通过 lscattail 等命令查看和分析容器内的文件和配置文件。

cat /etc/nginx/nginx.conf
tail -f /var/log/nginx/access.log

3. 容器内的网络调试

3.1 查看容器的网络配置

容器通常会分配一个独立的 IP 地址,你可以使用以下命令查看容器的网络设置:

docker inspect <container_id> | grep "IPAddress"

这将输出容器的 IP 地址,你可以在同一网络中的其他容器间使用该 IP 地址进行通信。

3.2 测试容器内的网络连接

你可以在容器内使用 pingcurl 等工具测试网络连接,确保容器能够访问外部网络或其他服务。

ping google.com
curl http://localhost:8080

3.3 容器间的网络通信

在 Docker 中,不同容器之间通常通过 Docker 网络 进行通信。如果你使用了 自定义网络,容器可以通过容器名进行通信,而不需要显式使用 IP 地址。

例如,假设你有一个 Nginx 容器和一个 Web 应用容器,如果它们在同一自定义网络中,Nginx 可以通过 Web 应用容器的名称来访问它。

docker network create my_network
docker run --name nginx-container --network my_network nginx
docker run --name web-app-container --network my_network my-web-app

4. 容器日志调试和输出重定向

4.1 使用 docker logs 输出调试信息

如果容器没有标准输出(如日志丢失或没有配置日志),你可以通过以下命令输出容器的日志,或通过容器执行时的 stdoutstderr 捕获日志。

docker logs <container_id> > output.log 2>&1
  • > output.log:将标准输出重定向到文件。
  • 2>&1:将标准错误输出也重定向到文件。

4.2 配置日志驱动

可以通过配置不同的日志驱动来改变 Docker 容器的日志行为。例如,你可以将日志输出到文件、syslog 或第三方日志聚合服务。

docker run --log-driver=syslog my-container

5. 容器的资源限制和性能调优

5.1 限制容器的资源

Docker 允许限制容器使用的 CPU 和内存资源。如果容器超出了这些限制,Docker 会自动限制其资源使用,防止容器占用过多资源影响系统的其他部分。

docker run --memory="512m" --cpus="1.0" my-container
  • --memory:限制容器的内存使用。
  • --cpus:限制容器使用的 CPU 数量。

5.2 容器性能监控

使用 docker stats 命令查看容器的性能指标,包括 CPU 使用率、内存占用、网络 I/O 等。

docker stats <container_id>

6. Docker 容器调试工具

6.1 Docker Desktop 提供的调试功能

如果你在 Docker Desktop 上运行容器,可以使用其 图形界面 来查看容器的日志、性能指标、进程等。这对于调试来说非常直观,适用于开发和测试环境。

6.2 使用 Docker Compose 管理多容器调试

如果你的应用使用 Docker Compose,可以使用以下命令查看多个容器的日志:

docker-compose logs

使用 docker-compose logs -f 可以实时查看容器日志。

6.3 使用 docker exec 启动交互式 shell 调试

docker exec 是容器调试的重要工具,可以帮助你进入容器内部运行诊断命令。如果遇到容器中的服务无法启动或崩溃,你可以进入容器并手动检查问题。

docker exec -it <container_id> bash

进入容器后,可以执行命令来检查日志、进程、网络等信息。


7. 总结

Docker 容器调试技巧帮助开发者快速识别和解决问题。常用的调试方法包括:

  • 查看日志:使用 docker logs 和日志驱动进行日志查看和管理。
  • 进入容器:使用 docker exec 进入容器内部进行手动调试和问题排查。
  • 网络调试:检查容器的网络配置,测试网络连接,确保容器间能够正常通信。
  • 资源限制:设置容器的资源限制,避免过度占用宿主机资源。
  • 性能监控:使用 docker stats 和其他监控工具进行容器的性能调优。

通过这些技巧,你可以更加高效地管理和排查 Docker 容器中的问题,提升开发和运维的效率! 🚀

相关文章:

Docker 容器调试技巧

在开发和运维过程中&#xff0c;调试 Docker 容器中的应用或服务是一个常见且重要的任务。由于容器是相互隔离的&#xff0c;容器内部的日志和错误信息可能不像传统的服务器那样直观&#xff0c;因此掌握 Docker 容器调试技巧对于快速定位和解决问题至关重要。 本文将介绍一些…...

TSMaster【第七篇:千机百变——面板设计艺术】

武侠场景导入&#xff1a;唐门暗器阁的启示 江湖传言&#xff0c;唐门暗器之所以独步天下&#xff0c;全凭其「千机匣」中七十二种机关变化。TSMaster面板设计恰似打造暗器机关——控件如同飞镖、机簧、毒针&#xff0c;组合方式不同则威力迥异。昔日某新势力车型因仪表盘刷新…...

ctfshow——robots后台泄露

题目提示&#xff1a;总有人把后台地址写入robots&#xff0c;帮黑阔大佬们引路 题目如上图所示 根据提示&#xff0c;我们可以在URL上查看是否存在robots文件 打开后发现其中的内容如上图所示&#xff0c;存在一个flagishere.txt文件&#xff0c;我们可以继续在URL上进行操作…...

普通人怎样用好Deepseek?

第一章&#xff1a;准备篇&#xff08;30分钟上手&#xff09; DeepSeek 是一款功能强大的数据处理和分析工具&#xff0c;广泛应用于数据挖掘、机器学习、商业智能等领域。 本文将通过图文结合的方式&#xff0c;详细介绍 DeepSeek 的安装、配置、基本使用、高级功能以及实用…...

负载均衡集群( LVS 相关原理与集群构建 )

目录 1、LVS 相关原理 1.1、LVS集群的体系结构以及特点 1.1.1 LVS简介 1.1.2 LVS体系结构 1.1.3 LVS相关术语 1.1.4 LVS工作模式 1.1.5 LVS调度算法 1.2 LVS-DR集群介绍 1.2.1 LVS-DR模式工作原理 1.2.2 LVS-DR模式应用特点 1.2.3 LVS-DR模式ARP抑制 1.3 LVS – NA…...

前端面试-JavaScript 数据类型检测全解

目录 一、基础检测方法 二、方法深度解析 1. typeof 运算符 2. instanceof 运算符 3. 终极检测方案 三、特殊场景检测方案 四、手写实现原理 1. 通用类型检测函数 2. 改进版数组检测&#xff08;兼容旧浏览器&#xff09; 五、常见面试陷阱 六、最佳实践指南 七、扩…...

百度百舸 DeepSeek 一体机发布,支持昆仑芯 P800 单机 8 卡满血版开箱即用

在私有云环境中成功部署 DeepSeek 满血版并实现性能调优&#xff0c;并不是一件容易的事情。选择合适的 GPU 配置、安装相应的环境、成功部署上线业务、加速推理任务加速、支撑多用户并发 …… 完成业务测试&#xff0c;成功融入生产业务中。 为了帮助企业快速实现 DeepSeek 服…...

微软CEO-纳德拉访谈-AGI计划

在与知名科技播客主播 Dwarkesh Patel 的深度访谈中,微软 CEO 萨提亚・纳德拉围绕 AI、量子计算、微软发展等多方面分享深刻见解,下面是针对访谈内容的介绍,其中还是有很多值得我们学习的地方。 1 AI 领域见解 影响力评估:纳德拉直言行业所标榜的 AGI 里程碑是 “无意义的基…...

Web自动化中Selenium下Chrome与Edge的Webdriver常用Options参数

目录 引言 说明 Add_argument() 添加方式 常用参数 Add_experimental_option() 添加方式 常用方法 任务结束后仍然保持浏览器打开 禁用“Chrome 正受到自动测试软件的控制”提示 设置下载路径 禁用弹窗拦截 禁用图片加载 禁用 JavaScript 注意 引言 …...

1.4 嵌入式系统的软件

嵌入式系统的开发流程中&#xff0c;硬件和固件设计完成后&#xff0c;嵌入式软件承担起实现功能、用户交互、系统集成和性能优化等任务&#xff1b;嵌入式系统软件分为设备驱动、操作系统和应用程序三个层面。 因此嵌入式系统软件开发工程师通常分为三类&#xff1a;嵌入式系统…...

深蓝学院自主泊车第3次作业-IPM

目录 1 题目介绍2 求解 1 题目介绍 已知鱼眼相机的参数&#xff0c; image_width&#xff0c;表示图像的宽度image_height&#xff0c;表示图像的高度 ξ \xi ξ&#xff0c;表示鱼眼相机参数 k 1 k_1 k1​、 k 2 k_2 k2​&#xff0c;表示径向相机参数 p 1 p_1 p1​、 p 2 p…...

Confluence 8.5.18 - windows 安装部署详解

本文我们所讲述的是Confluence - 8.5.18 -windows版本版本的详细安装破解步骤,与Confluence - 8.0.0之前的版本不同的是,部分文件名称发生了变化,以前的破解方式已不适用。 1.首先我们先准备安装所需要的文件 atlassian-confluence-8.5.18-x64.exemysql-connector-java-8.0…...

深入解析过滤器模式:数据筛选与处理的高效工具

过滤器模式&#xff1a;数据筛选与处理的高效工具 在软件开发的复杂领域中&#xff0c;数据的筛选与处理是常见的任务。过滤器模式作为一种实用的设计模式&#xff0c;为解决这类问题提供了有效的解决方案。它允许开发者根据不同的标准对一组对象进行过滤操作&#xff0c;从而…...

linux常用基础命令_最新版

常用命令 查看当前目录下个各个文件大小查看当前系统储存使用情况查看当前路径删除当前目录下所有包含".log"的文件linux开机启动jar更改自动配置文件后操作关闭自启动linux静默启动java服务查询端口被占用查看软件版本重启关机开机启动取别名清空当前行创建文件touc…...

曝光铁三角

一、曝光铁三角的关系解析 光圈&#xff08;Aperture&#xff09; 作用&#xff1a;控制光线进入相机的孔径大小&#xff0c;同时影响景深&#xff08;画面清晰范围&#xff09;。 数值规则&#xff1a;光圈值&#xff08;如F/1.8、F/8&#xff09;越小&#xff0c;孔径越大&am…...

reacct hook useState

useState useState 是一个 React Hook&#xff0c;允许函数组件在内部管理状态。 使用方法 let [str,setStr] useState(‘three’) useState接受的参数为初始值&#xff1b;返回一个数组 第一个元素&#xff1a;当前的状态值&#xff1b;第二个元素&#xff1a;一个更新该状…...

政安晨【零基础玩转各类开源AI项目】DeepSeek 多模态大模型Janus-Pro-7B,本地部署!支持图像识别和图像生成

政安晨的个人主页&#xff1a;政安晨 欢迎 &#x1f44d;点赞✍评论⭐收藏 希望政安晨的博客能够对您有所裨益&#xff0c;如有不足之处&#xff0c;欢迎在评论区提出指正&#xff01; 目录 下载项目 创建虚拟环境 安装项目依赖 安装 Gradio&#xff08;UI&#xff09; 运…...

计算机毕业设计SpringBoot+Vue.js学生读书笔记共享(源码+LW文档+PPT+讲解+开题报告)

温馨提示&#xff1a;文末有 CSDN 平台官方提供的学长联系方式的名片&#xff01; 温馨提示&#xff1a;文末有 CSDN 平台官方提供的学长联系方式的名片&#xff01; 温馨提示&#xff1a;文末有 CSDN 平台官方提供的学长联系方式的名片&#xff01; 作者简介&#xff1a;Java领…...

QEMU源码全解析 —— 内存虚拟化(17)

接前一篇文章:QEMU源码全解析 —— 内存虚拟化(16) 本文内容参考: 《趣谈Linux操作系统》 —— 刘超,极客时间 《...

Maven 构建中的安全性与合规性检查

在现代软件开发中&#xff0c;确保应用程序的安全性和合规性至关重要。随着开源软件和第三方依赖的广泛使用&#xff0c;构建过程中对依赖的安全性和合规性检查变得尤为重要。通过 Maven 构建工具&#xff0c;我们可以集成多种安全性和合规性检查机制&#xff0c;帮助开发者检测…...

Deepseek R1 和其他的大模型 共同辅助决策交通出行方案

比一比各家大模型 问题描述一、Deepseek R1通勤方式评估报告&#xff08;一&#xff09;评分模型说明&#xff08;二&#xff09;各选项评分明细&#xff08;三&#xff09;加权总分计算&#xff08;四&#xff09;结论 二、文心一言通勤方式评估&#xff08;一&#xff09;时间…...

HTTPS 通信流程

HTTPS 通信流程时序图&#xff1a; #mermaid-svg-HWoTbFvfih6aYUu6 {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-HWoTbFvfih6aYUu6 .error-icon{fill:#552222;}#mermaid-svg-HWoTbFvfih6aYUu6 .error-text{fill:#…...

C++——list模拟实现

目录 前言 一、list的结构 二、默认成员函数 构造函数 析构函数 clear 拷贝构造 赋值重载 swap 三、容量相关 empty size 四、数据访问 front/back 五、普通迭代器 begin/end 六、const迭代器 begin/end 七、插入数据 insert push_back push_front 八、…...

开发指南103-jpa的find**/get**全解

平台使用jpa来访问数据库。在dao层可以通过定义find**/get**函数&#xff0c;通过名字直接绑定数据库字段。find**和get**有一定区别&#xff1a; 1.get**方法查询不到数据抛出异常&#xff0c;find**方法查询不到数据则返回null。 2.get**是延迟加载&#xff0c;在真正访问返…...

初学者如何设置以及使用富文本编辑器[eclipse版]

手把手教你设置富文本编辑器 参考来源&#xff1a;UEditor Docs 初学者按我的步骤来就可以啦 一、设置ueditor编辑器 1.提取文件[文章最底部有链接提取方式] 2.解压文件并放到自己项目中&#xff0c;在WebContent目录下&#xff1a; 3. 修改jar包位置路径 到--> 注意&a…...

Flutter 启动优化

Dart VM在Flutter中的作用是什么&#xff1f;它负责执行Dart代码&#xff0c;无论是JIT还是AOT模式都需要它。在JIT模式下&#xff0c;VM随应用一起运行&#xff0c;而在AOT模式下&#xff0c;代码已经被编译成机器码&#xff0c;VM可能不需要运行时存在&#xff1f;不过实际上…...

Java Idea配置问题

在 cmd 里手动切换&#xff1a; set JAVA_HOMEC:\Program Files\Java\jdk1.8.0_192 set PATH%JAVA_HOME%\bin;%PATH%在Idea的终端查看: java -versionClass com.sun.tools.javac.tree.JCTree$JCImport does not have member field ‘com.sun.tools.javac.tre JDK 版本不匹配 …...

百度搜索,能否将DeepSeek变成“内功”?

最近&#xff0c;所有的云平台和主流APP都在努力接入DeepSeek。其中&#xff0c;搜索类APP与搜索引擎更是“战况激烈”。那么问题来了&#xff0c;接入DeepSeek已经变成了标准配置&#xff0c;到底应该如何做出差异化&#xff1f;接入DeepSeek这件事能不能实现11大于2的效果&am…...

【C++委托与事件】函数指针,回调机制,事件式编程与松耦合的设计模式(上)

前言 上一次发文章已经是在两个月前了hhh&#xff0c;期间也是忙忙碌碌做了不少事情也鸽了不少东西… 本文我们来讲讲博主最近在项目中频繁使用的&#xff0c;也就是广泛运用于C#或者Java的一个常用编程机制&#xff08;思路&#xff09;-----委托和事件。由于C在语言特性上没…...

【Java学习】抽象类与接口

面向对象系列四 一、抽象方法 二、抽象类 三、意义检查 1.抽象方法的意义 2.意义检查 体现 四、接口 1.级别层次 2.接口变量 3.意义 4.成员 成员变量&#xff1a; 成员方法&#xff1a; 一、抽象方法 没有方法体即没有任何实现的方法是抽象方法&#xff0c;只有在…...

体育电竞比分网开发流程

开发一个体育电竞比分网的流程可以分为以下几个主要步骤&#xff1a; 1. 需求分析 目标用户&#xff1a;确定网站的主要用户群体&#xff0c;如体育迷、电竞爱好者等。 功能需求&#xff1a;列出网站需要实现的功能&#xff0c;如实时比分更新、赛事日程、新闻资讯、用户评论…...

vue2和vue3的主要区别

Vue 2 和 Vue 3 之间有几个主要区别&#xff0c;涉及到性能、功能和架构上的改进。以下是一些核心的区别&#xff1a; Composition API&#xff08;组合式 API&#xff09;&#xff1a; Vue 2 使用的是选项式 API&#xff08;Options API&#xff09;&#xff0c;即通过 data, …...

粘贴到Word里的图片显示不全

粘贴到Word里的图片显示不全&#xff0c;可从Word设置、图片本身、软件与系统等方面着手解决&#xff0c;具体方法如下&#xff1a; Word软件设置 经实践发现&#xff0c;图片在word行距的行距出现问题&#xff0c;可以按照如下调整行距进行处理 修改段落行距&#xff1a; 选…...

直角三角堰计算公式

直角三角堰的计算公式通常用于确定流经直角三角形形状的堰的流量。河北瑾航科技遥测终端机 通过采集液位数据(模拟量、串口485/232)&#xff0c;计算得到瞬时流量&#xff0c;然后通过积分进行累计算出累积量&#xff1b;直角三角堰的流量计算公式为&#xff1a; 直角三角堰 计…...

细说Java 引用(强、软、弱、虚)和 GC 流程(一)

一、引用概览 1.1 引用简介 JDK1.2中引入了 Reference 抽象类及其子类&#xff0c;来满足不同场景的 JVM 垃圾回收工作&#xff1a; SoftReference 内存不足&#xff0c;GC发生时&#xff0c;引用的对象&#xff08;没有强引用时&#xff09;会被清理&#xff1b;高速缓存使用…...

C++,设计模式,【工厂方法模式】

文章目录 如何用汽车生产线理解工厂方法模式?一、传统生产方式的困境二、工厂方法模式解决方案三、模式应用场景四、模式优势分析五、现实应用启示✅C++,设计模式,【目录篇】 如何用汽车生产线理解工厂方法模式? 某个早晨,某车企CEO看着会议室里堆积如面的新车订单皱起眉…...

分布式之分布式ID

目录 需求 1. 全局唯一性 2. 高性能 3. 高可用性 4. 可扩展性 5. 有序性 6. 时间相关 7. 长度适中 8. 安全性 9. 分布式一致性 10. 易于集成 常见解决方案 选择依据 数据库号段模式 核心概念 工作流程 优点 缺点 实现示例 优化策略 适用场景 Snowflake雪…...

Innovus中快速获取timing path逻辑深度的golden脚本

在实际项目中我们经常会遇到一条timing path级数特别多&#xff0c;可能是一两页都翻不完。此时&#xff0c;我们大都需要手工去数这条path上到底有哪些是设计本身的逻辑&#xff0c;哪些是PR工具插入的buffer和inverter。 数字IC后端手把手培训教程 | Clock Gating相关clock …...

tortoiseGit的使用和上传拉取

tortoiseGit的使用和上传拉取 下载TortoiseGit 通过网盘分享的文件&#xff1a;tortoiseGit.zip 链接: https://pan.baidu.com/s/1EOT_UsM9_OysRqXa8gES4A?pwd1234 提取码: 1234 在电脑桌面新建文件夹并进入 右击鼠标 将网址复制上去 用户名和密码是在git注册的用户名和…...

简单工厂模式 (Simple Factory Pattern) 在Spring Boot 中的应用

简单工厂模式&#xff08;Simple Factory Pattern&#xff09;虽然不属于 GoF 23 种经典设计模式&#xff0c;但在实际开发中非常常用&#xff0c;尤其是在 Spring Boot 项目中。它提供了一种简单的方式来创建对象&#xff0c;将对象的创建逻辑集中到一个工厂类中。 一、简单工…...

前端排序算法完全指南:从理论到实践

<!DOCTYPE html> <html> <head><title>前端排序算法终极指南</title><style>.container { max-width: 1000px; margin: 0 auto; padding: 20px; }.demo-container { margin: 30px 0; border: 1px solid #eee; padding: 20px; }.bars-wrapp…...

【LeetCode Hot100 矩阵】矩阵置零、螺旋矩阵、旋转图像、搜索二维矩阵II

矩阵 1. 矩阵置零&#xff08;Set Matrix Zeroes&#xff09;解题思路步骤&#xff1a; 代码实现 2. 螺旋矩阵&#xff08;Spiral Matrix&#xff09;解题思路具体步骤&#xff1a; 代码实现 3. 旋转矩阵 90 度解决思路代码实现 5. 搜索二维矩阵中的目标值解决思路代码实现 1. …...

最新版IDEA下载安装教程

一、下载IDEA 点击前往官网下载 或者去网盘下载 点击前往百度网盘下载 点击前往夸克网盘下载 进去后点击IDEA 然后点击Download 选择自己电脑对应的系统 点击下载 等待下载即可 二、安装IDEA 下载好后双击应用程序 点击下一步 选择好安装目录后点击下一步 勾选这两项后点击…...

Embedding模型

检索的方式有那些 关键字搜索&#xff1a;通过用户输入的关键字来查找文本数据。 语义搜索&#xff1a;它的目标是理解用户查询的真实意图&#xff0c;不仅考虑关键词的匹配&#xff0c;还考虑词汇之间的语义 &#xff08;文字&#xff0c;语音&#xff0c;语调...&#xff0…...

WSL进阶使用指南

WSL2通过 Hyper-V 技术创建了一个轻量级的虚拟机&#xff08;VM&#xff09;&#xff0c;在这个虚拟机之上可以运行一个真正的 Linux 内核&#xff0c;这给希望同时使用 Windows 和 Linux 的开发人员提供了无缝高效的体验。本文会介绍一些使用WSL的知识&#xff0c;帮助你更好地…...

JavaScript函数-函数的参数

在JavaScript编程语言中&#xff0c;函数是组织代码和实现复杂逻辑的基本单元。而函数参数则是这些功能的重要组成部分&#xff0c;它们允许我们将数据传递给函数&#xff0c;从而使得函数更加通用和灵活。本文将深入探讨JavaScript函数参数的各种特性及其最佳实践。 参数基础…...

【C语言】第五期——函数

目录 0 前言 1 定义函数 2 调用函数 3 函数的实参和形参 4 函数声明 5 作用域 5.1 局部变量和全局变量 5.2 static关键字 5.2.1 修饰局部变量 5.2.2 修饰全局变量 5.2.3 修饰函数 6 函数的返回值 6.1 return语句 6.2 函数返回值的类型 7 函数的其他形式 7.1 函…...

线结构光三维重建

利用线结构光和单目进行三维重构&#xff08;测距&#xff09;_线结构光三维重建-CSDN博客...

Spring Boot 应用(官网文档解读)

Spring Boot 启动方式 SpringApplication.run(MyApplication.class, args); Spring Boot 故障分析器 在Spring Boot 项目启动发生错误的时候&#xff0c;我们通常可以看到上面的内容&#xff0c;即 APPLICATION FAILED TO START&#xff0c;以及后面的错误描述。这个功能是通过…...

基于ffmpeg+openGL ES实现的视频编辑工具-添加转场(九)

在视频编辑的广阔领域中,转场效果无疑是提升视频流畅性与观赏性的关键要素。巧妙运用转场,能够让不同视频片段之间的衔接更为自然,同时赋予视频独特的创意魅力。本文将深入探讨如何借助 ffmpeg 和 openGL ES 技术,在视频编辑工具中实现丰富多样的转场效果。 一、转场技术原…...