使用 Docker(Podman) 部署 MongoDB 数据库及使用详解

在现代开发环境中,容器化技术(如 Docker 和 Podman)已成为部署和管理应用程序的标准方式。本文将详细介绍如何使用 Podman/Docker 部署 MongoDB 数据库,并确保其他应用程序容器能够通过 Docker 网络成功连接到 MongoDB。我们将逐步解决常见的问题,如权限配置和认证设置,应用容器如何连接和使用容器中的MongoDB 数据库等。

选择 Podman 而不是 Docker

为什么选择 Podman?

  • 无守护进程:Podman 不需要守护进程(daemon)即可运行容器,这使得它更安全和易于管理。
  • 根权限不是必须:Podman 允许非特权用户运行容器,而 Docker 需要 root 权限或通过 docker 组来管理容器。
  • 兼容性:Podman 可以与 Docker 镜像和容器无缝兼容,这意味着你可以使用现有的 Dockerfile 和配置文件。
  • 资源效率:Podman 更加轻量级,对资源的需求较低,适合在资源受限的环境中运行。

1. 安装 Podman

首先,确保你已经安装了 Podman。如果尚未安装,可以按照以下步骤进行安装:

在 Ubuntu 上安装 Podman

  1. 更新包列表

    sudo apt-get update
    
  2. 安装 Podman

    sudo apt-get install -y podman
    
  3. 验证安装

    podman run hello-world
    

    这将检验 Podman 是否安装成功。

2. 创建并运行 MongoDB 容器

2.1 创建目录并调整权限

确保数据目录和日志目录存在并且权限正确。MongoDB 容器内的 mongodb 用户(UID 999 和 GID 999)需要对这些目录有读写权限。

mkdir -p ~/mongodb/data
mkdir -p ~/mongodb/logs
sudo chown -R 999:999 ~/mongodb/data
sudo chown -R 999:999 ~/mongodb/logs

2.2 创建配置文件 mongod.conf

创建一个 MongoDB 配置文件 mongod.conf,内容如下:

systemLog:destination: filepath: "/var/log/mongodb/mongod.log"logAppend: true
storage:dbPath: "/data/db"
net:bindIp: "0.0.0.0"port: 27017
security:authorization: "disabled"

2.3 创建自定义 Docker 网络

创建一个自定义的 Docker 网络,以便其他容器可以连接到 MongoDB 容器。

podman network create dco-net

2.4 运行 MongoDB 容器

使用以下命令运行 MongoDB 容器,并确保配置文件正确挂载:

podman run -d \--name mongodb \-v ~/mongodb/data:/data/db \-v ~/mongodb/logs:/var/log/mongodb \-v ~/mongodb/mongod.conf:/etc/mongod.conf \--network dco-net \docker.io/library/mongo:latest \-f /etc/mongod.conf
  • -d:后台运行容器。
  • -v ~/mongodb/data:/data/db:将主机上的数据目录挂载到容器内的 /data/db 目录,实现数据持久化。
  • -v ~/mongodb/logs:/var/log/mongodb:将主机上的日志目录挂载到容器内的 /var/log/mongodb 目录,实现日志持久化。
  • -v ~/mongodb/mongod.conf:/etc/mongod.conf:将主机上的配置文件挂载到容器内的 /etc/mongod.conf 目录,确保 MongoDB 使用指定的配置文件。
  • --network dco-net:将容器连接到自定义的 dco-net 网络。
  • --name mongodb:为容器指定名称。
  • docker.io/library/mongo:latest:使用的 Docker 镜像名称,从官方 Docker Hub 拉取。
  • -f /etc/mongod.conf:指定使用 /etc/mongod.conf 配置文件。

3. 创建 MongoDB 用户和权限

3.1 进入 MongoDB 容器并启动 MongoDB Shell

podman exec -it mongodb /bin/bash
mongo

3.2 创建 admin 用户和权限

在 MongoDB Shell 中,创建 admin 数据库的用户并分配权限。例如:

use admin
db.createUser({user: "admin",pwd: "admin123",roles: [{ role: "root", db: "admin" }]
})
exit
exit

3.3 创建 atomdco 用户和权限

在 MongoDB Shell 中,创建 atomdco 数据库的用户并分配权限。例如:

podman exec -it mongodb /bin/bash
mongo -u admin -p admin123 --authenticationDatabase admin
use atomdco
db.createUser({user: "test1",pwd: "111111",roles: [{ role: "readWrite", db: "atomdco" }]
})
exit
exit

