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

Docker快速部署Mongodb主副本集實(shí)踐指南

 更新時(shí)間:2025年09月05日 09:02:43   作者:瑞瑞綺綺  
本文主要介紹了MongoDB主副本集的基本概念及其應(yīng)用場(chǎng)景,MongoDB適合處理數(shù)據(jù)不固定且不支持事務(wù)的業(yè)務(wù)需求,通過(guò)主副本集實(shí)現(xiàn)高可用性和數(shù)據(jù)一致性,本文給大家介紹的非常詳細(xì),感興趣的朋友一起看看吧

系列文章目錄

第一章 Mongodb的主副本集

前言

公司有項(xiàng)目需要滿(mǎn)足數(shù)據(jù)內(nèi)容不固定,Mongodb更適合此業(yè)務(wù),但是不支持事務(wù),于是了解到主副本集可以滿(mǎn)足。

一、Mongodb基礎(chǔ)介紹

數(shù)據(jù)庫(kù)(Database)

Mongodb 中的數(shù)據(jù)庫(kù)是一組集合(Collection)的容器,每個(gè)數(shù)據(jù)庫(kù)在文件系統(tǒng)中有獨(dú)立的文件存儲(chǔ)。數(shù)據(jù)庫(kù)名稱(chēng)區(qū)分大小寫(xiě),通常用于邏輯隔離不同應(yīng)用或模塊的數(shù)據(jù)。

集合(Collection)

集合是 Mongodb 中存儲(chǔ)文檔(Document)的容器,類(lèi)似于關(guān)系型數(shù)據(jù)庫(kù)中的表。集合不需要預(yù)先定義結(jié)構(gòu),可以動(dòng)態(tài)存儲(chǔ)不同格式的文檔。集合名稱(chēng)同樣區(qū)分大小寫(xiě)。

文檔(Document)

文檔是 Mongodb 中的數(shù)據(jù)基本單元,采用 BSON(Binary JSON)格式存儲(chǔ)。文檔由鍵值對(duì)組成,鍵是字符串,值可以是多種數(shù)據(jù)類(lèi)型(如字符串、數(shù)字、數(shù)組、嵌套文檔等)。例如:

{
  "name": "Alice",
  "age": 30,
  "address": {
    "city": "New York",
    "zip": "10001"
  }
}

BSON(Binary JSON)

BSON 是 JSON 的二進(jìn)制編碼格式,擴(kuò)展了 JSON 的數(shù)據(jù)類(lèi)型(如日期、二進(jìn)制數(shù)據(jù)等)。Mongodb 使用 BSON 在內(nèi)部存儲(chǔ)和傳輸數(shù)據(jù),支持高效查詢(xún)和索引。

_id(主鍵)

每個(gè)文檔必須包含一個(gè)唯一的 _id 字段作為主鍵。如果插入文檔時(shí)未指定 _id,Mongodb 會(huì)自動(dòng)生成一個(gè) ObjectId 類(lèi)型的值。_id 字段默認(rèn)建立索引。

索引(Index)

索引用于加速查詢(xún)性能,類(lèi)似于關(guān)系型數(shù)據(jù)庫(kù)的索引。Mongodb 支持單字段索引、復(fù)合索引、多鍵索引(數(shù)組字段)、全文索引等。例如創(chuàng)建索引的命令:

db.collection.createIndex({ "name": 1 }) // 1表示升序,-1表示降序

分片(Sharding)

分片是 Mongodb 的橫向擴(kuò)展機(jī)制,將數(shù)據(jù)分散到多個(gè)分片(Shard)上。每個(gè)分片是獨(dú)立的數(shù)據(jù)庫(kù)實(shí)例,共同組成一個(gè)邏輯數(shù)據(jù)庫(kù)。分片通過(guò)分片鍵(Shard Key)路由數(shù)據(jù)。

副本集(Replica Set)

副本集是一組維護(hù)相同數(shù)據(jù)的 Mongodb 實(shí)例,提供高可用性。包含一個(gè)主節(jié)點(diǎn)(Primary)和多個(gè)從節(jié)點(diǎn)(Secondary)。主節(jié)點(diǎn)處理寫(xiě)操作,從節(jié)點(diǎn)同步數(shù)據(jù)并支持讀操作。

