Docker 安装 MongoDB
MongoDB 是一个免费的开源跨平台面向文档的 NoSQL 数据库程序。它使用 JSON 格式存储数据,支持各种编程语言, 是目前最流行的 NoSQL 数据库之一。
1. 查看可用的 MongoDB 版本
访问 MongoDB 镜像库地址:https://dockers.xuanyuan.me/image/library/mongo
可以通过标签列表查看其他版本的 MongoDB,默认是最新版本 mongo:latest。
此外,我们还可以用 docker search mongo 命令来查看可用版本:
$ docker search mongo
NAME DESCRIPTION STARS OFFICIAL AUTOMATED
mongo MongoDB document databases ... 1989 [OK]
mongo-express Web-based MongoDB admin int... 22 [OK]
mvertes/alpine-mongo light MongoDB container 19 [OK]
mongooseim/mongooseim-docker MongooseIM server the lates... 9 [OK]
torusware/speedus-mongo Always updated official Mon... 9 [OK]
jacksoncage/mongo Instant MongoDB sharded cluster 6 [OK]
mongoclient/mongoclient Official docker image for M... 4 [OK]
jadsonlourenco/mongo-rocks Percona Mongodb with Rocksd... 4 [OK]
2. 拉取 MongoDB 镜像
这里我们拉取官方的最新版本的镜像:
$ docker pull mongo:latest
3. 查看本地镜像
使用以下命令来查看是否已安装了 mongo:
$ docker images
镜像信息
在输出中可以看到我们已经安装了最新版本(latest)的 mongo 镜像,包含以下信息:
- REPOSITORY:显示为 mongo
- TAG:显示为 latest
- IMAGE ID:镜像的唯一标识
- CREATED:创建时间
- SIZE:镜像大小
4. 运行容器
安装完成后,我们可以使用以下命令来运行 mongo 容器:
docker run -d -p 27017:27017 --name my-mongo-container mongo
参数说明
-d
:后台运行容器-p 27017:27017
:将容器的 27017 端口映射到主机的 27017 端口--name my-mongo-container
:指定容器名称
5. 验证安装
最后我们可以通过 docker ps 命令查看容器的运行信息:
# docker ps
CONTAINER ID IMAGE ... PORTS NAMES
d53e5d57668b mongo ... :::27017->27017/tcp my-mongo-container
验证成功
你应该能够看到名为 my-mongo-container 的 MongoDB 容器正在运行。
6. 连接到 MongoDB
接下来我们可以使用 MongoDB 客户端(例如 mongo shell)连接到运行中的 MongoDB 容器。
使用 mongosh 连接
你可以使用以下命令连接到 MongoDB:
$ mongosh --host 127.0.0.1 --port 27017
Current Mongosh Log ID: 656d34911ff5455b0c3afdc0
Connecting to: mongodb://127.0.0.1:27017/?directConnection=true&serverSelectionTimeoutMS=2000&appName=mongosh+2.1.0
Using MongoDB: 7.0.4
Using Mongosh: 2.1.0
For mongosh info see: https://docs.mongodb.com/mongodb-shell/
...
这将连接到本地主机的 27017 端口,你可以根据之前映射的端口进行调整。
进入容器命令行
进入 MongoDB 容器的 bash shell 命令如下:
docker exec -it my-mongo-container bash
7. 清理容器
记得在不再需要时停止和删除容器,可以使用以下命令:
docker stop my-mongo-container
docker rm my-mongo-container
数据持久化
默认情况下,删除容器会同时删除数据。如果需要保留数据,请使用数据卷:
docker run -d -p 27017:27017 -v mongodb_data:/data/db --name my-mongo-container mongo