Docker 部署 MongoDB 数据库
MongoDB 是一种开源的 NoSQL 数据库系统,它提供了高性能、可扩展性和高可用性。它与传统的关系型数据库系统不同,MongoDB 使用了文档存储模型,将数据存储在 JSON-like 的文档中。这种文档存储模型使得 MongoDB 很容易存储和查询复杂的数据结构,并提供了较高的查询性能。
MongoDB 的主要功能包括:
- 集合:类似于关系型数据库中的表,集合是存储文档的逻辑容器。
- 文档:类似于关系型数据库中的行,文档是由字段 - 值对组成的 JSON 文档。
- 索引:MongoDB 支持多种类型的索引,用于加快查询速度。
- 自动分片:MongoDB 支持自动分片,可以将数据水平地分布在多个服务器上,以提高性能和可扩展性。
MongoDB 支持多种编程语言,包括 C++、C#、Java、Node.js、Perl、PHP、Python 和 Ruby。它可以在 Windows、Linux 和 MacOS 等操作系统上运行。
DockerHub: mongo | DockerHub
Docker-Compose
stack.yml
version: "3.1"
services:
mongo:
image: mongo:6.0
container_name: "some-mongo"
restart: always
command:
- --serviceExecutor adaptive
- --wiredTigerCacheSizeGB 1.5
- --config /etc/mongo/mongod.conf
environment:
MONGO_INITDB_ROOT_USERNAME: root
MONGO_INITDB_ROOT_PASSWORD: example
volumes:
- ./mongo-data:/data/db
- /etc/localtime:/etc/localtime
ports:
- "27017:27017"
mongo-express:
image: mongo-express
restart: always
ports:
- 8081:8081
environment:
ME_CONFIG_MONGODB_ADMINUSERNAME: root
ME_CONFIG_MONGODB_ADMINPASSWORD: example
ME_CONFIG_MONGODB_URL: mongodb://root:example@mongo:27017/
运行 docker-compose -f stack.yml up 启动服务,访问 http://localhost:8080 或者 http://host-ip:8080 进入管理页面。
常用命令:
- 启动:
docker-compose -f stack.yml up - 后台启动:
docker-compose -f stack.yml up -d - 检查状态:
docker-compose ps - 停止:
docker-compose -f stack.yml stop - 停止并删除:
docker-compose -f stack.yml down - 查看日志:
docker logs some-mongo
Docker
$ docker run -itd --name mongodb -p 27017:27017 -v /my/own/datadir:/data/db --restart=always -e MONGO_INITDB_ROOT_USERNAME=root -e MONGO_INITDB_ROOT_PASSWORD=my-secret-pw mongo:latest
some-mongo容器名称my-secret-pw设置的 root 用户的密码-p是指定宿主端口:容器内服务端口,默认27017-v设置数据库文件的映射,把宿主机上的目录/my/own/datadir与容器内的/data/db作关联关系