2021年新版Go工程师大厂面试题Go面试题容器技术

news2024/10/25 19:48:34

Go面试题--容器技术

1、为什么需要 DevOps
在当今,软件开发公司在软件新版本发布方面,多尝试通过发布一系列以小的
特性改变集为目标的新软件版本,代替发布一个大特性改变集的新软件版本的
方式。这种方式有许多优点,诸如,快速的客户反馈,软件质量的保证等。也
会获得较高的客户满意度评价。完成这样的软件发布模式,开发公司需要做
到:
增加软件布署的频率
降低新发布版本的失败率
缩短修复缺陷的交付时间
加快解决版本冲突的问题
DevOps 满足所有这些需求且帮助公司高质完成软件无缝交付的目标。
2、 Docker 是什么?
Docker 是一个容器化平台,它包装你所有开发环境依赖成一个整体,像一个容
器。保证项目开发,如开发、测试、发布等各生产环节都可以无缝工作在不同
的平台
Docker 容器:将一个软件包装在一个完整的文件系统中,该文件系统包含运行
所需的一切:代码,运行时,系统工具,系统库等。可以安装在服务器上的任
何东西。
这保证软件总是运行在相同的运行环境,无需考虑基础环境配置的改变。

3、 DevOps 有哪些优势?
技术优势:
持续的软件交付能力
修复问题变得简单
更快得解决问题
商业优势:
更快交付的特性
更稳定的操作系统环境
更多时间可用于创造价值 (而不是修复 / 维护)
4、CI 服务有什么用途?
CI (Continuous Integration)-- 持续集成服务 -- 主要用于整合团队开发
中不同开发者提交到开发仓库中的项目代码变化,并即时整合编译,检查整合
编译错误的服务。它需要一天中多次整合编译代码的能力,若出现整合错误,
可以优异地准确定位提交错误源。
5、如何使用 Docker 技术创建与环境无关的容器系统?
Docker 技术有三中主要的技术途径辅助完成此需求:
存储卷(Volumes)
环境变量(Environment variable)注入
只读(Read-only)文件系统

6、Dockerfile 配置文件中的 COPY 和 ADD 指令有什么不同?
虽然 ADD 和 COPY 功能相似,推荐 COPY 。
那是因为 COPY 比 ADD 更直观易懂。 COPY 只是将本地文件拷入容器这么简
单,而 ADD 有一些其它特性功能(诸如,本地归档解压和支持远程网址访问
等),这些特性在指令本身体现并不明显。因此,有必要使用 ADD 指令的最好
例子是需要在本地自动解压归档文件到容器中的情况,如 ADD
rootfs.tar.xz 。
7、 Docker 映像(image)是什么?
Docker image 是 Docker 容器的源。换言之,Docker images 用于创建
Docker 容器(containers)。映像(Images)通过 Docker build 命令创建,
当 run 映像时,它启动成一个 容器(container)进程。 做好的映像由于可
能非常庞大,常注册存储在诸如 registry.hub.docker.com 这样的公共平台
上。映像常被分层设计,每层可单独成为一个小映像,由多层小映像再构成大
映像,这样碎片化的设计为了使映像在互联网上共享时,最小化传输数据需
求。
8、Docker 容器(container)是什么?
Docker containers -- Docker 容器 -- 是包含其所有运行依赖环境,但与其
它容器共享操作系统内核的应用,它运行在独立的主机操作系统用户空间进程
中。Docker 容器并不紧密依赖特定的基础平台:可运行在任何配置的计算机,
任何平台以及任何云平台上。

9、Docker 中心(hub)什么概念?
Docker hub 是云基础的 Docker 注册服务平台,它允许用户进行访问 Docker
中心资源库,创建自己的 Docker 映像并测试,推送并存储创建好的 Docker
映像,连接 Docker 云平台将已创建好的指定 Docker 映像布署到本地主机等
任务。它提供了一个查找发现 Docker 映像,发布 Docker 映像及控制变化升
级的资源中心,成为用户组或团队协作开发中保证自动化开发流程的有效技术
途径。
10、在任意给定时间点指出一个 Docker 容器可能存在的运行阶
段?
在任意时间点,一个 Docker 容器可能存在以下运行阶段:
运行中(Running)
已暂停(Paused)
重启中(Restarting)
已退出(Exited)
11、 有什么方法确定一个 Docker 容器运行状态?
使用如下命令行命令确定一个 Docker 容器的运行状态
$ docker ps –a
这将列表形式输出运行在主机上的所有 Docker 容器及其运行状态。从这个列
表中很容易找到想要的容器及其运行状态。

