最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

 更新時間:2024年12月02日 10:14:50   作者:橙子qyfftf  
這篇文章主要介紹了如何使用Docker?Compose啟動MongoDB副本集,包括配置文件編寫、容器啟動命令、副本集初始化、角色和用戶創(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. 啟動

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

docker-compose up -d

這將創(chuàng)建一個 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)證啟動是否成功

命令行驗(yàn)證

docker ps

4. 初始化副本集

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

docker exec -it mongo-replica mongo

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

rs.initiate()

這樣就初始化一個名為 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

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

1.輸入host,勾選Direct Connecton

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

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ù)庫中所有非系統(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)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評論

岚皋县| 垣曲县| 富蕴县| 阜康市| 修水县| 双江| 彩票| 兰坪| 宁国市| 卢氏县| 德惠市| 正蓝旗| 大荔县| 雅江县| 崇义县| 屏东市| 通辽市| 壤塘县| 临西县| 香格里拉县| 永昌县| 新邵县| 三原县| 丹东市| 治县。| 昭平县| 屏东市| 时尚| 阿勒泰市| 揭西县| 攀枝花市| 保定市| 楚雄市| 凌云县| 壤塘县| 钟山县| 筠连县| 益阳市| 崇仁县| 太仓市| 贞丰县|