聚合管道(Aggregation Pipeline)

聚合管道是數(shù)據(jù)處理框架,通過(guò)多個(gè)階段(Stage)對(duì)文檔進(jìn)行轉(zhuǎn)換和計(jì)算。每個(gè)階段處理輸入文檔并輸出結(jié)果到下一階段。常見(jiàn)階段包括 $match、$group、$sort 等。

CRUD 操作

CRUD 指 Mongodb 的基本數(shù)據(jù)操作:

  • CreateinsertOne()insertMany()
  • Readfind()、findOne()
  • UpdateupdateOne()、updateMany()
  • DeletedeleteOne()、deleteMany()

寫(xiě)關(guān)注(Write Concern)

寫(xiě)關(guān)注定義寫(xiě)操作的確認(rèn)級(jí)別,控制數(shù)據(jù)持久化的可靠性。例如:

db.collection.insertOne(
  { "key": "value" },
  { writeConcern: { w: "majority", j: true } } // w: 寫(xiě)入節(jié)點(diǎn)數(shù),j: 日志持久化
)

讀偏好(Read Preference)

讀偏好指定查詢(xún)請(qǐng)求的路由規(guī)則,允許從主節(jié)點(diǎn)或從節(jié)點(diǎn)讀取數(shù)據(jù)。選項(xiàng)包括 primary、secondary、nearest 等,適用于讀寫(xiě)分離場(chǎng)景。

二、Mongodb事務(wù)

事務(wù)的基本概念

MongoDB 從 4.0 版本開(kāi)始支持多文檔事務(wù),適用于副本集;從 4.2 版本開(kāi)始支持分片集群的事務(wù)。事務(wù)提供 ACID 特性,確保數(shù)據(jù)操作的原子性、一致性、隔離性和持久性。

啟用事務(wù)的前提條件

MongoDB 事務(wù)需要運(yùn)行在副本集或分片集群上,單機(jī)模式不支持事務(wù)。確保 MongoDB 實(shí)例已正確配置為副本集或分片集群。

事務(wù)的使用方法

在 MongoDB 中使用事務(wù)需要通過(guò)會(huì)話(huà)(Session)來(lái)管理。以下是一個(gè)基本的事務(wù)操作示例:

const session = db.getMongo().startSession();
session.startTransaction({
    readConcern: { level: "snapshot" },
    writeConcern: { w: "majority" }
});
try {
    const collection1 = session.getDatabase("db1").collection1;
    const collection2 = session.getDatabase("db2").collection2;
    collection1.insertOne({ name: "Alice" }, { session });
    collection2.updateOne({ name: "Bob" }, { $set: { age: 30 } }, { session });
    session.commitTransaction();
} catch (error) {
    session.abortTransaction();
    throw error;
} finally {
    session.endSession();
}

事務(wù)的隔離級(jí)別

MongoDB 提供 snapshot 隔離級(jí)別,確保事務(wù)內(nèi)讀取的數(shù)據(jù)來(lái)自同一快照。可以通過(guò) readConcern 設(shè)置:

readConcern: { level: "snapshot" }

事務(wù)的寫(xiě)關(guān)注

事務(wù)中的寫(xiě)操作可以通過(guò) writeConcern 指定確認(rèn)級(jí)別,通常設(shè)置為 majority 以確保數(shù)據(jù)持久性:

writeConcern: { w: "majority" }

事務(wù)的注意事項(xiàng)

事務(wù)中的操作必須顯式指定會(huì)話(huà)(Session),否則操作不會(huì)包含在事務(wù)中。事務(wù)的執(zhí)行時(shí)間不宜過(guò)長(zhǎng),避免鎖競(jìng)爭(zhēng)和性能問(wèn)題。事務(wù)支持的文檔操作包括插入、更新、刪除和查詢(xún)。

事務(wù)的性能優(yōu)化

為了減少事務(wù)對(duì)性能的影響,盡量縮小事務(wù)范圍,減少事務(wù)內(nèi)的操作數(shù)量。避免在事務(wù)中執(zhí)行耗時(shí)操作,如大規(guī)模數(shù)據(jù)掃描。合理設(shè)置事務(wù)超時(shí)時(shí)間,防止長(zhǎng)時(shí)間占用資源。

