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')
文章评论