MongoDB 是一款較為常用的NOSQL 數據庫,結合 Docker 使用,能實現輕松配置部署、遷移,本文以下為簡要介紹如何在 Docker 中部署并使用 MongoDB。下文主要分為幾個部分,內容如下:
- MongoDB 鏡像安裝
- MongoDB 容器創建
- MongoDB 容器數據目錄掛載
- MongoDB 數據遷移
- MongoDB 常用 Docker 命令
MongoDB Docker 鏡像安裝
MongoDB 提供官方鏡像,下載安裝鏡像方法如下:
docker pull mongo
以上命令為安裝 MongoDB 最新版本的鏡像。
MongoDB Docker 容器創建
MongoDB Docker 容器創建有以下幾個問題:
1- MongoDB 容器基本創建方法和數據目錄掛載
2- MongoDB 容器的數據遷移
3- MongoDB 設置登錄權限問題
MongoDB 容器基本創建方法和數據目錄掛載
MongoDB 容器基本創建命令如下:
docker run -p 27017:27017 -v <LocalDirectoryPath>:/data/db --name docker_mongodb -d mongo
在上面的命令中,幾個命令參數的詳細解釋如下:
-p
指定容器的端口映射,mongodb 默認端口為 27017
-v
為設置容器的掛載目錄,這里是將<LocalDirectoryPath>即本機中的目錄掛載到容器中的/data/db中,作為 mongodb 的存儲目錄
--name
為設置該容器的名稱
-d
設置容器以守護進程方式運行
以上是 MongoDB 容器創建后的信息。
接下來,我們使用 Robo 3T 圖形界面軟件嘗試打開數據庫。
打開 RoBo 3T,選擇新建連接,按照下圖填入相關數據庫信息,保存。
然后點擊連接,數據庫連接成功,界面如下圖顯示
這里我們可以看到,這是一個空的數據庫。隨后我們創建一個
test_database
的數據庫,然后在創建一個test_collection
的集合,再在這個集合中添加一個文檔,文檔內容為:
{'info': 'create success!'}
我們可以通過 RoBo 3T來查看目前數據庫中數據的情況
容器數據遷移
接下來,我們先停止剛才創建的 docker_mongodb 容器,命令如下:
docker stop docker_mongodb
然后我們再創建一個新的 MongoDB 容器,掛載剛才剛剛的數據目錄,命令如下:
docker run -p 27017:27017 -v <LocalDirectoryPath>:/data/db --name docker_mongodb_migration -d mongo
我們可以容器查詢命令,查看當前 Docker 的容器狀態,命令如下:
docker container ls -a
這里的 -a
參數是查看所有的容器,包括已經停止的容器。
我們可以從輸出結果看到,這時
docker_mongodb
的狀態是 Exited,表示已經退出,而新創建的 docker_mongodb_migration
的狀態顯示為 Up,表明數據庫正在運行。
然后我們再打開 RoBo 3T,連接數據庫,可以看到我們看到我們再 docker_mongodb
中創建的數據,這里表明我們新創建的 docker_mongodb_migration
掛載的數據目錄和 docker_mongodb
相同,利用這一方法,我們可以實現簡單的數據遷移。
MongoDB 的 Docker 常用命令
使用 Docker MongoDB 會使用到以下幾個常用的命令。
查看當前運行的容器
# 查看正在運行的容器
docker container ls
# 查看所有容器
docker container ls -a
停止容器
# 指定 CONTAINER ID 停止容器
docker stop <CONTAINER ID>
# 指定容器名稱停止容器
docker stop <CONTAINER NAME>
啟動已經停止的容器
# 指定容器 CONTAINER ID 啟動容器
docker start <CONTAINER ID>
# 指定容器名稱啟動容器
docker start <CONTAINER NAME>
重啟已經運行的容器
# 指定容器 CONTAINER ID 重啟容器
docker restart <CONTAINER ID>
# 指定容器名稱重啟容器
docker restart <CONTAINER NAME>
進入 mongo 交互模式
docker exec -it <CONTAINER NAME> mongo admin