docker部署应用

docker搭建集群redis

mkdir /docker

mkdir redis-cluster/

touch redis-cluster.tmpl 

Vi redis-cluster.tmpl 

port ${PORT}

protected-mode no

cluster-enabled yes

cluster-config-file nodes.conf

cluster-node-timeout 5000

cluster-announce-ip 10.29.40.204

cluster-announce-port ${PORT}

cluster-announce-bus-port 1${PORT}

appendonly yes

for port in `seq 8001 8003`; do \

mkdir -p ./${port}/conf \

&& PORT=${port} envsubst < ./redis-cluster.tmpl > ./${port}/conf/redis.conf \

&& mkdir -p ./${port}/data; \

done

for port in `seq 8001 8003`; do \

docker run -d -ti \

-v /docker/redis-cluster/${port}/conf/redis.conf:/usr/local/etc/redis/redis.conf \

-v /docker/redis-cluster/${port}/data:/data \

--restart always --name redis-${port} --net host \

--sysctl net.core.somaxconn=1024 redis redis-server /usr/local/etc/redis/redis.conf; \

done

docker ps

docker exec -it redis-8001 bash

cd /usr/local/bin/

redis-cli --cluster create \

10.29.40.204:8001 \

10.29.40.204:8002 \

10.29.40.204:8003

yes

redis-cli -c -h 10.29.40.204 -p 8001

docker 安装redis集群

配置文件

docker run --network host -d --privileged=true --name redis-01 \

-v /etc/localtime:/etc/localtime \

-v /data/redis/node1/conf/redis.conf:/etc/redis/redis.conf \

-v /data/redis/node1/data:/opt/data \

-v /data/redis/node1/log:/opt/log redis \

redis-server /etc/redis/redis.conf

docker run --network host -d --privileged=true --name redis-02 \

-v /etc/localtime:/etc/localtime \

-v /data/redis/node2/conf/redis.conf:/etc/redis/redis.conf \

-v /data/redis/node2/data:/opt/data \

-v /data/redis/node2/log:/opt/log redis \

redis-server /etc/redis/redis.conf

docker run --network host -d --privileged=true --name redis-03 \

-v /etc/localtime:/etc/localtime \

-v /data/redis/node3/conf/redis.conf:/etc/redis/redis.conf \

-v /data/redis/node3/data:/opt/data \

-v /data/redis/node3/log:/opt/log redis \

redis-server /etc/redis/redis.conf

chmod 777 /data/redis -R

组件集群

nsenter -t 28866 -m redis-cli -h 127.0.0.1 -p 6377 --cluster create 192.168.200.128:6377 192.168.200.128:6378 192.168.200.128:6379 --cluster-replicas 0

加权限验证

127.0.0.1:6377> config set masterauth 123

OK

127.0.0.1:6377> config set requirepass 123

OK

127.0.0.1:6377> config rewrite

1. 先创建3个节点所需的目录,这些目录挂载到容器里面(数据存储目录,日志存储目录),这些目录分配权限 chmod -R 777

2. 分别启动3个容器,此时各个redis是相互独立,还没有加入集群

3. redis组件集群

4. 权限配置

docker 安装mongodb集群

docker pull mongo

docker save -o /usr/mongo.tar mongo:latest

docker load -i mongo.tar

创建容器

docker run --name m0 -p 37017:27017 -d mongo --replSet "gyrx1"

docker run --name m1 -p 47017:27017 -d mongo --replSet "gyrx1"

docker run --name m2 -p 57017:27017 -d mongo --replSet "gyrx1"

进入容器

docker exec -it 容器id  /bin/bash 

docker exec -it e7acdaf2c8e4 /bin/bash 

mongo --host 10.29.40.204 --port 37017

初始化

rs.initiate(

{

_id: "gyrx1",

members: [

{ _id: 0, host : "10.29.40.204:37017" },

{ _id: 1, host : "10.29.40.204:47017" },

{ _id: 2, host : "10.29.40.204:57017" }

]

}

);

验证

rs.conf()

rs.status()

docker安装mongodb有集群间安全验证的副本集集群

无网络状态

docker pull mongo

docker save -o /usr/mongo.tar mongo:latest

docker load -i mongo.tar

docker run --name mongod -p  27016:27017

mkdir -p /data/mongo-rs/{data01,data02,data03,key,backup}

cd /data/mongo-rs

openssl rand -base64 600 > key/mongo-rs.key

chmod 600 key/mongo-rs.key

net:

port: 27017

#bindIp: 0.0.0.0

systemLog:

logAppend: true

#destination: file

#path: /opt/mongo/logs/mongod.log

security:

keyFile: "/data/configdb/mongodbKeyfile.key"

authorization: "enabled"

replication:

replSetName: "mongoRs"

docker network ls

docker network inspect br0

docker run --network br0 -di --name=mongo0 -p 27817:27017 -v /data/mongo0/configdb:/data/configdb/ -v /data/mongo0/db/:/data/db/ mongo:latest --replSet "mongoRs" --bind_ip_all -f /data/configdb/mongod.conf

docker run --network br0 -di --name=mongo1 -p 27818:27017 -v /data/mongo1/configdb:/data/configdb/ -v /data/mongo1/db/:/data/db/ mongo:latest --replSet "mongoRs" --bind_ip_all -f /data/configdb/mongod.conf

docker run --network br0 -di --name=mongo2 -p 27819:27017 -v /data/mongo2/configdb:/data/configdb/ -v /data/mongo2/db/:/data/db/ mongo:latest --replSet "mongoRs" --bind_ip_all -f /data/configdb/mongod.conf

docker exec -it mongo0 bash

mongo --host 10.29.40.204 --port 27818

var config={

_id:"mongoRs",

members:[

{_id:0,host:"10.29.40.204:27817"},

{_id:1,host:"10.29.40.204:27818"},

{_id:2,host:" 10.29.40.204:27819",arbiterOnly:true}

]};

rs.initiate(config)

rs.status()

db.createUser({

user: "admin",

pwd: "admin",

roles: [

{role: "readWriteAnyDatabase", db: "admin"},

{role: "dbAdminAnyDatabase", db: "admin"},

{role: "userAdminAnyDatabase", db: "admin"}

]

})

db.createUser({

user: "clusadmin",

pwd: "clusadmin",

roles: [

{role: "clusterAdmin", db: "admin"},

{role: "clusterManager", db: "admin"},

{role: "clusterMonitor", db: "admin"}

]

})

db.createUser({

user: "usertest1",

pwd: "test",

roles: [

{role: "readWrite", db: "test"},

{role: "dbAdmin", db: "test"},

{role: "userAdmin", db: "test"}

]

})

exit

删除容器

开启权限验证

docker run --network br0 -di --name=mongo0 -p 27817:27017 -v /data/mongo0/configdb:/data/configdb/ -v /data/mongo0/db/:/data/db/ mongo:latest -f /data/configdb/mongod.conf

docker run --network br0 -di --name=mongo1 -p 27818:27017 -v /data/mongo1/configdb:/data/configdb/ -v /data/mongo1/db/:/data/db/ mongo:latest -f /data/configdb/mongod.conf

docker run --network br0 -di --name=mongo2 -p 27819:27017 -v /data/mongo2/configdb:/data/configdb/ -v /data/mongo2/db/:/data/db/ mongo:latest -f /data/configdb/mongod.conf

docker exec -it mongo0 bash

mongo --host 10.29.40.204 --port 27818 --authenticationDatabase admin -u sAdmin -p sAdmin

rs.status()

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值