4. 启用 MongoDB 认证

4.1 停止并删除 MongoDB 容器

首先,停止并删除现有的 MongoDB 容器,以确保新的容器能够正确加载配置文件。

podman stop mongodb
podman rm mongodb

4.2 修改配置文件 mongod.conf 以启用认证

编辑 mongod.conf 文件,启用 authorization

systemLog:destination: filepath: "/var/log/mongodb/mongod.log"logAppend: true
storage:dbPath: "/data/db"
net:bindIp: "0.0.0.0"port: 27017
security:authorization: "enabled"

4.3 重新运行 MongoDB 容器

使用修改后的配置文件重新运行 MongoDB 容器:

podman run -d \--name mongodb \-v ~/mongodb/data:/data/db \-v ~/mongodb/logs:/var/log/mongodb \-v ~/mongodb/mongod.conf:/etc/mongod.conf \--network dco-net \docker.io/library/mongo:latest \-f /etc/mongod.conf

5. 验证 MongoDB 容器是否正确运行

5.1 查看容器状态

podman ps -a

你应该能看到类似以下的输出:

CONTAINER ID  IMAGE                           COMMAND     CREATED        STATUS        PORTS       NAMES
cd25ac473660  docker.io/library/mongo:latest  mongod      6 minutes ago  Up 6 minutes              mongodb

5.2 查看日志文件

确保 MongoDB 容器正确加载了配置文件并启动了日志记录。

podman logs mongodb

或者实时查看日志文件:

podman logs -f mongodb

你应该能看到类似以下的日志信息,确认 MongoDB 正确加载了配置文件并监听了所有网络接口:

{"t":{"$date":"2025-02-01T08:59:09.471Z"},"s":"I",  "c":"CONTROL",  "id":20568,   "ctx":"main","msg":"Waiting for connections","attr":{"port":27017,"ssl":"disabled"}}

5.3 验证端口监听

进入 MongoDB 容器并查看端口是否正确监听。

podman exec -it mongodb /bin/bash
ss -tuln

你应该能看到类似以下的输出:

Netid  State   Recv-Q  Send-Q  Local Address:Port               Peer Address:Port
tcp    LISTEN  0       0       0.0.0.0:27017                 0.0.0.0:*

6. 应用所在的容器如何连接到mongodb容器

假设有一godco的应用,有配置文件etc/godco-api.yaml,演示下该应用,如何使用上述创建好的mongodb数据库。

修改 etc/godco-api.yaml 中的 MongoDB 连接字符串。

由于 godco 容器和 mongodb 容器在同一个自定义网络中,可以使用 mongodb 作为主机名。修改 etc/godco-api.yaml 文件中的 MongoDB 连接字符串如下:

MonDB:Url: "mongodb://test1:111111@mongodb:27017/?tls=false&authSource=atomdco"DbName: "atomdco"

在这个配置中:

  • mongodb 是 MongoDB 容器的名称。
  • test1 是 MongoDB 用户名。
  • 111111 是 MongoDB 密码。
  • authSource=atomdco 指定认证数据库为 atomdco

7. 运行 godco 容器并连接到自定义网络

使用以下命令运行 godco 容器,并将其连接到自定义网络:

podman run -d \-p 8080:8080 \-v /path/to/your/etc:/app/etc \-v /path/to/your/static:/app/static \--network dco-net \--name dco-verification-app \godco:latest
  • -d:后台运行容器。
  • -p 8080:8080:将容器的 8080 端口映射到主机的 8080 端口。
  • -v /path/to/your/etc:/app/etc:将主机上的配置文件目录挂载到容器内的 /app/etc 目录。
  • -v /path/to/your/static:/app/static:将主机上的静态文件目录挂载到容器内的 /app/static 目录。
  • --network dco-net:将容器连接到自定义的 dco-net 网络。
  • --name dco-verification-app:为容器指定名称。
  • godco:latest:使用的 Docker 镜像名称。

8. 验证 godco 容器是否成功连接到 MongoDB

查看 godco 容器的日志文件,以确认它是否成功连接到 MongoDB 容器。

podman logs dco-verification-app

或者实时查看日志文件:

podman logs -f dco-verification-app

你应该能看到类似以下的日志信息,确认 godco 成功连接到 MongoDB:

[info] Connected to MongoDB server at mongodb:27017
[info] MongoDB database atomdco is ready