事務(wù)的錯(cuò)誤處理

事務(wù)執(zhí)行過(guò)程中如果發(fā)生錯(cuò)誤,必須捕獲異常并顯式調(diào)用 abortTransaction 回滾事務(wù)。確保事務(wù)結(jié)束后調(diào)用 endSession 釋放會(huì)話(huà)資源。

事務(wù)的限制

MongoDB 事務(wù)不支持某些操作,如創(chuàng)建或刪除集合、創(chuàng)建或刪除索引。事務(wù)內(nèi)的寫(xiě)操作不能影響分片鍵的值。單個(gè)事務(wù)的文檔修改量默認(rèn)限制為 16MB,超過(guò)會(huì)導(dǎo)致錯(cuò)誤。

三、Docker部署MongoDB主副本集

環(huán)境準(zhǔn)備

  • linux服務(wù)器,內(nèi)存不少于8G,cpu至少I(mǎi)5,磁盤(pán)500G起步,這里我用的是CentOS7,架構(gòu)是x86_64,通過(guò)如下命令確認(rèn)
[root@host ~]# cat /etc/os-release
NAME="CentOS Linux"
VERSION="7 (Core)"
ID="centos"
ID_LIKE="rhel fedora"
VERSION_ID="7"
PRETTY_NAME="CentOS Linux 7 (Core)"
ANSI_COLOR="0;31"
CPE_NAME="cpe:/o:centos:centos:7"
HOME_URL="https://www.centos.org/"
BUG_REPORT_URL="https://bugs.centos.org/"
CENTOS_MANTISBT_PROJECT="CentOS-7"
CENTOS_MANTISBT_PROJECT_VERSION="7"
REDHAT_SUPPORT_PRODUCT="centos"
REDHAT_SUPPORT_PRODUCT_VERSION="7"
[root@host ~]# lscpu
Architecture:          x86_64
CPU op-mode(s):        32-bit, 64-bit
Byte Order:            Little Endian
CPU(s):                16
On-line CPU(s) list:   0-15
Thread(s) per core:    2
Core(s) per socket:    8
座:                 1
NUMA 節(jié)點(diǎn):         1
廠(chǎng)商 ID:           GenuineIntel
CPU 系列:          6
型號(hào):              165
型號(hào)名稱(chēng):        Intel(R) Core(TM) i7-10700 CPU @ 2.90GHz
步進(jìn):              5
CPU MHz:             800.048
CPU max MHz:           4800.0000
CPU min MHz:           800.0000
BogoMIPS:            5800.00
虛擬化:           VT-x
L1d 緩存:          32K
L1i 緩存:          32K
L2 緩存:           256K
L3 緩存:           16384K
NUMA 節(jié)點(diǎn)0 CPU:    0-15

Docker安裝

歐拉系統(tǒng)部署Docker實(shí)踐指南, 參考前面部分就行。

具體安裝

  • 鏡像用的是mongo最新版,可以直接拉取,也可以docker run時(shí)拉取
  • 這里配置3個(gè),做1主兩從
  • 新建目錄,用于掛載存放配置文件
mkdir -p /home/mongodb  && chown -R 200 /home/mongodb
  • 確定主端口:27017,2個(gè)從分別是27018、27019
  • 命令列表
