中高级运维工程师运维面试题(十一)之 Docker
目录
- 往期回顾
- 前言
- 基础知识
- 1. 什么是 Docker?
- 2. Docker 的核心组件有哪些?
- 3. Docker 镜像和容器有什么区别?
- 4. 什么是 Dockerfile?
- 高级知识
- 5. 什么是多阶段构建?如何使用?
- 6. Docker 网络有哪些模式?
- 7. 如何优化 Docker 容器性能?
- 8. Docker 镜像如何减小体积?
- 9. Docker 的存储驱动有哪些?如何选择?
- 10. Docker 如何实现资源隔离?
- 11. 如何在生产环境中安全运行 Docker 容器?
- 12. Docker Compose 的作用是什么?
- 13. Docker 的日志系统有哪些配置?
- 14. 如何调试 Docker 容器问题?
- 15. Docker 的卷(Volume)与绑定挂载(Bind Mount)有什么区别?
- 结语
往期回顾
中高级运维工程师运维面试题(一)之JVM
中高级运维工程师运维面试题(二)之NGINX
中高级运维工程师运维面试题(三)之HAProxy
中高级运维工程师运维面试题(四)之 LVS
中高级运维工程师运维面试题(五)之 MySQL
中高级运维工程师运维面试题(六)之 Redis
中高级运维工程师运维面试题(七)之 Kafka
中高级运维工程师运维面试题(八)之 Zookeeper
中高级运维工程师运维面试题(九)之 Apache Pulsar
中高级运维工程师运维面试题(十)之 iptables
前言
Docker 是目前广泛使用的容器化技术,在 DevOps、微服务架构和云原生应用中扮演着至关重要的角色。作为中高级运维工程师,掌握 Docker 的基础原理、实际应用、性能优化和故障排查能力是面试和工作中的核心竞争力。本文将以问题与答案的形式,深入浅出地阐述 Docker 相关知识,帮助你全面掌握这项技能。
基础知识
1. 什么是 Docker?
问题:简述 Docker 的核心功能和作用。
答案:
Docker 是一个开源的容器化平台,用于自动化应用程序的部署、隔离和运行,具有以下特点:
- 轻量化:通过共享主机内核实现轻量化运行。
- 可移植性:跨平台运行,支持从开发到生产的全流程一致性。
- 高效性:资源利用率高,相比虚拟机更加轻便。
Docker 主要用于:
- 应用程序的打包和交付。
- 快速构建测试环境。
- 支持微服务架构。
- 提供跨平台的持续交付支持。
2. Docker 的核心组件有哪些?
问题:Docker 的核心组件是什么?它们各自的作用是什么?
答案:
- Docker Client:用户与 Docker 的交互接口,主要通过命令行工具实现。
- Docker Daemon:后台运行的服务,负责构建、运行和管理容器。
- Docker Image:容器的只读模板,包含运行容器所需的所有依赖。
- Docker Container:基于镜像创建的运行时实例,是一个独立的执行环境。
- Docker Registry:用于存储和分发 Docker 镜像的仓库,例如 Docker Hub 和私有 Registry。
3. Docker 镜像和容器有什么区别?
问题:解释 Docker 镜像和容器的区别。
答案:
-
Docker 镜像:
- 是一个静态的文件系统模板。
- 包含运行容器所需的操作系统、应用程序和依赖。
- 是容器的源文件,可以通过
docker build
构建。
-
Docker 容器:
- 是镜像的运行时实例。
- 是一个动态的、隔离的轻量级环境。
- 可以通过
docker run
命令从镜像启动。
4. 什么是 Dockerfile?
问题:什么是 Dockerfile?它的作用是什么?
答案:
Dockerfile 是用于定义 Docker 镜像的脚本文件,包含了一系列指令。作用包括:
-
镜像构建:
- 指定镜像基础层,例如
FROM ubuntu:20.04
。 - 添加依赖、配置和启动命令。
- 指定镜像基础层,例如
-
版本管理:
- 通过版本控制系统管理 Dockerfile,便于复现镜像。
-
自动化部署:
- 配合 CI/CD 工具实现自动化构建和部署。
示例 Dockerfile:
# 基础镜像
FROM python:3.9-slim# 设置工作目录
WORKDIR /app# 复制项目文件
COPY . .# 安装依赖
RUN pip install -r requirements.txt# 启动命令
CMD ["python", "app.py"]
高级知识
5. 什么是多阶段构建?如何使用?
问题:解释多阶段构建的作用并提供一个示例。
答案:
多阶段构建是 Docker 提供的一种优化技术,通过多个阶段构建镜像,最终只保留所需的部分,从而减小镜像体积。
示例:
# 第一阶段:构建应用程序
FROM golang:1.17 AS builder
WORKDIR /app
COPY . .
RUN go build -o main .# 第二阶段:生成轻量镜像
FROM alpine:latest
WORKDIR /app
COPY --from=builder /app/main .
CMD ["./main"]
优势:
- 减少最终镜像体积。
- 提高构建效率。
- 避免将敏感数据(如构建工具)带入生产环境。
6. Docker 网络有哪些模式?
问题:Docker 提供了哪些网络模式?它们的作用是什么?
答案:
Docker 提供以下网络模式:
-
bridge(默认网络):
- 容器通过桥接网络互联。
- 提供网络隔离和 IP 地址分配。
-
host:
- 容器共享主机网络栈。
- 性能高,但隔离性差。
-
none:
- 容器没有网络连接,仅使用本地回环。
-
overlay:
- 跨主机的分布式网络,用于 Docker Swarm 或 Kubernetes 集群。
-
macvlan:
- 为容器分配物理网络中的 MAC 地址。
-
custom:
- 用户自定义网络,适合特定需求。
7. 如何优化 Docker 容器性能?
问题:列举一些优化 Docker 容器性能的常用方法。
答案:
-
优化镜像:
- 使用轻量级基础镜像,如
alpine
。 - 多阶段构建减少无用文件。
- 使用轻量级基础镜像,如
-
资源限制:
- 使用
--memory
和--cpus
限制容器资源。
- 使用
-
日志管理:
- 配置日志驱动避免占用过多磁盘空间。
-
网络优化:
- 使用自定义网络提高容器间通信效率。
-
存储优化:
- 使用卷(Volume)代替绑定挂载,提高 IO 性能。
8. Docker 镜像如何减小体积?
问题:请列举一些减小 Docker 镜像体积的方法。
答案:
-
选择轻量级基础镜像:
- 使用
alpine
或其他精简版镜像作为基础镜像。
- 使用
-
删除无用文件:
- 清理构建时生成的临时文件。
-
合并指令:
- 将多条
RUN
指令合并为一条,减少镜像层数。
- 将多条
-
使用多阶段构建:
- 构建应用后仅复制必要的文件到最终镜像中。
-
使用
.dockerignore
文件:- 避免将无关文件打包进镜像。
9. Docker 的存储驱动有哪些?如何选择?
问题:Docker 提供了哪些存储驱动?不同场景下该如何选择?
答案:
Docker 常用的存储驱动有:
-
overlay2(推荐):
- 默认存储驱动,性能高,支持多层镜像。
- 适合大多数场景。
-
aufs:
- 早期的分层文件系统,兼容性好。
- 不推荐使用,已逐步被淘汰。
-
btrfs:
- 提供快照和压缩功能。
- 适合需要高级存储功能的场景。
-
zfs:
- 高度稳定,支持快照和复制。
- 适用于需要高级数据保护的场景。
-
devicemapper:
- 使用块设备分层存储。
- 适合对块存储有特殊需求的场景。
选择建议:
- 优先选择
overlay2
。 - 根据操作系统和具体需求选择其他驱动。
10. Docker 如何实现资源隔离?
问题:Docker 是如何实现 CPU、内存等资源隔离的?
答案:
Docker 通过以下机制实现资源隔离:
-
Namespace:
- 提供进程、网络、文件系统的隔离。
- 每个容器运行在独立的 Namespace 中。
-
Cgroups:
- 控制容器的 CPU、内存、IO 等资源使用。
- 配置参数:
--memory
:限制容器内存。--cpus
:限制 CPU 使用。--blkio-weight
:限制 IO 权重。
-
文件系统隔离:
- 每个容器使用独立的文件系统,基于镜像层构建。
通过这些机制,Docker 可以确保容器在共享主机资源的同时保持独立性和安全性。
11. 如何在生产环境中安全运行 Docker 容器?
问题:在生产环境中,运行 Docker 容器时需要注意哪些安全问题?
答案:
-
最小权限原则:
- 使用非
root
用户运行容器。 - 通过
USER
指令在 Dockerfile 中指定用户。
- 使用非
-
限制资源:
- 使用
--memory
和--cpus
限制容器资源,防止资源滥用。
- 使用
-
镜像安全性:
- 仅从可信源拉取镜像。
- 定期扫描镜像的安全漏洞。
-
网络安全:
- 禁止容器间不必要的通信。
- 使用自定义网络和防火墙规则。
-
数据安全:
- 将敏感信息存储在安全存储中(如 Docker Secrets)。
- 避免在 Dockerfile 中暴露敏感信息。
-
定期更新:
- 定期更新 Docker 版本和镜像,修补已知漏洞。
12. Docker Compose 的作用是什么?
问题:什么是 Docker Compose?它在实际工作中有哪些用途?
答案:
Docker Compose 是一个用于定义和管理多容器应用的工具。其作用包括:
-
简化多容器管理:
- 使用
docker-compose.yml
文件定义多个容器的服务、网络和卷。
- 使用
-
一键部署:
- 通过
docker-compose up
命令快速启动整个应用。
- 通过
-
环境隔离:
- 支持不同环境(开发、测试、生产)的配置。
-
服务依赖管理:
- 通过
depends_on
定义服务间的依赖关系。
- 通过
实际用途:
- 构建微服务架构。
- 测试和开发复杂应用。
- 快速部署应用到测试环境。
13. Docker 的日志系统有哪些配置?
问题:Docker 的日志系统如何配置?有哪些常用的日志驱动?
答案:
Docker 提供多种日志驱动,常见的包括:
-
json-file(默认):
- 将日志存储为 JSON 文件。
- 配置参数:
max-size
:单个日志文件的大小。max-file
:保留的文件数量。
-
syslog:
- 将日志发送到 syslog 服务。
-
journald:
- 使用 systemd 的日志管理。
-
fluentd:
- 集成 Fluentd,用于集中式日志管理。
-
gelf:
- 支持 Graylog 日志管理。
-
none:
- 禁用日志记录。
配置示例:
logging:driver: "json-file"options:max-size: "10m"max-file: "3"
14. 如何调试 Docker 容器问题?
问题:在容器运行过程中遇到问题时,如何进行调试?
答案:
-
查看容器日志:
- 使用
docker logs <container_id>
查看容器日志。 - 配置
--tail
和--follow
参数实时查看日志。
- 使用
-
进入容器内部:
- 使用
docker exec -it <container_id> /bin/bash
进入容器内部。
- 使用
-
检查容器状态:
- 使用
docker inspect <container_id>
查看详细信息。 - 检查容器的网络、卷和配置。
- 使用
-
网络调试:
- 使用
docker network inspect
查看网络配置。 - 测试容器间连通性。
- 使用
-
文件系统检查:
- 使用
docker cp
命令拷贝文件到本地分析。
- 使用
-
监控资源使用:
- 使用
docker stats
监控容器的 CPU、内存、IO 等资源。
- 使用
15. Docker 的卷(Volume)与绑定挂载(Bind Mount)有什么区别?
问题:请比较 Docker 的卷和绑定挂载的差异及适用场景。
答案:
-
卷(Volume):
- 管理由 Docker 创建和维护的数据。
- 存储位置在 Docker 的默认目录中,如
/var/lib/docker/volumes
。 - 容器间共享数据的最佳选择。
- 数据独立于容器生命周期。
-
绑定挂载(Bind Mount):
- 将主机目录直接挂载到容器中。
- 可选择任意主机目录,灵活性高。
- 适合本地开发环境下使用。
选择建议:
- 使用卷进行生产环境的数据存储。
- 在开发环境中使用绑定挂载方便调试。
结语
通过深入了解 Docker 的架构、命令、配置及常见问题的解决方案,我们可以更高效地使用 Docker 应对复杂的运维场景。本文涵盖了基础、中级和高级知识,希望能为面试或日常工作提供有价值的参考。
如果需要进一步深入某些专题,比如 Docker Swarm 或 Kubernetes 集成,请继续关注相关学习内容!
相关文章:
中高级运维工程师运维面试题(十一)之 Docker
目录 往期回顾前言基础知识1. 什么是 Docker?2. Docker 的核心组件有哪些?3. Docker 镜像和容器有什么区别?4. 什么是 Dockerfile? 高级知识5. 什么是多阶段构建?如何使用?6. Docker 网络有哪些模式&#x…...
Kafka如何实现顺序消费?
Kafka的消息是存储在指定的topic中的某个partition中的。并且一个topic是可以有多个partition的。同一个partition中的消息是有序的,但是跨partition,或者跨topic的消息就是无序的了。 为什么同一个partition的消息是有序的? 因为当生产者向某个parti…...
通过 ulimit 和 sysctl 调整Linux系统性能
目录 一:资源限制管理工具:ulimit1、ulimit 作用介绍2、ulimit 常用选项3、ulimit 配置文件 二:内核参数调整工具:sysctl1、sysctl 作用介绍2、sysctl 常用选项3、sysctl 配置文件 一:资源限制管理工具:uli…...
pandas基础使用
pandas基础使用 基本介绍 类似于字典形式的numpy,可以给它的不同行和不同列进行重命名。 import numpy as np import pandas as pd # 创建一个序列 s pd.Series([1,4,True,np.nan,55.0])创建date format日期矩阵 import numpy as np import pandas as pd dates…...
2024.1.5总结
今日不开心:这周本来想花点时间学习的,没想到全都花在刷视频,外出消费去了。 今日思考: 1.找对象这件事确实不能强求,顺其自然吧,单身和不单身,其实,各有各的利弊。在一次坐地铁的过程中,我一…...
解释一下:运放的输入偏置电流
输入偏置电流 首先看基础部分:这就是同相比例放大器 按照理论计算,输入VIN=0时,输出VOUT应为0,对吧 仿真与理论差距较大,有200多毫伏的偏差,这就是输入偏置电流IBIAS引起的,接着看它的定义 同向和反向输入电流的平均值,也就是Ib1、Ib2求平均,即(Ib1+Ib2)/2 按照下面…...
Federation机制的实现
1.关闭Hadoop的HDFS和YARN,依次执行“stop-yarn.sh”和“stop-dfs.sh”命令关闭Hadoop的YARN和HDFS。 2.删除3台虚拟机上的临时文件: 3.修改hdfs-site.xml配置文件,进入虚拟机liumengting1的/export/servers/hadoop-3.3.4/etc/hadoop目录&…...
120.Jenkins里的Pipeline Script
目录 1. **Declarative Pipeline** 主要部分 示例 2. **Scripted Pipeline** 主要部分 示例 3. **常用指令和功能** 环境变量 工具管理 文件操作 构建触发器 并行执行 异常处理 用户交互 4.**两种类型的特点** 1. **声明式 Pipeline (Declarative Pipeline)** 中…...
SpringBoot3-整合WebSocket指南
更多SpringBoot3内容请关注我的专栏:《SpringBoot3》 期待您的点赞👍收藏⭐评论✍ SpringBoot3-整合WebSocket指南 1. 什么是WebSocket?2. 环境准备2.1 项目依赖 3. WebSocket配置3.1 WebSocket配置类3.2 自定义WebSocket处理器 4. 控制器5. 前端实现5.…...
【npm依赖包介绍】借助rimraf依赖包,在用npm run build构建项目时,清空dist目录,避免新旧混合
文章目录 背景如何使用附上rimraf的介绍和说明主要作用使用场景安装使用示例异步删除同步删除 参考资料 背景 在npm run build时,一般都会清空项目中已有的dist目录再构建,避免新旧混合。 如何使用 可以简单使用rimraf这个npm依赖包。 目前rimraf的最…...
python学opencv|读取图像(二十四)使用cv2.putText()绘制文字进阶-倾斜文字
【1】引言 前述学习进程中,我们已经掌握了pythonopencv绘制文字的基本技能,相关链接为: python学opencv|读取图像(二十三)使用cv2.putText()绘制文字-CSDN博客 在这里,我们使用不同的字体、线条颜色和线…...
【简博士统计学习方法】第1章:3. 统计学习方法的三要素
3. 统计学习方法的三要素 3.1 监督学习的三要素 3.1.1 模型 假设空间(Hypothesis Space):所有可能的条件概率分布或决策函数,用 F \mathcal{F} F表示。 若定义为决策函数的集合: F { f ∣ Y f ( X ) } \mathcal{F…...
“AI智慧语言训练系统:让语言学习变得更简单有趣
大家好,我是你们的老朋友,一个热衷于探讨科技与教育结合的产品经理。今天,我想和大家聊聊一个让语言学习变得不再头疼的话题——AI智慧语言训练系统。这个系统可是我们语言学习者的福音,让我们一起来揭开它的神秘面纱吧࿰…...
机器学习笔记 - 单幅图像深度估计的最新技术
1、深度估计简述 单眼深度估计是一项计算机视觉任务,AI 模型从单个图像中预测场景的深度信息。模型估计场景中对象从一个照相机视点的距离。单目深度估计已广泛用于自动驾驶、机器人等领域。深度估计被认为是最困难的计算机视觉任务之一,因为它要求模型理解对象及其深度信息之…...
洛谷:P1540 [NOIP2010 提高组] 机器翻译
[NOIP2010 提高组] 机器翻译 题目背景 NOIP2010 提高组 T1 题目描述 小晨的电脑上安装了一个机器翻译软件,他经常用这个软件来翻译英语文章。 这个翻译软件的原理很简单,它只是从头到尾,依次将每个英文单词用对应的中文含义来替换。对于…...
2025第2周 | JavaScript中的函数的参数默认值和剩余参数
目录 1. 函数的默认值1.1 ES5的时候默认值写法1.2 es6的默认值1.3 babel转换之后1.4 有默认值的参数建议放到最后1.5 有默认值的函数length属性 2. 参数为对象时默认值及解构2.1 默认值和解构一起使用2.2 默认值为一个空对象 3. 剩余参数3.1 剩余参数必须放到最后3.2 剩余参数和…...
Unity学习之UGUI(三)
十二、Slider 1、作用 Slider是滑动条组件,是UGUI中用于处理滑动条相关交互的关键组件 创建Slider默认包括4个对象 父对象:Slider组件依附的对象 子对象:背景图,进度图,滑动块三组对象 2、主要参数 3、代码控制 voi…...
分享3个国内使用正版GPT的网站【亲测有效!2025最新】
1. molica 传送入口:https://ai-to.cn/url/?umolica 2. 多帮AI 传送入口:https://aigc.openaicloud.cn?inVitecodeMYAAGGKXVK 3. 厉害猫 传送入口:https://ai-to.cn/url/?ulihaimao...
ffmpeg-avio实战:打开本地文件或者网络直播流dome
使用ffmpeg打开打开本地文件或者网络直播流的一个小dome。流程产靠ffmpeg4.x系列的解码流程-CSDN博客 #include <libavcodec/avcodec.h> #include <libavformat/avformat.h> #include <libavformat/avio.h> #include <libavutil/file.h> #include &l…...
三维管线管网自动化建模工具MagicPipe3D V3.6.0
经纬管网建模系统MagicPipe3D,本地离线参数化构建地下管网三维模型(包括管道、接头、附属设施等),输出标准3DTiles、Obj模型等格式,支持Cesium、Unreal、Unity、Osg等引擎加载进行三维可视化、语义查询、专题分析。欢迎…...
设计基于检索增强生成的个性化语言模型(RAG-based LLM)
设计基于检索增强生成的个性化语言模型(RAG-based LLM) 引言 在当今快速发展的自然语言处理技术中,生成式预训练模型(LLM)对个性化和可靠结果的需求不断增加。为了满足这种需求,基于检索增强生成…...
Oracle Dataguard(主库为单节点)配置详解(5):使用 rman 复制技术(DUPLICATE)同步主库到备库
Oracle Dataguard(主库为单节点)配置详解(5):使用 rman 复制技术(DUPLICATE)同步主库到备库 目录 Oracle Dataguard(主库为单节点)配置详解(5)&am…...
119.使用AI Agent解决问题:Jenkins build Pipeline时,提示npm ERR! errno FETCH_ERROR
目录 1.Jenkins Build时的错误 2.百度文心快码AI智能体帮我解决 提问1:jenkins中如何配置npm的源 提问2:jenkins pipeline 类型为pipeline script from SCM时,如何配置npm源 3.最终解决方法-Jenkinsfile的修改 4.感触 1.Jenkins Build时…...
回归预测 | MATLAB实ELM-Adaboost多输入单输出回归预测
回归预测 | MATLAB实ELM-Adaboost多输入单输出回归预测 目录 回归预测 | MATLAB实ELM-Adaboost多输入单输出回归预测预测效果基本介绍程序设计参考资料 预测效果 基本介绍 一、极限学习机(ELM) 极限学习机是一种单层前馈神经网络,具有训练速…...
服务器漏洞修复解决方案
漏洞1、远程桌面授权服务启用检测【原理扫描】 Windows Remote Desktop Licensing Service is running: Get Server version: 0x60000604 1、解决方案:建议禁用相关服务避免目标被利用 方法一:使用服务管理器 打开“运行”对话框(WinR&am…...
Couldn‘t resolve host name for http://mirrorlist.centos.org
【问题】 在CentOS8执行sudo yum update -y 软件包更新的时候报错 Errors during downloading metadata for repository appstream:- Curl error (6): Couldnt resolve host name for http://mirrorlist.centos.org/?release8-stream&archx86_64&repoAppStream&…...
Vue2:el-table中的文字根据内容改变颜色
想要实现的效果如图,【级别】和【P】列的颜色根据文字内容变化 1、正常创建表格 <template><el-table:data="tableData"style="width: 100%"><el-table-column prop="id" label="ID"/> <el-table-column …...
C++静态变量的使用方法?C++静态变量占用内存情况?拷贝构造函数会拷贝哪些内容?const使用注意
1.静态变量的使用 函数中使用:静态变量初次声明并定义作为初始值,后续再次运行函数,基于上次的结果累加类中:类内声明,类外实现(如声明为const,特殊情况,可以类内直接声明时定义&am…...
Linux初识——基本指令
我们在linux下输入各种指令,其实就相当于在windows中的相关操作,比如双击,新建文件夹等。 以下是相关基本指令基本用法 一.ls(显示当前目录下的所有文件和目录) 那如何显示当前目录(我们所在的位置&…...
python 实现贪心算法(Greedy Algorithm)
贪心算法(Greedy Algorithm)是一种在每一步选择中都采取当前最优的选择,希望通过局部最优解达到全局最优解的算法设计方法。以下是使用Python实现贪心算法解决几个经典问题的示例: 1. 活动选择问题(Activity Selection…...
设计形成从业务特点到设计模式的关联
规范和指引在应用架构、数据架构等各架构方向上形成规范性约束指导。同一个决策要点、架构单元在统一的架构原则指导下,会因业务特点差异有不同的实现,经过总结形成了最佳实践。在开展新应用的设计时,根据决策要点以及相关的业务特点…...
Pytorch初学
创建虚拟环境 python控制台,jupyter notebook,python文件运行的差异,后续结合使用三者。 jupter主要可以对代码进行分割单独运行,主要做一些探索性工作。 数据集的常见存储模式 1、以标签命名图像。 2、单独存储图像的地址。 加载数据集…...
【动态重建】时间高斯分层的长体积视频
标题:Representing Long Volumetric Video with Temporal Gaussian Hierarchy 来源:浙江大学 链接:https://zju3dv.github.io/longvolcap/ 文章目录 摘要一、前言二、主要方法2.1 时间高斯分层2.2 高效渲染2.3 层次结构更新2.4 紧凑的外观模型…...
Java设计模式 —— 【行为型模式】命令模式(Command Pattern) 详解
文章目录 模式介绍优缺点适用场景结构案例实现注意事项 模式介绍 有时候需要向某些对象发送请求,但是并不知道请求的接收者是谁,也不知道被请求的操作是什么。此时希望用一种松耦合的方式来设计程序,使得请求发送者和请求接收者能够消除彼此…...
IOS开发如何从入门进阶到高级
针对iOS开发的学习,不同阶段应采取不同的学习方式,以实现高效提升.本文将iOS开发的学习分为入门、实战、进阶三个阶段,下面分别详细介绍. 一、学习社区 iOS开源中国社区 这个社区专注于iOS开发的开源项目分享与协作,汇集了大量开…...
数据结构与算法之二叉树: LeetCode 108. 将有序数组转换为二叉搜索树 (Ts版)
将有序数组转换为二叉搜索树 https://leetcode.cn/problems/convert-sorted-array-to-binary-search-tree/description/ 描述 给你一个整数数组 nums ,其中元素已经按 升序 排列请你将其转换为一棵 平衡 二叉搜索树 示例 1 输入:nums [-10,-3,0,5,9…...
细说STM32F407单片机以轮询方式读写外部SRAM的方法
目录 一、实例的功能 二、工程配置 1、KEYLED 2、时钟、DEBUG、USART6、NVIC、GPIO、CodeGenerator 3、FSMC (1) 模式设置 (2) Bank 1子区3参数设置 1) NOR/PSRAM control组,子区控制参数 2) NOR/PSRAM timi…...
【Unity3D】AB包加密(AssetBundle加密)
加密前: 加密后,直接无法加载ab,所以无法正常看到ab内容。 using UnityEngine; using UnityEditor; using System.IO; public static class AssetBundleDemoTest {[MenuItem("Tools/打包!")]public static void Build(){//注意:St…...
wujie无界微前端框架初使用
先说一下项目需求:将单独的四套系统的登录操作统一放在一个入口页面进行登录,所有系统都使用的是vue3,(不要问我为啥会这样设计,产品说的客户要求) 1.主系统下载wujie 我全套都是vue3,所以直接…...
联发科MTK6771/MT6771安卓核心板规格参数介绍
MT6771,也被称为Helio P60,是联发科技(MediaTek)推出的一款中央处理器(CPU)芯片,可运行 android9.0 操作系统的 4G AI 安卓智能模块。MT6771芯片采用了12纳米工艺制造,拥有八个ARM Cortex-A73和Cortex-A53核心,主频分别…...
ZooKeeper Java API操作
(1)添加依赖,在pom.xml文件中添加zookeeper依赖: (2)连接zookeeper服务,创建cn.itcast.zookeeper包,在该包中创建ZooKeeperDemo类,该类用于实现创建会话和操作ZooKeeper&…...
【vue3封装element-plus的反馈组件el-drawer、el-dialog】
vue2中封装el-drawer、el-dialog这类反馈类子组件,需要将父组件的visible值传递子组件,并且再通过$emit将关闭弹窗的组件值传回父组件,同事子组件还需要监听父组件传递过来的visible的值,来驱动弹窗显示隐藏,很麻烦&am…...
doris:远程存储
功能简介 远程存储支持把部分数据放到外部存储(例如对象存储,HDFS)上,节省成本,不牺牲功能。 注意 远程存储的数据只有一个副本,数据可靠性依赖远程存储的数据可靠性,您需要保证远程存储有…...
win11 电脑重启后,需要重新插拔U盘、移动硬盘才能识别问题
win11 电脑重启后,需要重新插拔U盘、移动硬盘才能识别问题 前言 原因:win10在一个版本更新后,usb默认都开了自动停用 一、解决方式一 在设备管理里面找到那些需要插拔才能识别的usb设备,电源策略里关掉“允许计算机关闭这个设…...
望获实时Linux系统与大语言模型深度融合,开创实时智能无限可能!
大语言模型的崛起为智能化应用开辟了新的可能性。借助深度学习技术,这些模型能够理解和生成自然语言,处理复杂的文本和语义信息。这使得它们在诸如人机问答、内容生成和数据分析等领域展现出巨大的潜力。在实时控制领域,大语言模型能够显著提…...
【工业场景】用YOLOv8实现工业安全帽识别
工业安全帽识别是一项重要的工作安全管理措施,旨在防止工作场所发生头部伤害事故。通过使用YOLOv8等深度学习模型,可以实时准确地检测出工人是否佩戴安全帽,及时发现违规行为,为工人提供更安全的工作环境。 使用YOLOv8实现工业安全…...
137. 只出现一次的数字 II
137. 只出现一次的数字 II 题目-中等难度1. 位运算2. 位运算 题目-中等难度 给你一个整数数组 nums ,除某个元素仅出现 一次 外,其余每个元素都恰出现 三次 。请你找出并返回那个只出现了一次的元素。 你必须设计并实现线性时间复杂度的算法且使用常数…...
Transformer 和 Attention机制入门
1. 什么是 Transformer 背景: 在自然语言处理领域,早期常使用循环神经网络(RNN)及其变体(如 LSTM、GRU)来处理序列数据,如机器翻译、文本生成等任务。然而,RNN 结构存在以下问题&…...
selenium合集
环境搭建步骤 安装selenium pip install selenium 安装浏览器 安装浏览器驱动 谷歌浏览器:chromdriver.exe ie浏览器:ieserverdriver.exe FireFox浏览器:geckodriver.exe 特别注意⚠️:下载驱动版本必须与浏览器版本一致 下载地址 淘宝镜像࿱…...
# Java 发送电子邮件示例
前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默, 忍不住分享一下给大家。点击跳转到网站 学习总结 1、掌握 JAVA入门到进阶知识(持续写作中……) 2、学会Oracle数据库入门到入土用法(创作中……) 3、手把…...