哥伦布

解决docker中mongo报Restarting (132) 5 seconds ago

报的一直自动重启
原因是自建服务器的机器不支持avx指令
可以通过cat /proc/cpuinfo | grep avx or sudo cat /proc/cpuinfo | grep avx
查看你的系统是否支持avx 指令 ,如果有匹配的值说明是支持avx的,如果返回是空的,说明不支持avx。
将mongo 的版本下调至4.4版本。因为最新的mongo只能在支持amd64-avx的机器上运行,而4.4的版本可以在没有avx的机器运行的 ( 例如:docker pull mongo:4.4 )
删除原先的latest或不删按版本运行
image

如下
#支持avx的机器
docker pull mongo:latest

mkdir -p /usr/docker/mongodb/data
mkdir -p /usr/docker/mongodb/conf

docker run  \
-p 27017:27017 \
--name mongo \
-v /usr/docker/mongodb/data:/data/db \
-v /usr/docker/mongodb/conf:/etc/mongo
--restart always \
-d mongo:latest

#不支持avx的机器
docker pull mongo:4.4
docker run -itd --name mongo -p 27017:27017 mongo:4.4 --auth

// 参数解释
--auth:需要密码才能访问容器服务。
#数据库肯定要用户名密码才能访问,所以需要先创建一个用户,首先先进入docker下的mongo
docker exec -it mongo mongo admin
#然后创建一个用户,设置密码,并赋值该用户对数据库的操作权限,如果是为其它数据库创建用户是一样的操作,就是把db的值对应到数据库名
# 创建一个名为 admin,密码为123456的用户。
>  db.createUser({user:'英文用户名',pwd:'密码',roles:['root']})

# 尝试使用上面创建的用户信息进行连接。
> db.auth('英文用户名', '密码')
#接着,通过命令切换到admin数据库下
use admin

#输入命令db.stats() 或者 show users,你可能会遇到错误 not authorized on admin to execute command…
如果报错了,那么说明此时还没有操作权限,需要进一步创建信息
db.auth("dev", "123456")
db.grantRolesToUser("dev", [ { role: "readWrite", db: "admin" } ])

成功
image

posted @   南柯Dream丶  阅读(594)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 通过 API 将Deepseek响应流式内容输出到前端
· AI Agent开发,如何调用三方的API Function,是通过提示词来发起调用的吗
点击右上角即可分享
微信分享提示