在 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的运行环境。