12 、在 Dockerfile 配置文件中最常用的指令有哪些?
一些最常用的指令如下:
FROM:使用 FROM 为后续的指令建立基础映像。在所有有效的 Dockerfile
中, FROM 是第一条指令。
LABEL:LABEL 指令用于组织项目映像,模块,许可等。在自动化布署方面
LABEL 也有很大用途。在 LABEL 中指定一组键值对,可用于程序化配置或布署
Docker 。
RUN:RUN 指令可在映像当前层执行任何命令并创建一个新层,用于在映像层中
添加功能层,也许最来的层会依赖它。
CMD:使用 CMD 指令为执行的容器提供默认值。在 Dockerfile 文件中,若添
加多个 CMD 指令,只有最后的 CMD 指令运行。
13、 什么类型的应用(无状态性或有状态性)更适合 Docker 容
器技术?
对于 Docker 容器创建无状态性(Stateless)的应用更可取。通过从应用项目
中将与状态相关的信息及配置提取掉,我们可以在项目环境外建立不依赖项目
环境的 Docker 容器。这样,我们可以在任意产品中运行同一容器,只需根据
产品需要像问 & 答(QA)一样给其配置环境即可。 这帮助我们在不同场景重
用相同的 Docker 映像。另外,使用 无状态性(Stateless)容器应用相比有
状态性(Stateful)容器应用更具伸缩性,也容易创建。
14、 解释基本 Docker 应用流程
初始,所有都有赖于 Dockerfile 配置文件。Dockerfile 配置文件就是创建
Docker image (映像) 的源代码。

一旦 Dockerfile 配置好了,就可以创建(build)并生成 'image(映像)
' ,'image' 就是 Dockerfile 配置文件中 「源代码」的「编译」版本。
一旦有了 'image' ,就可以在 registry(注册中心) 发布它。 'registry'
类似 git 的资源库 -- 你可以推送你的映像(image),也可取回库中的映像
(image)。
之后,你就可以使用 image 去启动运行 'containers(容器)'。运行中的容
器在许多方面,与虚拟机非常相似,但容器的运行不需要虚拟管理软件的运
行。
15、Docker Image 和 Docker Layer (层) 有什么不同?
Image:一个 Docker Image 是由一系列 Docker 只读层(read-only Layer)
创建出来的。
Layer:在 Dockerfile 配置文件中完成的一条配置指令,即表示一个 Docker
层(Layer)。
如下 Dockerfile 文件包含 4 条指令,每条指令创建一个层(Layer)。
FROM ubuntu:15.04
COPY . /app
RUN make /app
CMD python /app/app.py
重点,每层只对其前一层进行一(某)些进化。

16、虚拟化技术是什么?
最初的构想,virtualisation(虚拟化) 被认为是逻辑划分大型主机使得多个
应用可以并行运行的一种技术方案。然而,随着技术公司及开源社区的推进,
现实发生了戏剧性的转变,以致产生了以一种或某种方式操作特权指令可以在
单台基于 x86 硬件的系统上同时运行多个(种)操作系统的技术。
实质的效果是,虚拟化技术允许你在一个硬件平台下运行 2 个完全不同的操作
系统。每个客户操作系统可完成像系统自检、启动、载入系统内核等像在独立
硬件上的一切动作。同时也具备坚实的安全基础,例如,客户操作系统不能获
取完全访问主机或其它客户系统的权限,及其它涉及安全,可能把系统搞坏的
操作。
基于对客户操作系统虚拟硬件、运行环境模拟方法的不同,对虚拟化技术进行
分类,主要的有如下 3 种虚拟化技术种类:
⚫ 全模拟(Emulation)
⚫ 半虚拟(Paravirtualization)
⚫ 基于容器的虚拟化(Container-based virtualization)
17、虚拟管理层(程序)是什么?
hypervisor -- 虚拟管理层(程序)-- 负责创建客户虚拟机系统运行所需虚拟
硬件环境。它监管客户虚拟操作系统的运行,并为客户系统提供必要的运行资
源,保证客户虚拟系统的运行。虚拟管理层(程序)驻留在物理主机系统和虚
拟客户系统之间,为虚拟客户系统提供必要的虚拟服务。如何理解它,它侦听
运行在虚拟机中的客户操作系统的操作并在主机操作系统中模拟客户操作系统
所需硬件资源请求。满足客户机的运行需求。