9. 使用 mongosh 连接到 MongoDB 并提供认证信息

9.1 获取 MongoDB 容器的 IP 地址

如果你的 MongoDB 容器已经映射了宿主机的端口(例如,使用 -p 27017:27017 参数),您可以直接使用宿主机的 IP 地址和映射的端口来连接。

mongosh "mongodb://username:password@localhost:27017/?authSource=atomdco"

由于上述我的测试没有启用该端口映射,所以需要以下方式连接:

使用 podman inspect 命令获取 MongoDB 容器的 IP 地址:

podman inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' mongodb

假设输出的 IP 地址为 10.89.0.5

9.2 连接到 MongoDB 并提供认证信息

使用 mongosh 连接到 MongoDB 并提供认证信息。例如:

mongosh "mongodb://test1:111111@10.89.0.5:27017/?authSource=atomdco"

9.3 验证数据库

mongosh 中,你可以使用 show databases 命令来查看数据库。

show databases

你应该能看到类似以下的输出:

admin   0.000GB
config  0.000GB
local   0.000GB
atomdco 0.000GB

10. 常见问题及解决方法

10.1 配置文件路径错误

确保配置文件路径正确,并且文件存在。

10.2 配置文件语法错误

检查 mongod.conf 文件是否有语法错误。可以使用 mongod --config /etc/mongod.conf 在主机上测试配置文件。

10.3 权限问题

确保数据目录和日志目录对 MongoDB 容器有正确的读写权限。使用 chown 命令调整权限。

10.4 镜像版本问题

确保你使用的 MongoDB 镜像版本正确,并且配置文件与该版本兼容。

11. 总结

通过上述步骤,你可以成功地使用 Podman 部署 MongoDB 数据库,并确保其他应用程序容器能够通过 Docker 网络成功连接到 MongoDB。以下是完整的步骤总结:

11.1 创建目录并调整权限

mkdir -p ~/mongodb/data
mkdir -p ~/mongodb/logs
sudo chown -R 999:999 ~/mongodb/data
sudo chown -R 999:999 ~/mongodb/logs

11.2 创建配置文件 mongod.conf(禁用认证)

systemLog:destination: filepath: "/var/log/mongodb/mongod.log"logAppend: true
storage:dbPath: "/data/db"
net:bindIp: "0.0.0.0"port: 27017
security:authorization: "disabled"

11.3 创建自定义 Docker 网络

podman network create dco-net

11.4 运行 MongoDB 容器(禁用认证)

podman run -d \--name mongodb \-v ~/mongodb/data:/data/db \-v ~/mongodb/logs:/var/log/mongodb \-v ~/mongodb/mongod.conf:/etc/mongod.conf \--network dco-net \docker.io/library/mongo:latest \-f /etc/mongod.conf

11.5 创建 admin 用户和权限

podman exec -it mongodb /bin/bash
mongo
use admin
db.createUser({user: "admin",pwd: "admin123",roles: [{ role: "root", db: "admin" }]
})
exit
exit

11.6 创建 atomdco 用户和权限

podman exec -it mongodb /bin/bash
mongo -u admin -p admin123 --authenticationDatabase admin
use atomdco
db.createUser({user: "test1",pwd: "111111",roles: [{ role: "readWrite", db: "atomdco" }]
})
exit
exit

11.7 停止并删除 MongoDB 容器

podman stop mongodb
podman rm mongodb

11.8 修改配置文件 mongod.conf 以启用认证

编辑 mongod.conf 文件,启用 authorization

systemLog:destination: filepath: "/var/log/mongodb/mongod.log"logAppend: true
storage:dbPath: "/data/db"
net:bindIp: "0.0.0.0"port: 27017
security:authorization: "enabled"

11.9 重新运行 MongoDB 容器(启用认证)

podman run -d \--name mongodb \-v ~/mongodb/data:/data/db \-v ~/mongodb/logs:/var/log/mongodb \-v ~/mongodb/mongod.conf:/etc/mongod.conf \--network dco-net \docker.io/library/mongo:latest \-f /etc/mongod.conf

11.10 验证 MongoDB 容器是否正确运行

podman ps -a

11.11 验证日志文件

ls -l ~/mongodb/logs

11.12 验证端口监听

podman exec -it mongodb /bin/bash
ss -tuln

11.13 修改 etc/godco-api.yaml 中的 MongoDB 连接字符串

