欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

MongoDB docker集群配置小結(jié)

 更新時間:2023年09月27日 11:27:57   作者:末班車同學  
本文主要介紹了MongoDB docker集群配置小結(jié),主要包括如何配置MongoDB的三個節(jié)點,以及如何使用Docker Compose快速搭建集群,具有一定的參考價值,感興趣的可以了解一下

拉取鏡像

docker pull mongo:4.0.28

三臺主機:主節(jié)點、備節(jié)點、仲裁節(jié)點

各個主機下,創(chuàng)建配置目錄:

mkdir -p /root/mongodb/config
cd /root/mongodb/config

在每臺主機的config目錄下,添加 mongod.conf 配置文件:

# mongod.conf
?
# for documentation of all options, see:
#   http://docs.mongodb.org/manual/reference/configuration-options/
?
# Where and how to store data.
#storage:
#  dbPath: /data/db
#  engine:
#  wiredTiger:
?
# where to write logging data.
systemLog:
  destination: file
  logAppend: true
  path: /data/log/mongo.log
?
# network interfaces
#net:
#  port: 27017
#  bindIp: 127.0.0.1
?
?
# how the process runs
#processManagement:
#  timeZoneInfo: /usr/share/zoneinfo
?
#security:
#  keyFile: /data/db/mongo.key
#  authorization: enabled
?
#operationProfiling:
?
# 配副本集名
replication:
  replSetName: "rs0"
?
#sharding:
?
## Enterprise-Only Options:
?
#auditLog:
?
#snmp:

寫三個節(jié)點的啟動腳本。三個節(jié)點的配置文件要保持一致,如果也是在一臺機器上部3個虛擬節(jié)點,后面2個節(jié)點記得替換一下節(jié)點目錄、替換一下端口映射

創(chuàng)建 run_mongo_cluster_node1.sh 腳本:

docker run --name mongo1 \
        -h mongo1 \
        -v /root/mongodb/db:/data/db \
        -v /root/mongodb/log:/data/log \
        -v /root/mongodb/config:/etc/mongo \
        -p 0.0.0.0:27017:27017 \
        --restart=always \
        -d  mongo:4.0.28 \
        --config /etc/mongo/mongod.conf

創(chuàng)建 vim run_mongo_cluster_node2.sh 腳本:

docker run --name mongo2 \
        -h mongo2 \
        -v /root/mongodb/db:/data/db \
        -v /root/mongodb/log:/data/log \
        -v /root/mongodb/config:/etc/mongo \
        -p 0.0.0.0:27017:27017 \
        --restart=always \
        -d  mongo:4.0.28 \
        --config /etc/mongo/mongod.conf

創(chuàng)建 vim run_mongo_cluster_node3.sh 腳本:

docker run --name mongo3 \
        -h mongo3 \
        -v /root/mongodb/db:/data/db \
        -v /root/mongodb/log:/data/log \
        -v /root/mongodb/config:/etc/mongo \
        -p 0.0.0.0:27017:27017 \
        --restart=always \
        -d  mongo:4.0.28 \
        --config /etc/mongo/mongod.conf

啟動三個節(jié)點容器

sh run_mongo_cluster_node1.sh
sh run_mongo_cluster_node2.sh
sh run_mongo_cluster_node3.sh

啟動后查看日志可發(fā)現(xiàn),日志提示副本集模式還沒有配置集群,狀態(tài)不可用

配置集群

隨便進入一個節(jié)點,這里進入節(jié)點1

docker exec -it mongo_node1 mongo

把這個配置粘貼上,回車之后顯示OK就可以了。

rs.initiate({
_id: "rs0",
members: [
  {_id: 0, host: "172.29.69.8:27017"},
  {_id: 1, host: "172.29.69.9:27017"},
  {_id: 2, host: "172.29.69.10:27017", arbiterOnly: true}
] })

_id: "rs0"副本集名要和配置文件中的一致。arbiterOnly: true這個是仲裁節(jié)點,建議把最后一個節(jié)點作為仲裁節(jié)點,因為第一個節(jié)點作為仲裁會報個錯。通常第一個節(jié)點是主節(jié)點。
這個時候已經(jīng)可以使用mongo集群了,但是沒有認證,不安全。

開啟認證

切到admin庫

use admin

創(chuàng)建用戶,用戶名root,密碼12345678,權(quán)限r(nóng)oot,所屬庫admin

db.createUser({user:"root",pwd:"12345678",roles:[{role:'root',db:'admin'}]})

生成 mongo.key 簽名文件

cd /root/mongodb/config
openssl rand -base64 756 > mongo.key

修改文件權(quán)限:

sudo chmod 777 mongo.key

復制 mongo.key文件到鏡像中。3臺機器都需要操作

sudo docker cp /root/mongodb/config/mongo.key mongo1:/tmp/mongo.key
sudo docker cp /root/mongodb/config/mongo.key mongo2:/tmp/mongo.key
sudo docker cp /root/mongodb/config/mongo.key mongo3:/tmp/mongo.key

