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 功能标志。
-
打开 Proxmox Web UI。
-
选择你的 VM → 硬件 (Hardware) → CPU → 点击 编辑 (Edit)。
-
将 CPU 类型改为 host。
-
确认并重启 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\"