#自定義網(wǎng)絡(luò)
docker network create --subnet=172.18.0.0/16 my-network
# 查看已存在網(wǎng)絡(luò)
docker network ls
# mongo容器認(rèn)證啟動(dòng)方式
docker run --restart=always --privileged -p 27017:27017 --name mongodbMaster --network my-network --ip 172.18.0.1 -v /home/mongo/mongoMaster/config:/data/configdb -v /home/mongo/mongoMaster/db:/data/db -v /home/mongo/mongoMaster/logs:/data/log -d mongo --replSet rs
docker run --restart=always --privileged -p 27018:27017 --name mongodbSlave1 --network my-network --ip 172.18.0.2 -v /home/mongo/mongoSlave1/config:/data/configdb -v /home/mongo/mongoSlave1/db:/data/db -v /home/mongo/mongoSlave1/logs:/data/log -d mongo --replSet rs
docker run --restart=always --privileged -p 27019:27017 --name mongodbSlave2 --network my-network --ip 172.18.0.3 -v /home/mongo/mongoSlave2/config:/data/configdb -v /home/mongo/mongoSlave2/db:/data/db -v /home/mongo/mongoSlave2/logs:/data/log -d mongo --replSet rs
  • 執(zhí)行docker images | grep mongo, 發(fā)現(xiàn)3個(gè)容器已經(jīng)創(chuàng)建并運(yùn)行
  • 進(jìn)入容器,創(chuàng)建賬號(hào)、授權(quán)
