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

Docker部署MongoDb的詳細(xì)過(guò)程記錄

 更新時(shí)間:2024年12月02日 10:14:50   作者:橙子qyfftf  
這篇文章主要介紹了如何使用Docker?Compose啟動(dòng)MongoDB副本集,包括配置文件編寫、容器啟動(dòng)命令、副本集初始化、角色和用戶創(chuàng)建等步驟,需要的朋友可以參考下

1. 編寫docker-compose.conf 文件

version: '3'
services:
  mongo:
    image: mongo:latest  # 指定 MongoDB 版本,確保 >= 3.6
    container_name: mongo-replica
    restart: always
    command: ["mongod", "--replSet", "rs0", "--oplogSize", "128", "--bind_ip_all"]
    ports:
      - 27017:27017
    volumes:
      - ./mongo_data:/data/db
    environment:
      #初始化MongoDb管理員用戶名
      MONGO_INITDB_ROOT_USERNAME: root
      #初始化MongoDb的管理員密碼
      MONGO_INITDB_ROOT_PASSWORD: example

2. 啟動(dòng)

在包含 docker-compose.yml 文件的目錄中運(yùn)行以下命令啟動(dòng) MongoDB:

docker-compose up -d

這將創(chuàng)建一個(gè) MongoDB 副本集實(shí)例。--replSet 選項(xiàng)用于指定副本集名稱為 rs0,--bind_ip_all 確保 MongoDB 綁定到所有 IP 地址。

本地27017端口映射到容器內(nèi)部27017端口,把容器內(nèi)部的/data/db目錄掛載當(dāng)前目錄下的mongo_db目錄,并且初始化了mongo的管理員用戶和密碼

3. 驗(yàn)證啟動(dòng)是否成功

命令行驗(yàn)證

docker ps

4. 初始化副本集

1.首次啟動(dòng)容器后,需要初始化 MongoDB 副本集。連接到 MongoDB 并運(yùn)行以下命令:

docker exec -it mongo-replica mongo

2.然后在 MongoDB shell 中運(yùn)行以下命令:

rs.initiate()

這樣就初始化一個(gè)名為 rs0 的副本集。

3.驗(yàn)證配置

在 MongoDB shell 中,可以使用以下命令驗(yàn)證副本集的狀態(tài):

rs.status()

rs0:PRIMARY> rs.status()
{
	"set" : "rs0",
	"date" : ISODate("2024-10-24T09:31:21.318Z"),
	"myState" : 1,
	"term" : NumberLong(1),
	"syncingTo" : "",
	"syncSourceHost" : "",
	"syncSourceId" : -1,
	"heartbeatIntervalMillis" : NumberLong(2000),
	"majorityVoteCount" : 1,
	"writeMajorityCount" : 1,
	"optimes" : {
		"lastCommittedOpTime" : {
			"ts" : Timestamp(1729762278, 1),
			"t" : NumberLong(1)
		},
		"lastCommittedWallTime" : ISODate("2024-10-24T09:31:18.528Z"),
		"readConcernMajorityOpTime" : {
			"ts" : Timestamp(1729762278, 1),
			"t" : NumberLong(1)
		},
		"readConcernMajorityWallTime" : ISODate("2024-10-24T09:31:18.528Z"),
		"appliedOpTime" : {
			"ts" : Timestamp(1729762278, 1),
			"t" : NumberLong(1)
		},
		"durableOpTime" : {
			"ts" : Timestamp(1729762278, 1),
			"t" : NumberLong(1)
		},
		"lastAppliedWallTime" : ISODate("2024-10-24T09:31:18.528Z"),
		"lastDurableWallTime" : ISODate("2024-10-24T09:31:18.528Z")
	},
	"lastStableRecoveryTimestamp" : Timestamp(1729762278, 1),
	"lastStableCheckpointTimestamp" : Timestamp(1729762278, 1),
	"electionCandidateMetrics" : {
		"lastElectionReason" : "electionTimeout",
		"lastElectionDate" : ISODate("2024-10-24T07:16:15.041Z"),
		"electionTerm" : NumberLong(1),
		"lastCommittedOpTimeAtElection" : {
			"ts" : Timestamp(0, 0),
			"t" : NumberLong(-1)
		},
		"lastSeenOpTimeAtElection" : {
			"ts" : Timestamp(1729754175, 1),
			"t" : NumberLong(-1)
		},
		"numVotesNeeded" : 1,
		"priorityAtElection" : 1,
		"electionTimeoutMillis" : NumberLong(10000),
		"newTermStartDate" : ISODate("2024-10-24T07:16:15.048Z"),
		"wMajorityWriteAvailabilityDate" : ISODate("2024-10-24T07:16:15.053Z")
	},
	"members" : [
		{
			"_id" : 0,
			"name" : "5ffc77d51cd0:27017",
			"health" : 1,
			"state" : 1,
			"stateStr" : "PRIMARY",
			"uptime" : 8176,
			"optime" : {
				"ts" : Timestamp(1729762278, 1),
				"t" : NumberLong(1)
			},
			"optimeDate" : ISODate("2024-10-24T09:31:18Z"),
			"syncingTo" : "",
			"syncSourceHost" : "",
			"syncSourceId" : -1,
			"infoMessage" : "",
			"electionTime" : Timestamp(1729754175, 2),
			"electionDate" : ISODate("2024-10-24T07:16:15Z"),
			"configVersion" : 1,
			"self" : true,
			"lastHeartbeatMessage" : ""
		}
	],
	"ok" : 1,
	"$clusterTime" : {
		"clusterTime" : Timestamp(1729762278, 1),
		"signature" : {
			"hash" : BinData(0,"AAAAAAAAAAAAAAAAAAAAAAAAAAA="),
			"keyId" : NumberLong(0)
		}
	},
	"operationTime" : Timestamp(1729762278, 1)
}

