Docker 部署 MongoDB 并持久化數據
在現代開發中,MongoDB 作為 NoSQL 數據庫廣泛應用,而 Docker 則提供了高效的容器化方案。本教程將介紹如何使用 Docker 快速部署 MongoDB,并實現數據持久化,確保數據不會因容器重啟或刪除而丟失。
1. 準備環境
1.1 安裝 Docker 和 Docker Compose
如果你的系統尚未安裝 Docker 和 Docker Compose,可以參考以下命令進行安裝。
Ubuntu/Debian
sudo apt update
sudo apt install -y docker.io docker-compose
sudo systemctl start docker
sudo systemctl enable docker
CentOS
sudo yum install -y docker
sudo systemctl start docker
sudo systemctl enable docker
sudo yum install -y epel-release
sudo yum install -y python3-pip
pip3 install docker-compose
驗證 Docker 版本
docker --version
docker-compose --version
2. 創建 MongoDB 數據存儲目錄
為了實現持久化存儲,我們需要在宿主機上創建一個目錄,用于存放 MongoDB 數據。
mkdir -p /home/middleware/mongodb/data
該目錄會被映射到 Docker 容器內的 /data/db
,確保 MongoDB 重啟后數據不會丟失。
3. 使用 Docker Compose 部署 MongoDB
在 /home/middleware/mongodb
目錄下創建 docker-compose.yml
文件:
version: '3.8' # 指定 Docker Compose 版本services:mongodb: # 定義 MongoDB 服務image: mongo # 使用官方 MongoDB 鏡像container_name: mongo # 指定容器名稱restart: always # 確保容器在崩潰或重啟后自動恢復ports:- "27017:27017" # 映射宿主機的 27017 端口到容器environment:MONGO_INITDB_ROOT_USERNAME: admin # 設置管理員用戶名MONGO_INITDB_ROOT_PASSWORD: admin123 # 設置管理員密碼volumes:- /home/middleware/mongodb/data:/data/db # 數據持久化
4. 啟動 MongoDB 容器
執行以下命令啟動 MongoDB 容器:
cd /home/middleware/mongodb
docker-compose up -d
-d
選項表示以 后臺模式 運行。
檢查容器是否運行
docker ps | grep mongo
如果看到 mongo
容器在運行,則說明部署成功。
5. 連接 MongoDB
5.1 使用 Docker 進入 MongoDB 容器
docker exec -it mongo mongosh -u admin -p admin123 --authenticationDatabase admin
5.2 通過 MongoDB 客戶端連接
如果你使用的是 MongoDB Compass 或其他客戶端,可以使用以下連接字符串:
mongodb://admin:admin123@localhost:27017/
6. 測試數據持久化
- 創建數據庫并插入數據
use testDB
db.testCollection.insertOne({ name: "Hello MongoDB" })
- 刪除容器
docker-compose down
- 重新啟動 MongoDB 容器
docker-compose up -d
- 驗證數據是否仍然存在
use testDB
db.testCollection.find()
如果數據仍然存在,則表明 MongoDB 數據持久化成功!🎉
7. 停止 & 刪除 MongoDB 容器
如果你想停止 MongoDB 容器,可以執行:
docker-compose down
如果你要徹底刪除容器及其數據,執行:
rm -rf /home/middleware/mongodb
8. 總結
至此,我們已經成功使用 Docker Compose 部署了 MongoDB,并實現了數據持久化,保證容器重啟或刪除后數據仍然保留。
📌 關鍵步驟回顧:
- 安裝 Docker 和 Docker Compose
- 創建數據存儲目錄
/home/middleware/mongodb/data
- 編寫
docker-compose.yml
配置文件 - 使用
docker-compose up -d
啟動 MongoDB - 連接 MongoDB 并驗證數據存儲
- 測試數據持久化功能
💡 優勢:
? 快速部署,簡化環境配置
? 使用 Docker 容器隔離,避免污染本機系統
? 持久化存儲數據,確保數據安全