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

proxmox 解决docker容器MongoDB创建报错MongoDB 5.0+ requires a CPU with AVX support

目录

最简单直接的方式

测试MongoDB docker compose的安装shell脚本

验证访问


最简单直接的方式

让虚拟机直接使用宿主机的物理 CPU 功能标志。

  1. 打开 Proxmox Web UI。

  2. 选择你的 VM → 硬件 (Hardware)CPU → 点击 编辑 (Edit)

  3. 将 CPU 类型改为 host

  4. 确认并重启 VM。

然后进入虚拟机查看

cat /proc/cpuinfo | grep -i avx

注意开放端口/关闭防火墙

测试MongoDB docker compose的安装shell脚本

#!/bin/bash# 业务库和账号参数
user="test"
pass="admin321"
dbport=27017
dbname="aps"
rootuser="root"
rootpass="Test@1225"# 创建目录
mkdir -p /mnt/diska/mongodb-aps/data
mkdir -p /mnt/diska/mongodb-aps/log
mkdir -p /mnt/diska/mongodb-aps/conf# 修改目录权限,避免日志写入报错
chown -R 999:999 /mnt/diska/mongodb-aps/log
chmod 777 /mnt/diska/mongodb-aps/log# mongod.conf
cat > /mnt/diska/mongodb-aps/conf/mongod.conf <<EOF
storage:dbPath: /data/db
systemLog:destination: filepath: /var/log/mongodb/mongod.loglogAppend: true
net:port: ${dbport}bindIp: 0.0.0.0
security:authorization: enabled
processManagement:fork: false
EOF# docker-compose.yml
cat > /mnt/diska/mongodb-aps/docker-compose.yml <<EOF
version: '3.8'services:mongodb:image: mongo:latestcontainer_name: mongodb-apsrestart: alwaysenvironment:MONGO_INITDB_ROOT_USERNAME: ${rootuser}MONGO_INITDB_ROOT_PASSWORD: ${rootpass}ports:- "${dbport}:27017"volumes:- /mnt/diska/mongodb-aps/data:/data/db- /mnt/diska/mongodb-aps/conf/mongod.conf:/etc/mongod.conf- /mnt/diska/mongodb-aps/log:/var/log/mongodbcommand: ["mongod", "--config", "/etc/mongod.conf"]
EOF# 启动服务
cd /mnt/diska/mongodb-aps
docker compose down
docker compose up -d# 等待MongoDB容器初始化完成(循环等待端口可用)
echo "等待MongoDB启动..."
for i in {1..20}
dodocker exec mongodb-aps mongosh admin -u "${rootuser}" -p "${rootpass}" --eval "db.adminCommand('ping')" &>/dev/nullif [ $? -eq 0 ]; thenecho "MongoDB 已启动!"breakfisleep 2
done# 再次检查容器是否运行中
if ! docker ps | grep -q mongodb-aps; thenecho "MongoDB容器启动失败!请检查日志。"exit 1
fi# 创建数据库和业务账号(幂等,已存在不报错)
docker exec mongodb-aps mongosh admin -u "${rootuser}" -p "${rootpass}" --eval "
db = db.getSiblingDB('${dbname}');
if (!db.getUser('${user}')) {db.createUser({user: '${user}', pwd: '${pass}', roles:[{role:'dbOwner', db:'${dbname}'}]});
} else {print('用户已存在');
}
"echo "MongoDB及业务库初始化完成!"

验证访问

docker run --rm -it mongo mongosh "mongodb://test:admin321@$(hostname -i):27017/aps"

http://www.dtcms.com/a/292575.html

相关文章:

  • 【集群】MySQL的主从复制了解吗?会有延迟吗,原因是什么?
  • 【无标题】AI视频-剧本篇学习笔记
  • 【面试】Redis分布式ID与锁的底层博弈:高并发下的陷阱与破局之道
  • 基于AD7147电容触摸芯片与STC12C5A60S2单片机方案
  • 美颜图像开源数据集
  • AI 学习总结(3)—— AI 智能体零基础入门
  • python学习-读取csv大文件
  • SSL VPN技术
  • 拼多多视觉算法面试30问全景精解
  • 分布在内侧内嗅皮层(MEC)的边界细胞对NLP中的深层语义分析的积极影响和启示
  • ESP32-Cam三脚架机器人:DIY你的智能移动监控平台
  • 性能测试-从0到1搭建性能测试环境Jmeter+Grafana+influxDB+Prometheus+Linux
  • Redis RDB 持久化实现原理,请求是否阻塞,如何处理阻塞请求
  • 【运维】SGLang 安装指南
  • Vue的ubus emit/on使用
  • 嵌入式 Qt 开发:实现开机 Logo 和无操作自动锁屏
  • 项目集成zustand后,如何构建和使用,以及devtools函数。
  • 新能源工厂的可视化碳中和实验:碳足迹追踪看板与能源调度策略仿真
  • React 项目性能瓶颈分析
  • SCSAI项目管理智能体设计方案核心设计思路:分层开放架构
  • GitOps实践:基于Argo CD的Kubernetes集群应用持续交付实战指南
  • 智慧能源驱动数字孪生重介选煤新模式探索
  • 力扣 78.子集
  • 【element-ui el-table】多选表格勾选时默认勾选了全部,row-key绑定异常问题解决
  • EasyMan 数字人服务全面焕新,交互型AI数字人助推孪生体验全新升级
  • 等保2.0详解:筑牢数字时代安全基石
  • 【GIT】基础知识及基本应用
  • 如何加固Endpoint Central服务器的安全?(上)
  • Linux驱动-中断-共享队列
  • 【size_t 类型转换】ans = max(ans, (int)occ.size());