5. 登陸MongoDb

可以通過(guò)mongo客戶端或者Docker命令登陸,這里選擇使用MongoDb自帶的圖形化工具進(jìn)行登錄

1.輸入host,勾選Direct Connecton

2.點(diǎn)到Authentication,輸入用戶名密碼和認(rèn)證數(shù)據(jù)庫(kù)

3.保存&登錄

6. 創(chuàng)建角色和用戶

1.點(diǎn)擊Open MongoDB shell進(jìn)入mongo shell

2.創(chuàng)建角色 用戶分配權(quán)限

use admin;
db.createRole(
    {
        role: "flinkrole",
        privileges: [{
            // 所有數(shù)據(jù)庫(kù)中所有非系統(tǒng)集合的 grant 權(quán)限
            resource: { db: "", collection: "" },
            actions: [
                "splitVector",
                "listDatabases",
                "listCollections",
                "collStats",
                "find",
                "changeStream" ]
        }],
        roles: [
           // 閱讀 config.collections 和 config.chunks
           // 用于分片集群快照拆分。
            { role: 'read', db: 'config' }
        ]
    }
);

db.createUser(
  {
      user: 'flinkuser',
      pwd: 'flinkpw',
      roles: [
         { role: 'flinkrole', db: 'admin' }
      ]
  }
);

就可以使用新創(chuàng)建的用戶進(jìn)行登錄MongoDb了

總結(jié)