虚拟化技术的快速发展,主要在云平台,由于在虚拟管理程序的帮助下,可允
许在单台物理服务器上生成多个虚拟服务器,驱动着虚拟化技术快速发展及广
泛应用。诸如,Xen,VMware,KVM 等,以及商业化的处理器硬件生产厂商也加
入在硬件层面支持虚拟化技术的支持。诸如,Intel 的 VT 和 AMD-V 。
18、Docker 群(Swarm)是什么?
Docker Swarm -- Docker 群 -- 是原生的 Docker 集群服务工具。它将一群
Docker 主机集成为单一一个虚拟 Docker 主机。利用一个 Docker 守护进程,
通过标准的 Docker API 和任何完善的通讯工具,Docker Swarm 提供透明地将
Docker 主机扩散到多台主机上的服务。
19、在使用 Docker 技术的产品中如何监控其运行?
Docker 在产品中提供如 运行统计和 Docker 事件的工具。可以通过这些工具
命令获取 Docker 运行状况的统计信息或报告。
Docker stats : 通过指定的容器 id 获取其运行统计信息,可获得容器对
CPU,内存使用情况等的统计信息,类似 Linux 系统中的 top 命令。
Docker events :Docker 事件是一个命令,用于观察显示运行中的 Docker 一
系列的行为活动。
一般的 Docker 事件有:attach(关联),commit(提交),die(僵死),
detach(取消关联),rename(改名),destory(销毁)等。也可使用多个选
项对事件记录筛选找到想要的事件信息。

20 、什么是孤儿卷及如何删除它?
孤儿卷是未与任何容器关联的卷。在 Docker v。1.9 之前的版本中,删除这些
孤儿卷存在很大问题。
21、什么是半虚拟化(Paravirtualization)?
Paravirtualization,也称为第 1 类虚拟机管理(层)程序,其直接在硬件或
裸机(bare-metal)上运行,提供虚拟机直接使用物理硬件的服务,它帮助主
机操作系统,虚拟化硬件和实际硬件进行协作以实现最佳性能。这种虚拟层管
理技术的程序一般占用系统资源较小,其本身并不需要占用大量系统资源。

这种虚拟层管理程序有 Xen, KVM 等。
22、Docker 技术与虚拟机技术有何不同?
Docker 不是严格意义上的虚拟化硬件的技术。它依赖 container-based
virtualization(基于容器的虚拟化) 的技术实现工具,或可以认为它是操作
系统用户运行级别的虚拟化。因此, Docker 最初使用 LXC 驱动它,后来移至
由 libcontainer 基础库驱动它,现已更名为 runc 。 Docker 主要致力于应
用容器内的应用程序的自动化部署。应用容器设计用于包装和运行单一服务,
而操作系统设计用于运行多进程任务,提供多种运算服务的能力。如虚拟机中
等同完全操作系统的能力。因此,Docker 被认为是容器化系统上管理容器及应
用容器化的布署工具。

