部署mongo容器单机
- [1. 拉取镜像](#1. 拉取镜像)
- [2. 创建目录用来存放mongo数据](#2. 创建目录用来存放mongo数据)
- 3.初始化数据库和用户
- [4. 测试](#4. 测试)

1. 拉取镜像
bash
podman pull mongo

2. 创建目录用来存放mongo数据
bash
mkdir ~/mongodb-data
bash
podman run -d \
--name mongodb \
-p 27017:27017 \
-v ~/mongodb-data:/data/db \
-e MONGO_INITDB_ROOT_USERNAME=root \
-e MONGO_INITDB_ROOT_PASSWORD=123456 \
--restart=always \
mongo
3.初始化数据库和用户
bash
# 直接在宿主机上执行mongosh,注意因为本案例使用了mongo 8.2.4版本,有mongosh,如果低于6,那么使用mongo
podman exec -it mongodb mongosh
bash
// 步骤1:认证root账号(已完成可跳过)
use admin;
db.auth("root", "123456");
// 步骤2:切换到xiongwu库(要给哪个库创建用户,就先切换到哪个库)
use xiongwu;
// 步骤3:创建专属业务用户(示例:用户名 xiongwu,密码 xiongwu_123456)权限:对xiongwu库拥有读写权限
db.createUser({
user: "xiongwu",
pwd: "xiongwu_123456",
roles: [
{ role: "readWrite", db: "xiongwu" }
]
});
4. 测试
建表插入数据,查询数据,测试下可用性
bash
xiongwu> db.test.insert({ name: "test", value: 123 });
DeprecationWarning: Collection.insert() is deprecated. Use insertOne, insertMany, or bulkWrite.
{
acknowledged: true,
insertedIds: { '0': ObjectId('69835e5874372e578a8ce5b0') }
}
xiongwu> show collections;
test
xiongwu> show tables
test
xiongwu> db.test.find()
[
{ _id: ObjectId('69835e5874372e578a8ce5b0'), name: 'test', value: 123 }
]
xiongwu>
以上都正常,那么说明,这个环境可以用了。
本地可以看到mongo的数据库文件