進入 mongo1 鏡像:

 docker exec -it -u mongodb mongo1 /bin/bash

修改認證所屬的用戶和權(quán)限:

mv /tmp/mongo.key /data/db/
chown mongodb:mongodb /data/db/mongo.key
chmod 400 /data/db/mongo.key

退出窗口,關(guān)閉鏡像

docker stop mongo1
docker stop mongo2
docker stop mongo3

修改 mongod.conf 配置文件,打開 security 注釋:

# mongod.conf
?
# for documentation of all options, see:
#   http://docs.mongodb.org/manual/reference/configuration-options/
?
# Where and how to store data.
#storage:
#  dbPath: /data/db
#  engine:
#  wiredTiger:
?
# where to write logging data.
systemLog:
  destination: file
  logAppend: true
  path: /data/log/mongo.log
?
# network interfaces
#net:
#  port: 27017
#  bindIp: 127.0.0.1
?
?
# how the process runs
#processManagement:
#  timeZoneInfo: /usr/share/zoneinfo
?
security:
  keyFile: /data/db/mongo.key
  authorization: enabled
?
#operationProfiling:
?
# 配副本集名
replication:
  replSetName: "rs0"
?
#sharding:
?
## Enterprise-Only Options:
?
#auditLog:
?
#snmp:

所有機器的配置文件都需要打開注釋

開啟所有鏡像:

docker start mongo1
docker start mongo2
docker start mongo3

到此,認證開啟完畢,集群可以使用了

mongodb操作

修改 root 賬號密碼:

use admin
db.updateUser(
   "root",
   {
     pwd : "1234567890",
     roles : [ { role: "root", db: "admin" } ]
   }
)

認證賬號:

use admin
db.auth("root","1234567890")

命令行登錄mongodb:

mongo -u root -p 1234567890

顯示所有數(shù)據(jù)庫:

show databases

顯示數(shù)據(jù)庫中所有文檔:

show collections

插入數(shù)據(jù):

db.foods.insert({"name":"西紅柿"})

查看數(shù)據(jù):

use test
db.foods.find()

刪除現(xiàn)有用戶:

db.dropUser("root")

刪除集合:

db.foods.drop()

到此這篇關(guān)于MongoDB docker集群配置小結(jié)的文章就介紹到這了,更多相關(guān)MongoDB docker集群內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 使用docker部署hadoop集群的詳細教程

    使用docker部署hadoop集群的詳細教程

    這篇文章主要介紹了使用docker部署hadoop集群的詳細教程,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值需要的朋友可以參考下
    2020-09-09
  • Docker開啟TLS和CA認證的方法步驟

    Docker開啟TLS和CA認證的方法步驟

    本文主要介紹了Docker開啟TLS和CA認證的方法步驟,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-08-08
  • Docker安裝OpenWrt的實現(xiàn)步驟

    Docker安裝OpenWrt的實現(xiàn)步驟

    OpenWrt是一種可以運行在路由器上的嵌入式操作系統(tǒng),提供了許多網(wǎng)絡服務和功能,本文主要介紹了Docker安裝OpenWrt的實現(xiàn)步驟,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2023-08-08
  • docker-compose容器互相連接的實現(xiàn)

    docker-compose容器互相連接的實現(xiàn)

    本文主要介紹了docker-compose容器互相連接的實現(xiàn),文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-03-03
  • Centos下安裝docker教程

    Centos下安裝docker教程

    本文給大家介紹的是在centos下安裝docker的詳細教程,分為yum安裝和腳本安裝2種方式,有需要的小伙伴可以參考下。
    2016-02-02
  • Docker出現(xiàn)tag顯示none鏡像的處理方案

    Docker出現(xiàn)tag顯示none鏡像的處理方案

    本文介紹了Docker中出現(xiàn)REPOSITORY和TAG都顯示為<none>的鏡像,即懸掛鏡像的原因,并提供了解決方法,包括查找和刪除懸掛鏡像,以及為它們指定新的標簽
    2025-02-02
  • 使用Nexus創(chuàng)建Docker倉庫的方法步驟

    使用Nexus創(chuàng)建Docker倉庫的方法步驟

    這篇文章主要介紹了使用Nexus創(chuàng)建Docker倉庫的方法步驟,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-12-12
  • portainer連接遠程docker的實現(xiàn)示例

    portainer連接遠程docker的實現(xiàn)示例

    本文主要介紹了portainer連接遠程docker的實現(xiàn)示例,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2022-05-05
  • mac 中docker安裝mysql的圖文教程

    mac 中docker安裝mysql的圖文教程

    今天在Docker中安裝了MySQL ,是自己打的docker包.首先新建Dockerfile,新建Dockerfile后執(zhí)行build命令,具體詳情在本教程中給大家介紹的非常詳細,感興趣的朋友參考下
    2016-11-11
  • Docker安裝部署Neo4j的保姆級教程

    Docker安裝部署Neo4j的保姆級教程

    本文主要介紹了Docker安裝部署Neo4j的保姆級教程,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2023-08-08

最新評論