⚫ 与虚拟机不同,容器无需启动操作系统内核,因此,容器可在不到 1 秒钟
时间内运行起来。这个特性,使得容器化技术比其它虚拟化技术更具有独
特性及可取性。
⚫ 由于容器化技术很少或几乎不给主机系统增加负载,因此,基于容器的虚
拟化技术具有近乎原生的性能表现。
⚫ 基于容器的虚拟化,与其他硬件虚拟化不同,运行时不需要其他额外的虚
拟管理层软件。
⚫ 主机上的所有容器共享主机操作系统上的进程调度,从而节省了额外的资
源的需求。
⚫ 与虚拟机 image 相比,容器(Docker 或 LXC images)映像较小, 因
此,容器映像易于分发。
⚫ 容器中的资源分配由 Cgroups 实现。 Cgroup 不会让容器占用比给它们分
配的更多的资源。但是,现在其它的虚拟化技术,对于虚拟机,主机的所
有资源都可见,但无法使用。这可以通过在容器和主机上同时运行 top 或
htop 来观察到。在两个环境中的输出看起来相同。
23、请解释一下 docerfile 配置文件中的 ONBUILD 指令的用途
含义?
配置文件中的 ONBUILD 指令为创建的 Docker image (映像)加入在将来执行
的指令(译注:在当前配置文件生成的映像中并不执行), 用于在以这个创建

的映像为基础的创建的子映像(image) 中执行或定制。 举例, 以基映像创
建自己的映像时,可定制创建特有的用户化的配置环境。
( 译注: 由于原文较短,关于这个问题容易迷惑。 译者认为,总体来说关键
理解 -- 以基础映像创建自有的映像过程中,基础映像中所有的创建层或指令
是以整体或固化的方式导入自有映像中的,自有映像是不能对这个过程进行自
有定制。 而 ONBUILD 指令提供了将某些层从基础映像中剥离出来提供给之后
以自有映像为基础映像派生新的映像的可定制途径。这对发布映像而普适在不
同的运行环境定制非常有用。不当之处,请指正!)
24、有否在创建有状态性的 Docker 应用的较好实践? 最适合的
场景有什么?
有状态性 Docker 应用的问题关键在于状态数据保存在哪儿的问题。 若所有数
据保存在容器内, 当更新软件版本或想将 Docker 容器移到其它机器上时,
找回这些在运行中产生的状态数据将非常困难。
您需要做的是将这些表达运行状态的数据保存在永久卷中。参考如下 3 种模式。

译注:
1 图中文字: 数据保存在容器中,当容器停止运行时,运行状态数据丢失!

2 图中文字: 数据保存在主机卷(Host Volume)中,当主机停机时,运行状
态数据将无法访问
3 图中文字: 数据保存在网络文件系统卷中,数据访问不依赖容器的运行与主
机的运行
若您使用:docker run -v hostFolder:/containerfolder 命令运行您的容
器, 容器运行中任何对 /containerfolder 目录下数据的改变, 将永久保存
在主机的 hostfolder 目录下。 使用网络文件系统(nfs)与此类似。 那样您
就可以运行您的容器在任何主机上且其运行状态数据被保存在网络文件系统
上。
25、在 Windows 系统上可以运行原生的 Docker 容器吗?
在 'Windows Server 2016' 系统上, 你可以运行 Windows 的原生容器, 微
软推出其映像是 'Windows Nano Server' , 一个轻量级的运行在容器中的
Windows 原生系统。 您可以在其中布署基于 .NET 的应用。
译注: 结合 Docker 的基本技术原理,参考后面的 问题 26 和 问题 27, 可
推测, 微软在系统内核上开发了对 Docker 的支持, 支持其闭源系统的容器
化虚拟技术。但译者认为, Windows 系统本就是闭源紧耦合的系统, 好像你
在本机上不装 .NET 组件,各应用能很好运行似的。何必再弄个容器,浪费资
源。这只是译者自己之孔见,想喷就喷! 另: Windows Server 2016 版本之
后的都可支持这种原生 Docker 技术,如 Windows Server 2018 版。
26、在非 Linux 操作系统平台上如何运行 Docker ?
容器化虚拟技术概念可能来源于,在 Linux 内核版本 2.6.24 上加入的对 命
名空间( namespace) 的技术支持特性。 容器化进程加入其进程 ID 到其创
建的每个进程上并且对每个进程中的系统级调用进行访问控制及审查。 其本身