docker exec -it mongodbMaster /bin/bash
進(jìn)入MongoDB交互式命令行并切換到admin數(shù)據(jù)庫(kù)
mongo
use admin
//管理員 
db.createUser({ user: 'rwuser', pwd: 'xxxxx', roles: [ { role: "userAdminAnyDatabase", db: "admin" } ] });
db.auth('rwuser', 'xxxxx') //返回1表示認(rèn)證成功
db.getCollectionNames() //所有創(chuàng)建的用戶(hù)都會(huì)存儲(chǔ)在system.users集合中
//factory-dev
use factory-dev //切換到目標(biāo)數(shù)據(jù)庫(kù)
db.createUser({ user: 'test', pwd: 'xxxxx', roles: [ { role: "readWrite", db: "db1" } ] });
db.auth('test', 'xxxxx') //返回1表示認(rèn)證成功
# 查看主節(jié)點(diǎn),找到members[].stateStr:主節(jié)點(diǎn)應(yīng)為 "PRIMARY",說(shuō)明ok。
rs:PRIMARY> rs.status()
{
        "set" : "rs",
        "date" : ISODate("2025-09-04T00:32:31.156Z"),
        "myState" : 1,
        "term" : NumberLong(335),
        "syncSourceHost" : "",
        "syncSourceId" : -1,
        "heartbeatIntervalMillis" : NumberLong(2000),
        "majorityVoteCount" : 2,
        "writeMajorityCount" : 2,
        "votingMembersCount" : 3,
        "writableVotingMembersCount" : 3,
        "optimes" : {
                "lastCommittedOpTime" : {
                        "ts" : Timestamp(1756945945, 1),
                        "t" : NumberLong(335)
                },
                "lastCommittedWallTime" : ISODate("2025-09-04T00:32:25.880Z"),
                "readConcernMajorityOpTime" : {
                        "ts" : Timestamp(1756945945, 1),
                        "t" : NumberLong(335)
                },
                "appliedOpTime" : {
                        "ts" : Timestamp(1756945945, 1),
                        "t" : NumberLong(335)
                },
                "durableOpTime" : {
                        "ts" : Timestamp(1756945945, 1),
                        "t" : NumberLong(335)
                },
                "lastAppliedWallTime" : ISODate("2025-09-04T00:32:25.880Z"),
                "lastDurableWallTime" : ISODate("2025-09-04T00:32:25.880Z")
        },
        "lastStableRecoveryTimestamp" : Timestamp(1756945915, 1),
        "electionCandidateMetrics" : {
                "lastElectionReason" : "electionTimeout",
                "lastElectionDate" : ISODate("2025-09-03T06:59:13.712Z"),
                "electionTerm" : NumberLong(335),
                "lastCommittedOpTimeAtElection" : {
                        "ts" : Timestamp(1756882537, 1),
                        "t" : NumberLong(334)
                },
                "lastSeenOpTimeAtElection" : {
                        "ts" : Timestamp(1756882547, 1),
                        "t" : NumberLong(334)
                },
                "numVotesNeeded" : 2,
                "priorityAtElection" : 1,
                "electionTimeoutMillis" : NumberLong(10000),
                "numCatchUpOps" : NumberLong(0),
                "newTermStartDate" : ISODate("2025-09-03T06:59:13.799Z"),
                "wMajorityWriteAvailabilityDate" : ISODate("2025-09-03T06:59:14.450Z")
        },
        "electionParticipantMetrics" : {
                "votedForCandidate" : true,
                "electionTerm" : NumberLong(333),
                "lastVoteDate" : ISODate("2025-09-03T06:54:18.247Z"),
                "electionCandidateMemberId" : 2,
                "voteReason" : "",
                "lastAppliedOpTimeAtElection" : {
                        "ts" : Timestamp(1756882339, 1),
                        "t" : NumberLong(331)
                },
                "maxAppliedOpTimeInSet" : {
                        "ts" : Timestamp(1756882339, 1),
                        "t" : NumberLong(331)
                },
                "priorityAtElection" : 1
        },
        "members" : [
                {
                        "_id" : 0,
                        "name" : "f1737b1cbbc5:27017",
                        "health" : 1,
                        "state" : 1,
                        "stateStr" : "PRIMARY",
                        "uptime" : 63539,
                        "optime" : {
                                "ts" : Timestamp(1756945945, 1),
                                "t" : NumberLong(335)
                        },
                        "optimeDate" : ISODate("2025-09-04T00:32:25Z"),
                        "lastAppliedWallTime" : ISODate("2025-09-04T00:32:25.880Z"),
                        "lastDurableWallTime" : ISODate("2025-09-04T00:32:25.880Z"),
                        "syncSourceHost" : "",
                        "syncSourceId" : -1,
                        "infoMessage" : "",
                        "electionTime" : Timestamp(1756882753, 1),
                        "electionDate" : ISODate("2025-09-03T06:59:13Z"),
                        "configVersion" : 5,
                        "configTerm" : 335,
                        "self" : true,
                        "lastHeartbeatMessage" : ""
                },
                {
                        "_id" : 1,
                        "name" : "172.18.0.1:27017",
                        "health" : 1,
                        "state" : 2,
                        "stateStr" : "SECONDARY",
                        "uptime" : 63207,
                        "optime" : {
                                "ts" : Timestamp(1756945945, 1),
                                "t" : NumberLong(335)
                        },
                        "optimeDurable" : {
                                "ts" : Timestamp(1756945945, 1),
                                "t" : NumberLong(335)
                        },
                        "optimeDate" : ISODate("2025-09-04T00:32:25Z"),
                        "optimeDurableDate" : ISODate("2025-09-04T00:32:25Z"),
                        "lastAppliedWallTime" : ISODate("2025-09-04T00:32:25.880Z"),
                        "lastDurableWallTime" : ISODate("2025-09-04T00:32:25.880Z"),
                        "lastHeartbeat" : ISODate("2025-09-04T00:32:31.006Z"),
                        "lastHeartbeatRecv" : ISODate("2025-09-04T00:32:31.009Z"),
                        "pingMs" : NumberLong(0),
                        "lastHeartbeatMessage" : "",
                        "syncSourceHost" : "f1737b1cbbc5:27017",
                        "syncSourceId" : 0,
                        "infoMessage" : "",
                        "configVersion" : 5,
                        "configTerm" : 335
                },
                {
                        "_id" : 2,
                        "name" : "172.18.0.2:27017",
                        "health" : 1,
                        "state" : 2,
                        "stateStr" : "SECONDARY",
                        "uptime" : 63206,
                        "optime" : {
                                "ts" : Timestamp(1756945945, 1),
                                "t" : NumberLong(335)
                        },
                        "optimeDurable" : {
                                "ts" : Timestamp(1756945945, 1),
                                "t" : NumberLong(335)
                        },
                        "optimeDate" : ISODate("2025-09-04T00:32:25Z"),
                        "optimeDurableDate" : ISODate("2025-09-04T00:32:25Z"),
                        "lastAppliedWallTime" : ISODate("2025-09-04T00:32:25.880Z"),
                        "lastDurableWallTime" : ISODate("2025-09-04T00:32:25.880Z"),
                        "lastHeartbeat" : ISODate("2025-09-04T00:32:31.009Z"),
                        "lastHeartbeatRecv" : ISODate("2025-09-04T00:32:31.006Z"),
                        "pingMs" : NumberLong(0),
                        "lastHeartbeatMessage" : "",
                        "syncSourceHost" : "f1737b1cbbc5:27017",
                        "syncSourceId" : 0,
                        "infoMessage" : "",
                        "configVersion" : 5,
                        "configTerm" : 335
                }
        ],
        "ok" : 1,
        "$clusterTime" : {
                "clusterTime" : Timestamp(1756945945, 1),
                "signature" : {
                        "hash" : BinData(0,"AAAAAAAAAAAAAAAAAAAAAAAAAAA="),
                        "keyId" : NumberLong(0)
                }
        },
        "operationTime" : Timestamp(1756945945, 1)
}
  • 一定要注意mongoDB重啟順序:docker start mongodbMaster,docker start mongodbSlave1,docker start mongodbSlave2
    先啟動(dòng)mongodbMaster那個(gè)就會(huì)成為PRIMARY,也是可以讀寫(xiě)的,其他的都是副本集,屬于SECONDARY,只能讀

