Docker下安装MongoDB、并设置数据库存储路径、密码访问等笔记

2022-03-31 2003点热度 0人点赞 0条评论

MongoDB 是一个免费的开源跨平台面向文档的 NoSQL 数据库程序。

拉取mongo镜像

# 搜到docker镜像,一般来说是第一个
docker search mongo

# 拉取镜像,默认是最新版本
docker pull docker

# 如果需要拉取特定的版本,例如4
docker pull docker:4

# 查看本地镜像
docker images

运行容器

docker run --name mongo --restart=always -p 27017:27017 -v /storage/docker/mongo/db:/data/db -d mongo:4 --auth

# 可通过docker ps查看容器启动情况

参数说明:

  • -p 27017:27017 :映射容器服务的 27017 端口到宿主机的 27017 端口。外部可以直接通过 宿主机 ip:27017 访问到 mongo 的服务。
  • -v /storage/docker/mongo/db:/data/db: 映射本地路径/storage/docker/mongo/db为数据存储路径,预先请建好目录
  • --auth:需要密码才能访问容器服务。

通过docker ps如果看到mongo容器的status不是UP,可以使用docker logs mongo查看日志,我安装过程中就遇到错误:

MongoDB 5.0+ requires a CPU with AVX support

看来我的虚拟机不支持MongoDB 5.0+,转而使用了MongoDB4

# 查看mongo的containerID
docker ps

# 然后删除
docker rm -f <mongoDBcontanerID>

# 安装MongoDB4
docker pull mongo:4
docker run --name mongo --restart=always -p 27017:27017 -v /storage/docker/mongo/db:/data/db -d mongo:4 --auth

设置密码访问

创建一个创建一个名为 admin,密码为 123456 的管理员用户。

# 进入容器操作
docker exec -it mongo mongo admin

# 创建一个名为 admin,密码为 123456 的用户。
>  db.createUser({ user:'admin',pwd:'123456',roles:[ { role:'userAdminAnyDatabase', db: 'admin'},"readWriteAnyDatabase"]});

# 尝试使用上面创建的用户信息进行连接。
> db.auth('admin', '123456')

 

admin

这个人很懒,什么都没留下

文章评论

您需要 登录 之后才可以评论