是由系统级调用 clone () 克隆出来的进程, 允许其创建属于自己命名空间的
进程实例,而区别于之前的,归属与整个本机系统的进程实例。
如果上述在 Linux 系统内核上的技术实现成为可能, 那么明显的问题是如何
在 非 Linux 系统上运行容器化的 Docker 。过去, Mac 和 Windows 系统上
运行 Docker 容器都使用 Linux 虚拟机(VMs) 技术, Docker 工具箱使用的
容器运行在 Virtual Box 虚拟机上。 现在,最新的情况是, Windows 平台上
使用的是 Hyper-V 产品技术,Mac 平台上使用的是 Hypervisor.framework
(框架)产品技术。
27、容器化技术在底层的运行原理?
2006 年前后, 人们,包括一些谷歌的雇员, 在 Linux 内核级别上实现了一
种新的名为 命名空间(namespace) 的技术(实际上这种概念在 FreeBSD 系
统上由来已久)。我们知道,操作系统的一个功能就是进程共享公共资源, 诸
如,网络和硬盘空间等。 但是,如果一些公共资源被包装在一个命名空间中,
只允许属于这个命名空间中的进程访问又如何呢? 也就是说,可以分配一大块
硬盘空间给命名空间 X 供其使用,但是,命名空间 Y 中的进程无法看到或访
问这部分资源。 同样地, 命名空间 Y 中分配的资源,命名空间 X 中的进程
也无法访问。当然, X 中的进程无法与 Y 中的进程进行交互。这提供了某种
对公共资源的虚拟化和隔离的技术。
这就是 Docker 技术的底层工作原理: 每个容器运行在它自己的命名空间中,
但是,确实与其它运行中的容器共用相同的系统内核。 隔离的产生是由于系统
内核清楚地知道命名空间及其中的进程,且这些进程调用系统 API 时,内核保
证进程只能访问属于其命名空间中的资源。

图上文字说明: 运行中的容器是隔离的。准确地说, 各容器共享操作系统内
核及操作系统 API。
28、说说容器化技术与虚拟化技术的优缺点
仅有下面的一些对比:
不能像虚拟机那样在容器上运行与主机完全不同的操作系统。 然而, 可以在
容器上运行不同的 Linux 发布版,由于容器共享系统内核的缘故。容器的隔离
性没有虚拟机那么健壮。事实上, 在早期容器化技术实现上,存在某种方法使
客户容器可接管整个主机系统。
也可看到,载入新容器并运行,并不会像虚拟机那样装载一个新的操作系统进
来。
所有的容器共享同一系统内核, 这也就是容器被认为非常轻量化的原因。
同样的原因,不像虚拟机, 你不须为容器预分配大量的内存空间, 因为它不
是运行新的整个的操作系统。 这使得在一个操作系统主机上,可以同时运行成
百上千个容器应用, 在运行完整操作系统的虚拟机上,进行这么多的并行沙箱
实验是不可能的。

29、如何使 Docker 适应多种运行环境?
您必然想改变您的 Docker 应用配置以更适应现实运行环境的变化。下面包含
一些修改建议:
移除应用代码中对任何固定存储卷的绑定,由于代码驻留在容器内部,而不能
从外部进行修正。
绑定应用端口到主机上的不同端口
差异化设置环境变量 (例如: 减少日志冗余或者使能发电子邮件)
设定重启策略(例如: restart: always ), 避免长时间宕机
加入额外的服务(例如: log aggregator)
由于以上原因, 您更需要一个 Compose 配置文件,大概叫
production.yml ,它配置了恰当的产品整合服务。 这个配置文件只需包含您
选择的合适的原始 Compose 配置文件中,你改动的部分。
docker-compose -f docker-com
30、为什么 Docker compose 采取的是并不等待前面依赖服务项
的容器启动就绪后再启动的组合容器启动策略?
Docker 的 Compose 配置总是以依赖启动序列来启动或停止 Compose 中的服务
容器, 依赖启动序列是由 Compose 配置文件中的 depends_on , links ,
volumes_from 和 network_mode: "service : ..." 等这些配置指令所确定
的。
然而, Compose 启动中, 各容器的启动并不等待其依赖容器(这必定是你整
个应用中的某个依赖的服务或应用)启动就绪后才启动。使用这种策略较好的
理由如下:

