docker部署MongoDB數(shù)據(jù)庫(kù)的實(shí)現(xiàn)步驟
最近由于工作需要搭建MongoDB數(shù)據(jù)庫(kù),將解析的車端采集的數(shù)據(jù)寫入到數(shù)據(jù)庫(kù),由于MongoDB高可用、海量擴(kuò)展、靈活數(shù)據(jù)的模型,因此選用MongoDB數(shù)據(jù)庫(kù);由于現(xiàn)公司只有服務(wù)器,因此考慮容器化部署MongoDB數(shù)據(jù),特此記錄一下~
一、鏡像拉取
使用如下命令拉取最新MongoDB鏡像
docker pull mongo

二、創(chuàng)建MongoDB容器
2.1 創(chuàng)建宿主機(jī)目錄
執(zhí)行如下代碼:
mkdir -p /home/bigdata/mongodb_bigdata/data mkdir -p /home/bigdata/mongodb_bigdata/conf mkdir -p /home/bigdata/mongodb_bigdata/logs
創(chuàng)建這幾個(gè)目錄的原因是:
將docker容器掛載的宿主機(jī)目錄與容器內(nèi)部的的路徑進(jìn)行映射,相當(dāng)于對(duì)容器的數(shù)據(jù)做了一個(gè)backup。容器銷毀時(shí),可以通過(guò)宿主機(jī)目錄對(duì)容器的數(shù)據(jù)進(jìn)行恢復(fù)。
2.2 創(chuàng)建docker容器
執(zhí)行如下命令:
docker run -dit --name mongodb -p 27019:27017 \ -v /home/bigdata/mongodb_bigdata/data:/data/db \ -v /home/bigdata/mongodb_bigdata/conf:/data/configdb \ -v /home/bigdata/mongodb_bigdata/logs:/data/log/ \ --restart always -d mongo
2.3 啟動(dòng)容器
執(zhí)行如下命令
docker exec -ti mongodb /bin/bash
執(zhí)行上述命令后就進(jìn)入到容器內(nèi)部
2.4 創(chuàng)建賬號(hào)
進(jìn)入到容器內(nèi)部后,使用命令mongosh進(jìn)入到命令行執(zhí)行頁(yè)面:

進(jìn)入到admin

創(chuàng)建超級(jí)管理員賬號(hào)
db.createUser({user:"root",pwd:"123456",roles:[{role:'root',db:'admin'}]}) 
創(chuàng)建bigdata_db庫(kù)并創(chuàng)建用戶
# 創(chuàng)建庫(kù)
use bigdata_db;
# 創(chuàng)建讀寫帳號(hào)
db.createUser(
{
user: "bigdata_rw",
pwd: "11111111",
roles: [
{ role: "readWrite", db: "bigdata_db" }
]
}
)
三、案例
3.1 python鏈接mongodb庫(kù)
# ------------------------------ mongodb連接信息配置 -------------------------------
# 讀寫
username = 'bigdata_rw'
password = '2222'
ip = 'xx.xxx.xx.xx'
port = 27019
database = 'bigdata_db'
mongodb_info = f"mongodb://{username}:{password}@{ip}:{port}/{database}"
# ---------------------------------------------------------------------------------
connection = pymongo.MongoClient(mongodb_info)
# 鏈接
db_name = connection['bigdata_db']
collection_name = db_name[mongodb_table_name]
# 查詢結(jié)果
result_data = collection_name.find()
for i in result_data:
print('the i is :', i)3.2、其他
1、新創(chuàng)建的容器沒(méi)辦法使用vim及l(fā)l等命令,可進(jìn)行如下操作:
apt-get update apt-get install vim
中途遇到y(tǒng)/n直接enter就行。
如果還有其他的系統(tǒng)命令,可以執(zhí)行apt-get install進(jìn)行安裝。
2、 ll的配置
vim ~/.bashrc # 進(jìn)入到編輯頁(yè)面,添加如下內(nèi)容: alias ll='ls -l' # 使命令生效 source ~/.bashrc
到此這篇關(guān)于docker部署MongoDB數(shù)據(jù)庫(kù)的實(shí)現(xiàn)步驟的文章就介紹到這了,更多相關(guān)docker部署MongoDB 內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
docker中搭建overlay 網(wǎng)絡(luò)實(shí)驗(yàn)環(huán)境
這篇文章主要介紹了docker中搭建overlay 網(wǎng)絡(luò)實(shí)驗(yàn)環(huán)境的相關(guān)資料,需要的朋友可以參考下2017-08-08
詳解如何利用docker快速構(gòu)建MySQL主從復(fù)制環(huán)境
這篇文章主要介紹了詳解如何利用docker快速構(gòu)建MySQL主從復(fù)制環(huán)境,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-05-05
Dockerfile建立一個(gè)自定義的鏡像執(zhí)行自定義進(jìn)程詳細(xì)過(guò)程
這篇文章主要介紹了Dockerfile建立一個(gè)自定義的鏡像執(zhí)行自定義進(jìn)程,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-12-12
docker容器訪問(wèn)宿主機(jī)的MySQL操作
這篇文章主要介紹了docker容器訪問(wèn)宿主機(jī)的MySQL操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2021-03-03
docker+Nginx部署前端項(xiàng)目的詳細(xì)過(guò)程記錄
docker的出現(xiàn)解決了我們很多問(wèn)題,讓我們避免陷入各種依賴安裝的痛苦中,下面這篇文章主要給大家介紹了關(guān)于docker+Nginx部署前端項(xiàng)目的相關(guān)資料,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2022-10-10
docker部署springboot和vue項(xiàng)目的實(shí)現(xiàn)步驟
本文主要介紹了docker部署springboot和vue項(xiàng)目的實(shí)現(xiàn)步驟,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2021-06-06