MonDB:Url: "mongodb://test1:111111@mongodb:27017/?tls=false&authSource=atomdco"DbName: "atomdco"

11.14 运行 godco 容器

podman run -d \-p 8080:8080 \-v /path/to/your/etc:/app/etc \-v /path/to/your/static:/app/static \--network dco-net \--name dco-verification-app \godco:latest

11.15 验证 godco 容器的日志

podman logs dco-verification-app

或者实时查看日志文件:

podman logs -f dco-verification-app

11.16 使用 mongosh 连接到 MongoDB 并提供认证信息

  1. 获取 MongoDB 容器的 IP 地址

    podman inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' mongodb
    

    假设输出的 IP 地址为 10.89.0.5

  2. 连接到 MongoDB 并提供认证信息

    mongosh "mongodb://test1:111111@10.89.0.5:27017/?authSource=atomdco"
    
  3. 验证数据库

    show databases
    

    你应该能看到类似以下的输出:

    admin   0.000GB
    config  0.000GB
    local   0.000GB
    atomdco 0.000GB
    

通过这些步骤,确保 MongoDB 容器正确运行并加载配置文件,同时 godco 容器能够通过 Docker 网络成功连接到 MongoDB 容器。

12. 参考资料

  • Podman 官方文档
  • MongoDB 官方文档
  • MongoDB Shell 官方文档

13. 作者信息

Author: csdn猫哥,转载请注明出处
Date: 2025-02-01


通过本文,你将掌握如何使用 Podman 部署 MongoDB 数据库,并配置其他容器通过 Docker 网络连接到 MongoDB。确保在每一阶段都仔细检查配置文件和权限设置,以避免常见的启动问题。


详细步骤和命令总结

以下是完整的步骤和命令总结,确保 MongoDB 容器正确部署并启用认证:

1. 创建目录并调整权限
mkdir -p ~/mongodb/data
mkdir -p ~/mongodb/logs
sudo chown -R 999:999 ~/mongodb/data
sudo chown -R 999:999 ~/mongodb/logs
2. 创建配置文件 mongod.conf(禁用认证)

在主机上创建 mongod.conf 文件,内容如下:

systemLog:destination: filepath: "/var/log/mongodb/mongod.log"logAppend: true
storage:dbPath: "/data/db"
net:bindIp: "0.0.0.0"port: 27017
security:authorization: "disabled"
3. 创建自定义 Docker 网络
podman network create dco-net
4. 运行 MongoDB 容器(禁用认证)
podman run -d \--name mongodb \-v ~/mongodb/data:/data/db \-v ~/mongodb/logs:/var/log/mongodb \-v ~/mongodb/mongod.conf:/etc/mongod.conf \--network dco-net \docker.io/library/mongo:latest \-f /etc/mongod.conf
5. 创建 admin 用户和权限
podman exec -it mongodb /bin/bash
mongo
use admin
db.createUser({user: "admin",pwd: "admin123",roles: [{ role: "root", db: "admin" }]
})
exit
exit
6. 创建 atomdco 用户和权限
podman exec -it mongodb /bin/bash
mongo -u admin -p admin123 --authenticationDatabase admin
use atomdco
db.createUser({user: "test1",pwd: "111111",roles: [{ role: "readWrite", db: "atomdco" }]
})
exit
exit
7. 停止并删除 MongoDB 容器
podman stop mongodb
podman rm mongodb
8. 修改配置文件 mongod.conf 以启用认证

编辑 mongod.conf 文件,启用 authorization

systemLog:destination: filepath: "/var/log/mongodb/mongod.log"logAppend: true
storage:dbPath: "/data/db"
net:bindIp: "0.0.0.0"port: 27017
security:authorization: "enabled"
9. 重新运行 MongoDB 容器(启用认证)
podman run -d \--name mongodb \-v ~/mongodb/data:/data/db \-v ~/mongodb/logs:/var/log/mongodb \-v ~/mongodb/mongod.conf:/etc/mongod.conf \--network dco-net \docker.io/library/mongo:latest \-f /etc/mongod.conf
10. 验证 MongoDB 容器是否正确运行
podman ps -a
11. 验证日志文件
ls -l ~/mongodb/logs
12. 验证端口监听
podman exec -it mongodb /bin/bash
ss -tuln
13. 修改 etc/godco-api.yaml 中的 MongoDB 连接字符串
MonDB:Url: "mongodb://test1:111111@mongodb:27017/?tls=false&authSource=atomdco"DbName: "atomdco"
14. 运行 godco 容器
podman run -d \-p 8080:8080 \-v /path/to/your/etc:/app/etc \-v /path/to/your/static:/app/static \--network dco-net \--name dco-verification-app \godco:latest
15. 验证 godco 容器的日志
podman logs dco-verification-app