等待一个数据库服务(举例)就绪这样的问题, 在大型分布式系统中仅是相比
其它大问题的某些小问题。 在实际发布产品运维中, 您的数据库服务会由于
各种原因,或者迁移宿主机导致其不可访问。 您发布的产品需要有应对这样状
况的弹性。
掌控这些, 开发设计您的应用, 使其在访问数据库失效的情况下, 能够试图
重连数据库, 直至其连接到数据库为止。
最佳的解决方案是在您的应用代码中检查是否有应对意外的发生,无论是任何
原因导致的启动或连接失效都应考虑在内。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2210398.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

分布式数据库的进度管理:TiDB 备份恢复工具 PiTR 的原理与实践

导读 对于一款企业级数据库产品而言,数据的安全性和可恢复性是至关重要的。PiTR(Point in Time Restore)作为 TiDB 备份工具的核心功能之一,提供了一种精细的数据恢复能力,允许用户将数据库集群恢复到过去的任意时间点…

通过多元蒙特卡罗模拟来预测股票价格的日内波动性

作者:老余捞鱼 原创不易,转载请标明出处及原作者。 写在前面的话: 日内价格波动对交易策略的重要性不言而喻,尤其是美跨式交易策略(The American straddle)。由于无法预测所有影响股价的因素&#x…

【原创】java+springboot+mysql法律咨询网系统设计与实现

个人主页:程序猿小小杨 个人简介:从事开发多年,Java、Php、Python、前端开发均有涉猎 博客内容:Java项目实战、项目演示、技术分享 文末有作者名片,希望和大家一起共同进步,你只管努力,剩下的交…

loadlocale.c:130: _nl_intern_locale_data: failed已放弃 (核心已转储)]问题

在进行交叉编译cortex-a9架构时,出现以上错误。 问题描述: 在使用 arm-none-linux-gnueabi-gdb 进行 Cortex-A9 架构交叉编译调试时,出现如下错误: arm-none-linux-gnueabi-gdb: loadlocale.c:130: _nl_intern_locale_data: As…

新型物联网电力数据采集器 智能网关通讯协议有哪些?

随着智能化技术的快速发展,电气监测与管理在各个域的应用愈发重要,在物联网(IoT)应用的发展中,网关扮演着至关重要的角色。它作为连接设备与云平台或数据中心的桥梁,负责数据的收集、处理和传输。网关不仅支…

鸿蒙开发之ArkUI 界面篇 三十四 容器组件Tabs二 常用属性

barPosition:位置开头或结尾,vertical 水平或者垂直,scrollable手势滑动切换,animationDuration 滑动动画时间。BarPosition.Start 效果如下图: BarPosition.End 效果如下图: 如果显示在左边,使用的是vertical属性,下图&#xff0…

Chrome(谷歌)浏览器 数据JSON格式美化 2024显示插件安装和使用

文章目录 目录 文章目录 安装流程 小结 概要安装流程技术细节小结 概要 没有美化的格式浏览器展示 美化之后效果图 安装流程 下载地址 https://github.com/gildas-lormeau/JSONVue 点击下载 下载成功,如图所示 解压文件 添加成功,如图所示 通过浏览器…

密码学算法概览大全

区块链密码学 目录 对称密码算法 1. 流密码2. 分组密码3. 对称密码算法小结4. 对称密码算法在区块链中的应用 非对称密码算法 1. RSA2. ECC3. 非对称密码算法小结4. 非对称密码算法在区块链中的应用 Hash函数 1. SHA2. RipeMD-1603. Hash函数在区块链中的应用 PKI 1. PKI组成2…

STM32——USART原理及应用

1.什么是USART? 1.1 基本概念 USART英文全称:universal asynchronous receiver and transmitter ,翻译过来就是:通用同步异步收/发器。USART是STM32内部集成的硬件外设,可根据数据寄存器的一个字节数据自动生成数据帧…

Python | Leetcode Python题解之第476题数字的补数

题目&#xff1a; 题解&#xff1a; class Solution:def findComplement(self, num: int) -> int:highbit 0for i in range(1, 30 1):if num > (1 << i):highbit ielse:breakmask (1 << (highbit 1)) - 1return num ^ mask

NVIDIA Bluefield DPU上的启动流程4个阶段分别是什么?作用是什么?

