Docker安装MongoDB详细步骤:从拉取镜像到数据持久化完整指南

本文提供使用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         # 禁用认证(核心:关闭密码验证)

  

睡眠和休息丧失了时间,却取得了明天工作的精力。 —— 毛泽东
0 不喜欢
说说我的看法 -
全部评论(
没有评论
关于
本网站专注于 Java、数据库(MySQL、Oracle)、Linux、软件架构及大数据等多领域技术知识分享。涵盖丰富的原创与精选技术文章,助力技术传播与交流。无论是技术新手渴望入门,还是资深开发者寻求进阶,这里都能为您提供深度见解与实用经验,让复杂编码变得轻松易懂,携手共赴技术提升新高度。如有侵权,请来信告知:hxstrive@outlook.com
其他应用
公众号