或者实时查看日志文件:

podman logs -f dco-verification-app
16. 使用 mongosh 连接到 MongoDB 并提供认证信息
  1. 获取 MongoDB 容器的 IP 地址

    podman inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' mongodb
    

    假设输出的 IP 地址为 10.89.0.5

  2. 连接到 MongoDB 并提供认证信息

    mongosh "mongodb://test1:111111@10.89.0.5:27017/?authSource=atomdco"
    
  3. 验证数据库

    show databases
    

    你应该能看到类似以下的输出:

    admin   0.000GB
    config  0.000GB
    local   0.000GB
    atomdco 0.000GB
    

通过这些步骤,确保 MongoDB 容器正确运行并加载配置文件,同时 godco 容器能够通过 Docker 网络成功连接到 MongoDB 容器。


希望这篇博文能帮助你顺利使用 Docker/Podman 部署 MongoDB 数据库,并解决常见的部署和使用问题。如果你有任何疑问或遇到其他问题,请随时留言提问。

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

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

相关文章

Games104——游戏引擎Gameplay玩法系统:基础AI

这里写目录标题 寻路/导航系统NavigationWalkable AreaWaypoint NetworkGridNavigation Mesh(寻路网格)Sparse Voxel Octree Path FindingDijkstra Algorithm迪杰斯特拉算法A Star(A*算法) Path Smoothing Steering系统Crowd Simu…

Win11非虚拟机安装ISE14.7

官网下载6.18GB 的 Full Installer for Windows 7/XP/Server解压后运行安装程序不勾选Enable WebTalk to send software, IP ...安装程序卡死在ISE:Configure WebTalk,此时打开任务管理器,在详情中找到xwebtalk,右键结束任务。安装程序继续进…

从0开始达芬奇(3.8)

剪视频有主次之分,主就是Aroll,次就是Broll。 智能媒体夹: 媒体池的智能媒体夹部分可以很好区分主次。这个相当于智能搜索,当有大量的素材时,可以为这些素材标明信息,下次使用不需要反复看,直…

python算法和数据结构刷题[3]:哈希表、滑动窗口、双指针、回溯算法、贪心算法

回溯算法 「所有可能的结果」,而不是「结果的个数」,一般情况下,我们就知道需要暴力搜索所有的可行解了,可以用「回溯法」。 回溯算法关键在于:不合适就退回上一步。在回溯算法中,递归用于深入到所有可能的分支&…

基于Java(SpringBoot)+MySQL+Vue实现的平行志愿录取系统

基于spring bootvue实现的平行志愿录取系统 1.项目简介 这两天干上高考出成绩,有不少亲戚家的孩子今年高考,和我询问关于报志愿的问题。老家河北今年是采用所谓的平行志愿。我看了很多的资料才明白什么叫所谓的“平行志愿”。 整个流程好像很是复杂。…

chrome浏览器chromedriver下载

chromedriver 下载地址 https://googlechromelabs.github.io/chrome-for-testing/ 上面的链接有和当前发布的chrome浏览器版本相近的chromedriver 实际使用感受 chrome浏览器会自动更新,可以去下载最新的chromedriver使用,自动化中使用新的chromedr…

Redis常见数据类型与编码方式

⭐️前言⭐️ 本小节围绕Redis中常见的数据类型与编码方式展开。 🍉欢迎点赞 👍 收藏 ⭐留言评论 🍉博主将持续更新学习记录收获,友友们有任何问题可以在评论区留言 🍉博客中涉及源码及博主日常练习代码均已上传GitHu…

win编译openssl

一、perl执行脚本 1、安装perl脚本 perl安装 2、配置perl脚本 perl Configure VC-WIN32 no-asm no-shared --prefixE:\openssl-x.x.x\install二、编译openssl 1、使用vs工具编译nmake 如果使用命令行nmake编译会提示“无法打开包括文件: “limits.h”“ 等错误信息 所以…

【Kubernetes Pod间通信-第2篇】使用BGP实现Pod到Pod的通信