文章目录 Bluefield上的硬件介绍启动流程启动流程:eMMC中的两个存储分区:ATF介绍ATF启动的四个阶段:四个主要步骤:各个阶段依赖的启动文件一次烧录fw失败后的信息看启动流程综述Bluefield上的硬件介绍 本文以Bluefield2为例,可以看到RSHIM实际上是Boot相关的集合。也能看…

QT 连接SQL SEVER 之后无法读取浮点和整型

1、ODBC Driver 的版本要对应上。 if (!strDbDirPath.isEmpty())m_strDbDirPath strDbDirPath;m_strDatabaseName strDatabaseName;if (m_database.isOpen() || m_bConnected){qDebug() << QString("QODBC:已经连接成功&#xff01;") << "\n&quo…

八、Linux之实用指令

1、指定运行级别 1.1 基本介绍 运行级别说明 0 &#xff1a;关机 1 &#xff1a;单用户【找回丢失密码】 2&#xff1a;多用户状态没有网络服务&#xff08;用的非常少&#xff09; 3&#xff1a;多用户状态有网络服务&#xff08;用的最多&#xff09; 4&#xff1a;系统未使…

《Linux运维总结:基于ARM64+X86_64架构CPU使用docker-compose一键离线部署mongodb 7.0.14容器版分片集群》

总结&#xff1a;整理不易&#xff0c;如果对你有帮助&#xff0c;可否点赞关注一下&#xff1f; 更多详细内容请参考&#xff1a;《Linux运维篇&#xff1a;Linux系统运维指南》 一、部署背景 由于业务系统的特殊性&#xff0c;我们需要面向不通的客户安装我们的业务系统&…

【自动驾驶汽车通讯协议】GMSL通信技术以及加串器(Serializer)解串器(Deserializer)介绍

文章目录 0. 前言1. GMSL技术概述2. 为什么需要SerDes&#xff1f;3. GMSL技术特点4.自动驾驶汽车中的应用5. 结论 0. 前言 按照国际惯例&#xff0c;首先声明&#xff1a;本文只是我自己学习的理解&#xff0c;虽然参考了他人的宝贵见解及成果&#xff0c;但是内容可能存在不准…

图解 微信开发者工具 小程序源码 调试、断点标记方法 , 微信小程序调试器,真机调试断点调试方法,小程序网络API请求调试方法 总结

在我们使用微信开发者工具进行微信小程序开发的时候&#xff0c;在这个微信开发者工具的代码编辑框里面我们是无法像使用vscode, idea等IDE工具时那样直接对代码打断点进行调试&#xff0c; 原因是小程序实际上他就是一个web浏览器应用的包装, 在其内部使用的还是类似chrome的…

mac 桌面版docker no space left on device

报错信息 docker pull镜像时报&#xff1a; failed to register layer: Error processing tar file(exit status 1): write /home/admin/oceanbase_bak/bin/observer: no space left on device 解决 增加 docker 虚拟磁盘大小。 调整完点击重启即可。

如何使用vscode的launch.json来debug调试

1、创建一个launch.json文件 选择Python Debugger&#xff0c;再选择Python文件&#xff0c;创建处理如下 默认有下面五个参数 "name": "Python Debugger: Current File","type": "debugpy","request": "launch"…

使用OpenCV处理视频并显示灰度图像

目录 导入OpenCV库打开视频文件定义显示图像的函数检查视频是否成功打开并读取第一帧循环读取视频帧释放资源完整代码 导入OpenCV库 import cv2 # 导入OpenCV库打开视频文件 注意&#xff1a;视频随便去搜一个就可以 我用的是风景的 # 打开视频文件 vc cv2.VideoCapture(b…

ubuntu18.04系统中图形化界面

一、Ubuntu 18.04 中&#xff0c;使用 GDM 作为默认的图形用户界面&#xff08;GUI&#xff09;管理器。GDM 是 GNOME Display Manager 的缩写&#xff0c;它是用于 Ubuntu 的显示管理器&#xff0c;负责处理登录和会话管理。 通过命令行重启 Ubuntu 18.04 上的图形界面服务&am…