到此這篇關(guān)于Docker部署MongoDb的文章就介紹到這了,更多相關(guān)Docker部署MongoDb內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 一次dockerfile的循環(huán)依賴錯(cuò)誤實(shí)戰(zhàn)記錄

    一次dockerfile的循環(huán)依賴錯(cuò)誤實(shí)戰(zhàn)記錄

    Dockerfile 是一個(gè)文本文件,其內(nèi)包含了一條條的指令,每一條指令構(gòu)建一層,因此每一條指令的內(nèi)容,就是描述該層應(yīng)當(dāng)如何構(gòu)建,這篇文章主要介紹了使用Docker多階段構(gòu)建時(shí)遇到的循環(huán)依賴問(wèn)題及其解決方法,,需要的朋友可以參考下
    2025-02-02
  • docker學(xué)習(xí)筆記之把容器commit成鏡像的方法

    docker學(xué)習(xí)筆記之把容器commit成鏡像的方法

    本篇文章主要介紹了docker學(xué)習(xí)筆記之把容器commit成鏡像,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-05-05
  • docker 手動(dòng)構(gòu)建新鏡像的方法

    docker 手動(dòng)構(gòu)建新鏡像的方法

    這篇文章主要介紹了docker 手動(dòng)構(gòu)建新鏡像的方法,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2018-12-12
  • Windows11安裝Docker Desktop教程的圖文教程

    Windows11安裝Docker Desktop教程的圖文教程

    本文主要介紹一下Windows11安裝Docker Desktop教程的圖文教程,文中通過(guò)圖文介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2024-10-10
  • 清理docker磁盤空間的方法總結(jié)(附詳細(xì)講解)

    清理docker磁盤空間的方法總結(jié)(附詳細(xì)講解)

    docker?鏡像特別容易占空間,稍微不注意可能磁盤爆滿,所以本文給大家詳細(xì)介紹了如何清理?docker?磁盤空間,并通過(guò)代碼示例給大家講解的非常詳細(xì),需要的朋友可以參考下
    2024-02-02
  • Ubuntu?環(huán)境下安裝?Docker環(huán)境詳解

    Ubuntu?環(huán)境下安裝?Docker環(huán)境詳解

    這篇文章主要介紹了Ubuntu?環(huán)境下安裝?Docker環(huán)境詳解的相關(guān)資料,需要的朋友可以參考下
    2022-10-10
  • Jenkins整合Docker實(shí)現(xiàn)CICD自動(dòng)化部署的詳細(xì)過(guò)程(若依項(xiàng)目)

    Jenkins整合Docker實(shí)現(xiàn)CICD自動(dòng)化部署的詳細(xì)過(guò)程(若依項(xiàng)目)

    本文介紹了如何使用Jenkins和Docker實(shí)現(xiàn)CI/CD自動(dòng)化部署,文章介紹了環(huán)境準(zhǔn)備,包括Jenkins、Docker、JDK、Node和Maven,然后討論了如何配置GitLab環(huán)境并利用Webhooks實(shí)現(xiàn)代碼的自動(dòng)拉取和部署,最后,展示了如何部署前后端分離的項(xiàng)目,并通過(guò)實(shí)際操作驗(yàn)證了整個(gè)流程的有效性
    2024-10-10
  • Docker Redis 7.2.3 部署方式

    Docker Redis 7.2.3 部署方式

    使用Docker啟動(dòng)Redis時(shí)若遇到不斷重啟的問(wèn)題,可能是由于配置文件中的“daemonize yes”與Docker的重啟策略“--restart=always”發(fā)生沖突,本文給大家介紹Docker Redis 7.2.3 部署方式,感興趣的朋友跟隨小編一起看看吧
    2024-09-09
  • 使用Docker部署Nacos并配置MySQL數(shù)據(jù)源的詳細(xì)步驟

    使用Docker部署Nacos并配置MySQL數(shù)據(jù)源的詳細(xì)步驟

    Nacos是阿里巴巴開(kāi)源的服務(wù)發(fā)現(xiàn)、配置管理和服務(wù)管理平臺(tái),它提供了注冊(cè)中心和配置中心的功能,能夠輕松地管理微服務(wù)的注冊(cè)與發(fā)現(xiàn),以及動(dòng)態(tài)配置的管理,這篇文章主要給大家介紹了關(guān)于使用Docker部署Nacos并配置MySQL數(shù)據(jù)源的超詳細(xì)步驟,需要的朋友可以參考下
    2024-05-05
  • 使用Docker創(chuàng)建FTP服務(wù)器的過(guò)程解析

    使用Docker創(chuàng)建FTP服務(wù)器的過(guò)程解析

    這篇文章主要介紹了使用Docker創(chuàng)建FTP服務(wù)器的過(guò)程解析,使用?Docker?搭建?FTP?服務(wù),不僅十分簡(jiǎn)單,而且可以對(duì)宿主機(jī)有一定的隔離,對(duì)Docker創(chuàng)建FTP服務(wù)器的過(guò)程感興趣的朋友一起看看吧
    2022-04-04

最新評(píng)論