1.安装前卸载旧版dockerhttps://www.cnblogs.com/Bernard94/p/14216381.html
yum remove docker
docker-client
docker-client-latest
docker-common
docker-latest
docker-latest-logrotate
docker-logrotate
docker-engine
2.安装基础环境
yum install -y yum-utils3.设置镜像仓库
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo4.更新yum软件包索引
yum makecache fast5.安装最新Docker
yum install docker-ce docker-ce-cli containerd.io6.启动Docker
systemctl start docker7.验证Docker是否安装成功
docker version二、mysql安装
1.拉取镜像https://www.cnblogs.com/sablier/p/11605606.html
docker pull mysql:5.7 # 拉取 mysql 5.7 docker pull mysql # 拉取最新版mysql镜像2.运行
docker run -p 3306:3306 --restart=always --name mysql -v /home/docker/mysql/conf:/etc/mysql -v /home/docker/mysql/logs:/var/log/mysql -v /home/docker/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7
三、redis安装注:lniux中安装mysql可能会出现忽略数据库表格大小写问题
1.拉取镜像https://blog.csdn.net/wejack/article/details/117334508
docker pull redis2.运行
docker run --name redis -p 6379:6379 --restart=always -d redis:6.2.6 --requirepass 123456四、influxdb安装
1.拉取镜像https://www.jianshu.com/p/c83224099f85、
https://docs.influxdata.com/influxdb/v2.0/install/?t=Docker
docker pull influxdb:2.0.42.运行influxdb
docker run -d --cap-add SYS_TIME --name influxdb --restart always -p 8086:8086 -v /home/influxdb/data:/var/lib/influxdb2 influxdb:2.0.4参考运行方法2:
mkdir /home/docker/influxdb && docker run --rm influxdb:2.0.9 influxd print-config > /home/docker/influxdb/config.yml && docker run -p 8086:8086 --name influxdb -- restart=always -v /home/docker/influxdb/data:/var/lib/influxdb2 -v /home/docker/influxdb/config.yml:/etc/influxdb2/config.yml -d influxdb:2.0.9
五、zookeeper、kafka安装注:在使用influxdb时需注意服务器的时区问题 date查询及时区修改为CST
1.拉取zookeeper镜像https://blog.csdn.net/keketrtr/article/details/114374371
docker pull wurstmeister/zookeeper2.运行zookeeper
docker run -d --name zookeeper -p 2181:2181 -t wurstmeister/zookeeper3.拉取kafka镜像
docker pull wurstmeister/kafka4.运行kafka
docker run -d --name kafka -p 9092:9092 --restart=always -e KAFKA_BROKER_ID=0 -e KAFKA_ZOOKEEPER_CONNECT=183.1.1.4:2181 -e KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://127.0.0.1:9092 -e KAFKA_LISTENERS=PLAINTEXT://127.0.0.1:9092 -t wurstmeister/kafka
六、nacos安装注:KAFKA_ZOOKEEPER_CONNECT 填内网 ip,KAFKA_ADVERTISED_LISTENERS 填外网 ip
1.拉取镜像https://blog.csdn.net/qq_34807429/article/details/103779305
docker pull nacos/nacos-server2.运行nacos
docker run -d --name nacos -p 8848:8848 -p 9848:9848 -p 9849:9849 --restart=always -e PREFER_HOST_MODE=hostname -e MODE=standalone nacos/nacos-server:2.0.3
七、MongoDB安装注:nacos安装完成后需做持久化
https://blog.csdn.net/qq_37557563/article/details/115514901、
https://blog.csdn.net/biao0309/article/details/87641272
安装mongodb之前,需先安装docker-compose
1.创建文件夹mkdir /home/docker/mongodb2.配置docker-compose.yml
version: '3.1'
services:
mongodb1:
image: mongo
restart: always
container_name: mongo1
volumes:
- ./data/db/mongo1:/data/db
- ./mongodb.key:/data/mongodb.key
ports:
- 27017:27017
environment:
MONGO_INITDB_ROOT_USERNAME: ${MONGO_INITDB_ROOT_USERNAME}
MONGO_INITDB_ROOT_PASSWORD: ${MONGO_INITDB_ROOT_PASSWORD}
networks:
- mongoNet
command: mongod --replSet mongos --keyFile /data/mongodb.key
entrypoint:
- bash
- -c
- |
chmod 400 /data/mongodb.key
chown 999:999 /data/mongodb.key
exec docker-entrypoint.sh $$@
mongodb2:
image: mongo
restart: always
container_name: mongo2
volumes:
- ./data/db/mongo2:/data/db
- ./mongodb.key:/data/mongodb.key
ports:
- 37017:27017
environment:
MONGO_INITDB_ROOT_USERNAME: ${MONGO_INITDB_ROOT_USERNAME}
MONGO_INITDB_ROOT_PASSWORD: ${MONGO_INITDB_ROOT_PASSWORD}
networks:
- mongoNet
command: mongod --replSet mongos --keyFile /data/mongodb.key
entrypoint:
- bash
- -c
- |
chmod 400 /data/mongodb.key
chown 999:999 /data/mongodb.key
exec docker-entrypoint.sh $$@
mongodb3:
image: mongo
restart: always
container_name: mongo3
volumes:
- ./data/db/mongo3:/data/db
- ./mongodb.key:/data/mongodb.key
ports:
- 47017:27017
environment:
MONGO_INITDB_ROOT_USERNAME: ${MONGO_INITDB_ROOT_USERNAME}
MONGO_INITDB_ROOT_PASSWORD: ${MONGO_INITDB_ROOT_PASSWORD}
networks:
- mongoNet
command: mongod --replSet mongos --keyFile /data/mongodb.key
entrypoint:
- bash
- -c
- |
chmod 400 /data/mongodb.key
chown 999:999 /data/mongodb.key
exec docker-entrypoint.sh $$@
networks:
mongoNet:
driver: bridge
3.创建.env文件,主要作用是初始化数据库账号密码
MONGO_INITDB_ROOT_USERNAME=root MONGO_INITDB_ROOT_PASSWORD=admin4.使用Mongodb官方推荐keyFile的生成方式
# 400权限是要保证安全性,否则mongod启动会报错 openssl rand -base64 756 > mongodb.key chmod 400 mongodb.key
5.配置副本集注:每一个副本集成员都要使用相同的keyFile文件
- chown 999:999 /data/mongodb.key 999用户是容器中的mongod用户,通过chown修改文件用户权限。
- mongod --replSet mongos --keyFile /data/mongodb.key 启动命令,–replSet mongos 以副本集形式启动并将副本集名字命名为 mongos ,–keyFile /data/mongodb.key 设置keyFile,用于副本集通信,文件通过 volumes 映射到容器内。
- networks 创建容器在同一局域网下,容器之间通信。
切换到docker-compose.yml所在目录,执行命令docker-compose up -d启动数据库,-d标识后台启动并运行所有的容器。
通过命令 docker exec -it mongo /bin/bash进入容器进行配置
6.进入mongo#: mongo -u admin -p root7.初始化副本集配置
rs.initiate({
_id: "mongos",
members: [
{ _id : 0, host : "192.168.1.xxx:27017" },
{ _id : 1, host : "192.168.1.xxx:27018" },
{ _id : 2, host : "192.168.1.xxx:27019" }
]
});
9.配置仲裁节点
mongos:PRIMARY> rs.addArb("192.168.1.xx:27019")
10.修改权重(优先级)
conf = rs.config() #获取副本集的配置,默认权重都是1 conf.members[0].priority = 10 #索引号从0开始,每次递增1,类似数组 conf.members[1].priority = 5 conf.members[2].priority = 2 rs.reconfig(conf) #更新mongodb副本集的配置,优先权重最高的八、EMQ安装
https://www.emqx.io/docs/zh/v4.4/getting-started/install.html
安装并启动:
$ docker run -d --name emqx -p 1883:1883 -p 8081:8081 -p 8083:8083 -p 8883:8883 -p 8084:8084 -p 18083:18083 emqx/emqx:v4.0.0
注:根据不同的认证方式,需修改对应的配置文件