Kubernetes中Pod间的通信 本系列文章共3篇: 【Kubernetes Pod间通信-第1篇】在单个子网中使用underlay网络实现Pod到Pod的通信【Kubernetes Pod间通信-第2篇】使用BGP实现Pod到Pod的通信(本文介绍)【Kubernetes Pod间通信-第3篇】Kubernetes中Pod与ClusterIP服务之间的通信…

< 自用文儿 > 下载 MaxMind GeoIP Databases 对攻击的 IP 做 地理分析

起因 两个 VPM/VPS,安装了 fail2ban 去拦截密码穷举攻击。每天的记录都在增长,以前复制屏幕输出就行,一屏的内容还容易粘贴出来的。昨天已经过 500 条,好奇 fail2ban 是如何存储这些内容的?就发现它在使用 SQLite3 数…

SpringCloudGateWay和Sentinel结合做黑白名单来源控制

假设我们的分布式项目,admin是8087,gateway是8088,consumer是8086 我们一般的思路是我们的请求必须经过我们的网关8088然后网关转发到我们的分布式项目,那我要是没有处理我们绕过网关直接访问项目8087和8086不也是可以&#xff1…

C#面试常考随笔12:游戏开发中常用的设计模式【C#面试题(中级篇)补充】

C#面试题(中级篇),详细讲解,帮助你深刻理解,拒绝背话术!-CSDN博客 简单工厂模式 优点: 根据条件有工厂类直接创建具体的产品 客户端无需知道具体的对象名字,可以通过配置文件创建…

数字人|通过语音和图片来创建高质量的视频

简介 arXiv上的计算机视觉领域论文: AniPortrait: Audio-Driven Synthesis of Photorealistic Portrait Animation AniPortrait:照片级真实感肖像动画的音频驱动合成 核心内容围绕一种新的人像动画合成框架展开。 研究内容 提出 AniPortrait 框架&a…

数据结构实战之线性表(三)

目录 1.顺序表释放 2.顺序表增加空间 3.合并顺序表 4.线性表之链表实现 1.项目结构以及初始代码 2.初始化链表(不带头结点) 3.链表尾部插入数据并显示 4.链表头部插入数据 5.初始化链表(带头结点) 6.带头结点的链表头部插入数据并显示 7.带头结…

Docker使用指南(一)——镜像相关操作详解(实战案例教学,适合小白跟学)

目录 1.镜像名的组成 2.镜像操作相关命令 镜像常用命令总结: 1. docker images 2. docker rmi 3. docker pull 4. docker push 5. docker save 6. docker load 7. docker tag 8. docker build 9. docker history 10. docker inspect 11. docker prune…

C++基础day1

前言:谢谢阿秀,指路阿秀的学习笔记 一、基础语法 1.构造和析构: 类的构造函数是一种特殊的函数,在创建一个新的对象时调用。类的析构函数也是一种特殊的函数,在删除所创建的对象时调用。 构造顺序:父类->子类 析…

尝试ai生成figma设计

当听到用ai 自动生成figma设计时,不免好奇这个是如何实现的。在查阅了不少资料后,有了一些想法。参考了:在figma上使用脚本自动生成色谱 这篇文章提供的主要思路是:可以通过脚本的方式构建figma设计。如果我们使用ai 生成figma脚本…

【PyQt】pyqt小案例实现简易文本编辑器

pyqt小案例实现简易文本编辑器 分析 实现了一个简单的文本编辑器,使用PyQt5框架构建。以下是代码的主要功能和特点: 主窗口类 (MyWindow): 继承自 QWidget 类。使用 .ui 文件加载用户界面布局。设置窗口标题、状态栏消息等。创建菜单栏及其子菜单项&…

【电脑系统】电脑突然(蓝屏)卡死发出刺耳声音

文章目录 前言问题描述软件解决方案尝试硬件解决方案尝试参考文献 前言 在 更换硬盘 时遇到的问题,有时候只有卡死没有蓝屏 问题描述 更换硬盘后,电脑用一会就卡死,蓝屏,显示蓝屏代码 UNEXPECTED_STORE_EXCEPTION 软件解决方案…

【大模型LLM面试合集】大语言模型架构_Transformer架构细节

Transformer架构细节 1.Transformer各个模块的作用 (1)Encoder模块 经典的Transformer架构中的Encoder模块包含6个Encoder Block. 每个Encoder Block包含两个⼦模块, 分别是多头⾃注意⼒层, 和前馈全连接层. 多头⾃注意⼒层采⽤的是⼀种Scaled Dot-Pr…