今天來點簡單一點的,
我們在 D10 - Database by Docker 時介紹了如何用 Docker 架設身為關聯式資料庫的 MariaDB,
相對於關聯式資料庫,NoSQL 是另一種常見的選擇,適合用在需要彈性格式的資料上,
NoSQL 最明顯的特色,就是可以輕鬆寫入巢狀結構的資料,每筆資料就像是 JavsScript 的物件 {}
一樣,
NoSQL 也有很多種不同的軟體或服務,一個很知名的就是 MongoDB,
今天讓我們來看看如何透過 Docker 來架設 MongoDB。
一樣搜尋現成的 docker image,mongo 也有被列入官方 image 的其中之一,
我們接下來就看看需要在 docker-compose 中定義哪些東西:
跟 MariaDB 一樣,需要給予一些基本的設定:
# .env
MONGO_INITDB_ROOT_USERNAME=root
MONGO_INITDB_ROOT_PASSWORD=your-root-password
MongoDB 預設使用的是 Port 27017,
另外我們把 Volume 綁在 ~/database/mongo
路徑下,
# docker-compose.yml
version: "3"
services:
mongo:
image: mongo:6
restart: unless-stopped
ports:
- 27017:27017
env_file:
- .env
volumes:
- ${HOME}/database/mongo:/data/db
把 container 跑起來:
$ docker compose up -d
關於要如何連線到 MongoDB,Studio 3T 是很容易搜尋到的一款 GUI 工具,
另外 TablePlus 這款關聯式資料庫的 GUI 工具,最近也看到了 MongoDB 的選項,雖然還在 Beta 測試,
按照上面的 Docker compose,我們架設的 MongoDB,URL 會是這樣子:
mongodb://root:your-root-password@localhost:27017
這樣就能連到我們架設的資料庫了,
用 Docker 的好處就是可以不用把資料庫裝在 Server 上,並且可以快速啟動或關閉。