驗(yàn)證

使用Navicat數(shù)據(jù)庫(kù)連接工具,點(diǎn)擊連接,選擇monogb

輸入ip 端口,賬號(hào)、密碼、數(shù)據(jù)庫(kù)名,這里端口填寫(xiě)主端口27017,最后點(diǎn)擊一下"測(cè)試連接",返回OK說(shuō)明配置連接成功。

右鍵新一個(gè)數(shù)據(jù)庫(kù)test

選擇集合,新建一個(gè)集合demo1

建表SQL,我這里用的是腳本執(zhí)行的

// ----------------------------
// Collection structure for autoId
// ----------------------------
db.getCollection("demo1").drop();
db.createCollection("demo1");
// ----------------------------
// Documents of autoId
// ----------------------------
db.getCollection("demo1").insert([ {
    _id: "6394049da732a862951f5a62",    
    autoId: NumberInt("1288641"),
    collectionName: "product"
} ]);

插入成功后,效果如下

事務(wù)驗(yàn)證這塊,因?yàn)槭褂玫拇a驗(yàn)證的,你們只能自行用代碼驗(yàn)證了,方法很簡(jiǎn)單,開(kāi)啟事務(wù)后,先執(zhí)行一個(gè)插入,再制造一個(gè)異常,比如 1/0, 看數(shù)據(jù)是否回滾。

小結(jié)

  • 遇到無(wú)法寫(xiě)入數(shù)據(jù)時(shí),先進(jìn)入任何一個(gè)容器
    比如 docker exec -it mongodbMaster /bin/bash
    mongo
    rs.status();
    查看
    members[].stateStr:主節(jié)點(diǎn)應(yīng)為 “PRIMARY”。
    members[].health:健康節(jié)點(diǎn)值為 1。
    若都為SECONDARY,說(shuō)明還沒(méi)有確定誰(shuí)是PRIMARY,先等一會(huì)再執(zhí)行看看是否有PRIMARY,有的那個(gè)就是可以連接和讀寫(xiě)的容器
    若一直都是SECONDARY,就要檢查容器情況了。

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

