> 技术文档 > proxmox 解决docker容器MongoDB创建报错MongoDB 5.0+ requires a CPU with AVX support_ongodb 5.0+ requires a cpu with avx support, and y

proxmox 解决docker容器MongoDB创建报错MongoDB 5.0+ requires a CPU with AVX support_ongodb 5.0+ requires a cpu with avx support, and y

目录

最简单直接的方式

测试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=27017dbname=\"aps\"rootuser=\"root\"rootpass=\"Test@1225\"# 创建目录mkdir -p /mnt/diska/mongodb-aps/datamkdir -p /mnt/diska/mongodb-aps/logmkdir -p /mnt/diska/mongodb-aps/conf# 修改目录权限,避免日志写入报错chown -R 999:999 /mnt/diska/mongodb-aps/logchmod 777 /mnt/diska/mongodb-aps/log# mongod.confcat > /mnt/diska/mongodb-aps/conf/mongod.conf < /mnt/diska/mongodb-aps/docker-compose.yml </dev/null if [ $? -eq 0 ]; then echo \"MongoDB 已启动!\" break fi sleep 2done# 再次检查容器是否运行中if ! docker ps | grep -q mongodb-aps; then echo \"MongoDB容器启动失败!请检查日志。\" exit 1fi# 创建数据库和业务账号(幂等,已存在不报错)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\"