使用 Docker 安装 MongoDB

在 OpenCloudOS Server 9 上安装 MongoDB 可能会遇到一些包管理上的问题。MongoDB 官方并未为所有 Linux 发行版提供预编译的 RPM 包,尤其是像 OpenCloudOS 这样的较小或特定发行版。

. 使用 Docker 安装 MongoDB

如果您不想或不能在 OpenCloudOS 上直接安装 MongoDB,使用 Docker 是一个很好的选择。

1 安装 Docker

如果尚未安装 Docker,可以通过以下命令安装 Docker:

sudo yum install -y dnf
sudo dnf install -y dnf-plugins-core
sudo dnf config-manager --set-enabled extras
sudo dnf install -y docker
sudo systemctl start docker
sudo systemctl enable docker

2 拉取 MongoDB 镜像

使用 Docker 拉取 MongoDB 镜像:

sudo docker pull mongo

3 运行 MongoDB 容器

运行 MongoDB 实例:

sudo docker run --name mongodb -d -p 27017:27017 mongo
#auth启动权限验证
#-v配置数据库路径
sudo docker run -d \
  --name mongodb \
  -p 27017:27017 \
  -v /path/to/your/data:/data/db \
  mongo --auth
#检查 MongoDB 容器是否正在运行
sudo docker ps
#CONTAINER ID   IMAGE     COMMAND                  CREATED        STATUS        PORTS                                           NAMES
#ae5c53d6c1d6   mongo     "docker-entrypoint.s…"   19 hours ago   Up 19 hours   0.0.0.0:27017->27017/tcp, :::27017->27017/tcp   mongodb

3.4 访问 MongoDB

现在,您可以通过 MongoDB Shell 访问 MongoDB,使用以下命令:
进入容器的目的
使用 sudo docker exec -it mongodb /bin/bash 进入容器可以让你:

  • 在容器内部执行命令(例如,查看文件,运行程序等)。
  • 进行故障排除,检查日志,或修改容器中的配置。
  • 直接与容器的操作系统环境进行互动。
sudo docker exec -it mongodb mongosh 
#或者下方命令
# /bin/bash 是 Bash Shell 的路径,这意味着你将获得一个交互式的 Shell 会话,可以在其中执行命令。
sudo docker exec -it mongodb /bin/bash

sudo docker exec -it mongodb /bin/bash 命令中,/bin/bash 的含义是你希望在名为 mongodb 的 Docker 容器中启动一个 Bash Shell 环境。下面是这个命令中各部分的详细解释:

命令分解

  1. sudo:以超级用户权限运行命令,这对某些 Docker 操作是必须的,特别是在没有将当前用户添加到 Docker 用户组的情况下。

  2. docker exec:这个命令用于在运行中的容器内部执行命令。与 docker run 不同,docker exec 是在一个已经存在并正在运行的容器中执行命令。

  3. -it

    • -i:表示以交互模式运行。即使没有连接到终端,容器也会保持标准输入处于开放状态。
    • -t:表示分配一个伪终端(pseudo-TTY)。这使得你能通过命令行与容器进行交互。
  4. mongodb:这是你要进入的 Docker 容器的名称或 ID。在这个例子中,假设你有一个名为 mongodb 的容器正在运行。

  5. /bin/bash:这部分指定你希望在容器中执行的命令。/bin/bash 是 Bash Shell 的路径,这意味着你将获得一个交互式的 Shell 会话,可以在其中执行命令。

在 MongoDB 容器内与 MongoDB 相关的可执行文件,包括:

  • mongod:MongoDB 的主进程。
  • mongodump:用于备份 MongoDB 数据的工具。
  • mongoexport:用于导出 MongoDB 数据的工具。
  • mongoimport:用于导入数据到 MongoDB 的工具。
  • mongosh:MongoDB Shell 的最新版本(推荐使用)。

然而,您没有找到名为 mongo 的命令。请注意,mongosh 是 MongoDB 的新 Shell,取代了以前的 mongo 命令,您可以使用它来连接和操作 MongoDB 数据库。

使用 mongosh 连接 MongoDB

您可以尝试使用 mongosh 连接到 MongoDB 实例。请在容器内输入以下命令:

mongosh

如果连接成功,您将看到 MongoDB 提示符,您可以开始执行数据库命令。

检查 MongoDB 状态

mongosh 中,您可以运行以下命令来检查 MongoDB 的状态:

db.runCommand({ ping: 1 })

如果返回结果为 { "ok": 1 },则表示 MongoDB 正常运行。

如果您需要使用旧版的 mongo Shell

若您需要使用旧版的 mongo Shell(而不是 mongosh),您可能需要从官方 MongoDB 厂商的镜像中获取。如果您希望使用旧版本的 mongo,可以考虑以下方法:

  1. 拉取旧版的 MongoDB 镜像:您可以选择特定版本的 MongoDB 镜像,例如:

    sudo docker pull mongo:4.4
    

    这个版本通常会包含旧版的 mongo Shell。

  2. 进入容器并查看可用的命令:在拉取并创建新容器后,您可以重复之前的步骤,检查 /usr/bin 中是否存在 mongo

退出容器

完成操作后,您可以通过输入 exit 来退出容器的终端。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容