在 M1 Mac 上使用 Docker Compose 快速搭建 MongoDB 环境

这篇文章的内容 (Zhè de

    • M1 MacでMongoDBを環境構築した時の備忘録

 

    おそらくM1じゃなくても動く(未検証)

補充

我已确认的电脑规格。

    • チップ:Apple M1

 

    macOS:Sonoma

Docker的配置设置

这是Docker Compose的配置文件。

services:
  mongo:
    image: mongo:latest
    environment:
      MONGO_INITDB_ROOT_USERNAME: root
      MONGO_INITDB_ROOT_PASSWORD: example
    ports:
      - "27017:27017"
    tty: true
    restart: always
    volumes:
      - ./data/db:/data/db
      - ./data/configdb:/data/configdb

请执行以下命令来启动容器。

docker compose up -d

说明

畫面

image: mongo:latest

最新的稳定版本图像将被带来。
本次仅用于操作确认而选择了latest,但若在实际项目中使用,请务必详细指定版本。

环境变量

    environment:
      MONGO_INITDB_ROOT_USERNAME: root
      MONGO_INITDB_ROOT_PASSWORD: example

在初始设置阶段,会生成超级用户“root”。
root用户将保存在认证数据库中。
要查看用户列表,请执行以下查询。

// ユーザー情報を確認する
use admin
db.system.users.find()

認證資料庫是什麼?

MongoDB有一个用于管理登录的用户的数据库。
通过设置角色,可以对每个数据库进行访问限制。

请查看官方网站以获取更详细信息
MongoDB 认证数据库

MongoDB的端口号是多少?

    ports:
      - "27017:27017"

指定宿主机和容器之间的端口映射。左边是宿主机(Mac),右边是Docker容器。

按照以下方式用中文进行释义:

tty: 真

tty: true

当容器在后台运行时,TTY可以保持标准输入打开状态。

TTY:你在做什么呢?

我正在将终端输入内容传送到容器中,并使其能够执行命令。

$ docker compose exec mongo bash
# コマンド実行できない
service "mongo" is not running container #1
make: *** [bash] Error 1

重新启动政策

restart: always

重新启动:always是重新启动策略的设定。当容器停止、Docker守护进程重新启动或容器崩溃时,将自动重新启动。

音量

    volumes:
      - ./data/db:/data/db
      - ./data/configdb:/data/configdb

在主机和容器之间挂载卷。这样可以确保数据的持久性。这里设置了两个挂载点。

./data/db是用于存放MongoDB的数据文件的。
./data/configdb是用于存放MongoDB的配置文件的。

音量是什么?

音量是用于存储数据并在容器之间共享的机制。主要用于以下目的:

使用卷来保存和永久化容器的数据,通过使用卷,可以确保容器数据的持久性。如果没有设置卷,Docker容器的数据是临时性的,当容器被删除时,其中的数据也会丢失。

为了在多个容器之间共享数据,使用卷 (Volume)。例如,如果多个容器需要访问同一数据库的数据,则可以通过共享卷来共享数据。

确认操作

在终端上进行操作验证

如果启动应用程序比较麻烦,有时候在CLI上执行命令会更快。要连接到MongoDB,首先进入容器,然后连接到数据库。

# mongoコンテナに入る
$ docker compose exec mongo bash
# MongoDBに接続
root@xxx:/# mongosh --port 27017  --authenticationDatabase -u "root" -p
Enter password: ******* # パスワードはexample

我成功登录了。
试着在员工集合中添加一个文档来测试。

test> db.employee.insertOne({name:"従業員A", age: 20})
{
  acknowledged: true,
  insertedId: ObjectId("655f0fc5d0aeeb23c03cbfa0")
}

在Studio 3T上进行操作确认

Studio 3T是一款用于MongoDB的图形界面(GUI)工具。这个工具具有直观的可视化界面,非常方便管理多个MongoDB数据库。

引入方式

请访问官方网站,点击“下载”按钮进行下载并启动。
下载完成后,需在初始设置中创建免费账户。

 

连接

在启动 Studio 3T 后,您可以通过 Connect>New Connection 设置 URL 并进行连接。

#URI
mongodb://root:example@localhost:27017

确认操作

您可以使用IntellShell来执行查询。
结果可以选择以树形式、表格形式、JSON形式呈现。在图片中,我们选择了JSON形式,但您可以选择任何您喜欢的显示方式。

总结

我使用Docker Compose来配置MongoDB的运行环境。

广告
将在 10 秒后关闭
bannerAds