ubuntu24.04下Docker部署MongoDB詳細指南

Docker部署MongoDB詳細指南

在現(xiàn)代的Web開發(fā)中,數(shù)據(jù)庫是不可或缺的一部分。MongoDB作為一種流行的NoSQL數(shù)據(jù)庫,因其靈活的文檔結(jié)構(gòu)和高性能而廣受歡迎。本文將詳細介紹如何在Ubuntu 24.04系統(tǒng)上使用Docker部署MongoDB,包括創(chuàng)建存儲目錄、啟動容器、創(chuàng)建用戶以及測試連接等步驟。

一、創(chuàng)建MongoDB存儲目錄并設(shè)置權(quán)限

首先,我們需要創(chuàng)建一個目錄來存儲MongoDB的數(shù)據(jù)文件,并為該目錄設(shè)置適當?shù)臋?quán)限。執(zhí)行以下命令:

sudo mkdir -p /www/app/data/db && sudo chmod 777 /www/app/data/db

這個命令會在/www/app/目錄下創(chuàng)建一個名為data/db的文件夾,并將該文件夾的權(quán)限設(shè)置為777,以確保所有用戶都可以讀寫該目錄。

二、創(chuàng)建MongoDB容器

接下來,我們將使用Docker命令來啟動一個MongoDB容器。執(zhí)行以下命令:

sudo docker run -d --name mongodb -p 27017:27017 -e MONGO_INITDB_ROOT_USERNAME=root -e MONGO_INITDB_ROOT_PASSWORD=root_password -v /www/app/data/db:/data/db mongodb/mongodb-community-server:latest

這條命令會執(zhí)行以下操作:

  • -d:以后臺模式運行容器。
  • --name mongodb:將容器命名為mongodb。
  • -p 27017:27017:將主機的27017端口映射到容器的27017端口。
  • -e MONGO_INITDB_ROOT_USERNAME=root:初始化數(shù)據(jù)庫時使用的管理員用戶名。
  • -e MONGO_INITDB_ROOT_PASSWORD=root_password:初始化數(shù)據(jù)庫時使用的管理員密碼。
  • -v /www/app/data/db:/data/db:將主機上的/www/app/data/db目錄掛載到容器內(nèi)的/data/db目錄。
  • mongodb/mongodb-community-server:latest:使用最新的官方MongoDB社區(qū)版鏡像。

三、進入MongoDB容器的Shell

為了進一步操作MongoDB,我們可以進入容器的Shell環(huán)境。執(zhí)行以下命令:

sudo docker exec -it mongodb mongosh --username root --password root_password

此命令將會啟動一個交互式的MongoDB shell,并使用我們之前設(shè)置的管理員賬號進行登錄。

四、為數(shù)據(jù)庫創(chuàng)建用戶

在MongoDB shell中,我們可以為特定的數(shù)據(jù)庫創(chuàng)建新用戶。假設(shè)我們要在db_name數(shù)據(jù)庫中創(chuàng)建一個用戶,可以執(zhí)行以下命令:

use db_name;
db.createUser({user: "db_username", pwd: "db_password", roles: [{role: "dbOwner", db: "db_name"}]});

這段JavaScript代碼做了以下幾件事:

  • use db_name;:選擇要操作的數(shù)據(jù)庫。
  • db.createUser(...):創(chuàng)建一個新用戶,賦予該用戶對指定數(shù)據(jù)庫的完全控制權(quán)限(dbOwner角色)。

五、測試連接

為了確認我們的新用戶能夠成功連接到數(shù)據(jù)庫,我們可以使用以下命令進行測試:

sudo docker exec -it mongodb mongosh -u "db_username" -p "db_password" --authenticationDatabase "db_name"

如果一切配置正確,該命令將會啟動一個新的MongoDB shell,并使用我們剛剛創(chuàng)建的用戶進行登錄。

通過以上步驟,我們已經(jīng)成功地在Docker中部署了MongoDB,并且創(chuàng)建了一個具有管理權(quán)限的新用戶。希望這篇技術(shù)分享文章對你有所幫助!

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容