相關(guān)文章

  • Docker根目錄遷移與滾動(dòng)日志設(shè)置方法

    Docker根目錄遷移與滾動(dòng)日志設(shè)置方法

    在使用docker的過(guò)程中,需要注意docker的根目錄磁盤(pán)位置,默認(rèn)情況下docker的日志是沒(méi)有限制的,所有,除了要修改根目錄位置到比較大的地方,還需要設(shè)置docker滾動(dòng)日志方式,這篇文章主要介紹了Docker根目錄遷移與滾動(dòng)日志設(shè)置方法,需要的朋友可以參考下
    2025-03-03
  • Docker下Tomcat容器中使用Mysql的方法

    Docker下Tomcat容器中使用Mysql的方法

    這篇文章主要介紹了Docker下Tomcat容器中使用Mysql的方法,需要的朋友可以參考下
    2018-07-07
  • Mac OSX系統(tǒng) Docker啟用Docker遠(yuǎn)程API功能

    Mac OSX系統(tǒng) Docker啟用Docker遠(yuǎn)程API功能

    這篇文章主要介紹了Mac OSX系統(tǒng) Docker啟用Docker遠(yuǎn)程API功能的相關(guān)資料,需要的朋友可以參考下
    2016-10-10
  • Docker容器安裝指定jdk方式

    Docker容器安裝指定jdk方式

    這篇文章主要介紹了Docker容器安裝指定jdk方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-01-01
  • 使用?Docker?搭建適用于?HomeLab?的書(shū)簽導(dǎo)航應(yīng)用

    使用?Docker?搭建適用于?HomeLab?的書(shū)簽導(dǎo)航應(yīng)用

    在使用新私有化部署的書(shū)簽導(dǎo)航應(yīng)用一個(gè)月之后,我們來(lái)聊聊書(shū)簽導(dǎo)航工具,以及介紹如何使用?Docker?在幾分鐘之內(nèi)部署屬于你自己的書(shū)簽導(dǎo)航應(yīng)用
    2022-02-02
  • 使用Docker部署Python Flask應(yīng)用的完整教程

    使用Docker部署Python Flask應(yīng)用的完整教程

    Docker是一種開(kāi)源的容器化平臺(tái),可以將應(yīng)用程序及其依賴(lài)項(xiàng)打包成一個(gè)獨(dú)立的容器,實(shí)現(xiàn)快速部署和跨平臺(tái)運(yùn)行,本文將詳細(xì)介紹如何使用Docker來(lái)部署Python Flask應(yīng)用程序,幫助開(kāi)發(fā)者更高效地構(gòu)建和部署應(yīng)用,需要的朋友可以參考下
    2024-06-06
  • docker和docker?compose離線(xiàn)安裝完整步驟

    docker和docker?compose離線(xiàn)安裝完整步驟

    Docker是一種用于容器化應(yīng)用程序的開(kāi)源平臺(tái),它使得應(yīng)用程序能夠在容器中獨(dú)立運(yùn)行,提供了更高的可移植性和便攜性,這篇文章主要介紹了docker和docker?compose離線(xiàn)安裝的相關(guān)資料,需要的朋友可以參考下
    2025-10-10
  • MongoDB docker集群配置小結(jié)

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

    本文主要介紹了MongoDB docker集群配置小結(jié),主要包括如何配置MongoDB的三個(gè)節(jié)點(diǎn),以及如何使用Docker Compose快速搭建集群,具有一定的參考價(jià)值,感興趣的可以了解一下
    2023-09-09
  • Docker設(shè)置日志滾動(dòng)的解決方案

    Docker設(shè)置日志滾動(dòng)的解決方案

    Docker容器默認(rèn)將日志寫(xiě)入同一文件,可能導(dǎo)致磁盤(pán)滿(mǎn),解決方案包括修改全局docker.service配置或針對(duì)特定容器修改hostconfig.json,下面給大家介紹Docker設(shè)置日志滾動(dòng)的解決方案,感興趣的朋友跟隨小編一起看看吧
    2024-10-10
  • 基于Docker搭建Graylog分布式日志采集系統(tǒng)的詳細(xì)過(guò)程

    基于Docker搭建Graylog分布式日志采集系統(tǒng)的詳細(xì)過(guò)程

    Graylog是一個(gè)開(kāi)源的日志管理工具,支持日志收集、解析、存儲(chǔ)、搜索和可視化,它可以從各種數(shù)據(jù)源收集日志,并通過(guò)內(nèi)置的解析器將日志格式化,本文介紹基于Docker搭建Graylog分布式日志采集系統(tǒng),感興趣的朋友一起看看吧
    2025-02-02

最新評(píng)論

贡觉县| 应城市| 曲阜市| 延寿县| 察隅县| 吴忠市| 右玉县| 镇康县| 锦屏县| 枣庄市| 十堰市| 常州市| 台中市| 隆回县| 三明市| 灵山县| 内江市| 大同县| 根河市| 禄劝| 马山县| 孟连| 汾西县| 六枝特区| 伊金霍洛旗| 固安县| 北流市| 绥阳县| 垣曲县| 兴化市| 铜山县| 榆树市| 广平县| 南郑县| 瓦房店市| 泗阳县| 石景山区| 桓台县| 鄯善县| 清原| 北辰区|