本文提供使用Docker安装MongoDB的完整教程,包括拉取MongoDB镜像(支持指定版本如6.0)、创建并运行容器、配置端口映射、实现数据持久化(使用Docker卷)以及连接数据库的详细步骤和命令示例。
以下为你详细介绍使用 Docker 安装 MongoDB 的步骤:
1. 拉取 MongoDB 镜像
你可以从 Docker Hub 拉取所需版本的 MongoDB 镜像。例如,若要拉取最新版本的 MongoDB 镜像,可使用以下命令:
docker pull mongo
例如:
root@g450:~# docker pull mongo
Using default tag: latest
latest: Pulling from library/mongo
2726e237d1a3: Pull complete
4113c9f6bc12: Pull complete
6bd25e6544db: Pull complete
114959114e76: Pull complete
74e29de52e16: Pull complete
a7aa415a3894: Pull complete
b4c1b5279c53: Pull complete
2d3498acb5d9: Pull complete
Digest: sha256:2c5f154f4e47ef5008c53ff0c9006b6f5c7d6b119c96015aba4136c50ef48b98
Status: Downloaded newer image for mongo:latest
docker.io/library/mongo:latest
若想拉取特定版本,比如 6.0 版本,可执行:
docker pull mongo:6.0
2. 创建并运行 MongoDB 容器
拉取镜像后,就可以创建并运行 MongoDB 容器了。运行容器时,可以根据需求自定义端口、数据存储路径等参数。以下是一个示例命令:
docker run -d --name my-mongo -p 27017:27017 mongo:6.0
各参数含义如下:
-
-d:让容器在后台运行。
-
--name my-mongo:为容器指定名称 my-mongo。
-
-p 27017:27017:将容器的 27017 端口映射到主机的 27017 端口,方便从主机访问 MongoDB 服务。
-
mongo:6.0:使用的 MongoDB 镜像版本。
3. 数据持久化(可选但推荐)
为防止容器被删除后数据丢失,可使用 Docker 卷来持久化存储 MongoDB 数据。首先创建一个 Docker 卷:
docker volume create mongo-data
例如:
root@g450:~# docker volume create mongo-data
mongo-data
接着在运行容器时挂载该卷:
docker run -d --name my-mongo -p 27017:27017 -v mongo-data:/data/db mongo:6.0
root@g450:~# docker run -d --name my-mongo -p 27017:27017 -v mongo-data:/data/db mongo
0978cb8411e8d306e50a77293a07e022be152b7ca0e87a4a0314a0afaf818af3
这里的 -v mongo-data:/data/db 表示将名为 mongo-data 的 Docker 卷挂载到容器内的 /data/db 目录,该目录是 MongoDB 存储数据的地方。
4. 连接到 MongoDB 数据库
容器运行后,你可以使用 MongoDB 客户端工具(如 mongo 或 mongosh )连接到数据库。如果使用 mongosh ,可以使用以下命令连接:
mongosh "mongodb://localhost:27017"
完整脚本示例
以下是将上述步骤整合的完整脚本示例:
docker-install-mongodb 使用 Docker 安装 MongoDB 的脚本
#!/bin/bash
# 拉取 MongoDB 6.0 镜像
docker pull mongo:6.0
# 创建 Docker 卷用于持久化存储数据
docker volume create mongo-data
# 创建并运行 MongoDB 容器
docker run -d --name my-mongo -p 27017:27017 -v mongo-data:/data/db mongo:6.0
# 等待一段时间,确保容器启动
sleep 10
# 尝试连接到 MongoDB 数据库
echo "尝试连接到 MongoDB 数据库..."
mongosh "mongodb://localhost:27017" <<EOF
show dbs
EOF
将上述脚本保存为 install_mongodb.sh,赋予执行权限并运行:
chmod +x install_mongodb.sh
./install_mongodb.sh
通过以上步骤,你就能使用 Docker 成功安装并运行 MongoDB 数据库。
注意了,下面是 docker 启动 mognodb 的命令示例:
示例1:
# 启动 MongoDB 容器(推荐 6.x 稳定版)
docker run -d \
--name mongodb-no-auth \
--restart=always \ # 开机自启
-p 27017:27017 \ # 端口映射:宿主机27017 → 容器27017
-v mongodb-data:/data/db \ # 数据持久化(避免容器删除数据丢失)
-e MONGO_INITDB_ROOT_USERNAME="" \ # 清空根用户名
-e MONGO_INITDB_ROOT_PASSWORD="" \ # 清空根密码
mongo:6.0 \
--bind_ip_all \ # 允许所有IP访问(默认只允许127.0.0.1)
--noauth # 禁用认证(核心:关闭密码验证)
示例2:
# 启动 MongoDB 容器(推荐 6.x 稳定版)
docker run -d \
--name mongodb-no-auth \
-p 27017:27017 \
-v mongodb-data:/data/db \
-e MONGO_INITDB_ROOT_USERNAME="" \ # 清空根用户名
-e MONGO_INITDB_ROOT_PASSWORD="" \ # 清空根密码
mongo:6.0 \
--bind_ip_all \ # 允许所有IP访问(默认只允许127.0.0.1)
--noauth # 禁用认证(核心:关闭密码验证)
