docker run --name configsvr0 -d mongo:3.6.2-jessie --configsvr --replset "rs_configsvr" --bind_ip_all
docker run --name configsvr1 -d mongo:3.6.2-jessie --configsvr --replset "rs_configsvr" --bind_ip_all
docker run --name configsvr2 -d mongo:3.6.2-jessie --configsvr --replset "rs_configsvr" --bind_ip_all
$ docker ps
image command created status ports names
mongo:3.6.2-jessie "docker-entrypoint..." 8 seconds ago up 6 seconds 27019/tcp configsvr2
mongo:3.6.2-jessie "docker-entrypoint..." 9 seconds ago up 7 seconds 27019/tcp configsvr1
mongo:3.6.2-jessie "docker-entrypoint..." 19 seconds ago up 16 seconds 27019/tcp configsvr0
通過docker inspect
找到三個配置服務例項的 ip。
比如docker inspect configsvr0 | grep ipaddress
,
又由於--configsvr
的預設埠為 27019。所以配置服務的位址為
初始化
docker exec -it configsvr0 bash
mongo --host 172.17.0.2 --port 27019
rs.initiate(
, ,
]})
連線字串為
mongodb:
與上面同理,不再贅述,直接上命令列。
docker run --name shardsvr00 -d mongo:3.6.2-jessie --shardsvr --replset "rs_shardsvr0" --bind_ip_all
docker run --name shardsvr01 -d mongo:3.6.2-jessie --shardsvr --replset "rs_shardsvr0" --bind_ip_all
docker run --name shardsvr02 -d mongo:3.6.2-jessie --shardsvr --replset "rs_shardsvr0" --bind_ip_all
docker run --name shardsvr10 -d mongo:3.6.2-jessie --shardsvr --replset "rs_shardsvr1" --bind_ip_all
docker run --name shardsvr11 -d mongo:3.6.2-jessie --shardsvr --replset "rs_shardsvr1" --bind_ip_all
docker run --name shardsvr12 -d mongo:3.6.2-jessie --shardsvr --replset "rs_shardsvr1" --bind_ip_all
通過docker inspect
找到對應例項的 ip。
比如docker inspect shardsvr00 | grep ipaddress
,
又由於--shardsvr
的預設埠為 27018。所以位址為
由於後來才增加的 shardsvr1,所以 ip 末尾是 9 而不是 8。
$ docker exec -it shardsvr00 bash
mongo --host 172.17.0.5 --port 27018
> rs.initiate(
, ,]})
# 輸出
mongo --host 172.17.0.9 --port 27018
> rs.initiate(
, ,
]})
連線字串為
mongodb:
mongodb:
由於映象的預設入口是mongod
,所以要通過--entrypoint "mongos"
將其改為mongos
:
docker run --name mongos0 -d --entrypoint "mongos" mongo:3.6.2-jessie --configdb rs_configsvr/172.17.0.2:27019,172.17.0.3:27019,172.17.0.4:27019 --bind_ip_all
位址為172.17.0.8:27017
$ docker exec -it mongos bash
$ mongo --host 172.17.0.8 --port 27017
> sh.addshard("rs_shardsvr0/172.17.0.5:27018,172.17.0.6:27018,172.17.0.7:27018")
}, "operationtime" : timestamp(1518405986, 8)
}> sh.addshard("rs_shardsvr1/172.17.0.9:27018,172.17.0.10:27018,172.17.0.11:27018")
> sh.enablesharding("test")
}, "operationtime" : timestamp(1518406101, 8)
}
對test.order
的_id
字段進行雜湊分片:
> sh.shardcollection("test.order", )
}, "operationtime" : timestamp(1518406317, 6)
}
插入資料
use test
for (i = 1; i <= 1000; i=i+1))
}
檢視資料分布
mongos> db.order.find().count()
1000
rs_shardsvr0:primary> db.order.find().count()
526rs_shardsvr1:primary> db.order.find().count()
474
linux使用docker安裝mongo
拉取mongo映象,mongo latest 指最新版本,也可指定版本號拉取 mongo latest docker pull mongo latest新增容器並執行mongo,設定登陸許可權 docker run itd name mongo p 27017 27017 mongo auth 進入...
Docker 使用Docker部署Node服務
docker 是乙個開源的容器引擎。開發者可以將自己的應用以及依賴打包為乙個可移植的容器,然後發布到 linux 機器上。它類似於乙個輕量級的虛擬機器,極大地方便了使用者在伺服器端部署和管理應用環境。apt install docker.io安裝成功後檢視docker版本 建立package.jso...
使用Docker部署Gitlab
由於公司的 伺服器已使用gitosis搭建,但由於使用者和許可權管理太麻煩,現在想在原有伺服器上再搭建gitlab,使用gitlab官方方法直接安裝,會導致與gitosis衝突,使得gitosis不可用,因為要保持兩個服務同時存在,所以就想到利用docker來搭建gitlab。以下以ubuntu 1...