linux环境部署与搭建
一、Docker安装
https://www.cnblogs.com/Bernard94/p/14216381.html
1.安装前卸载旧版docker
yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine
2.安装基础环境
yum install -y yum-utils
3.设置镜像仓库
yum-config-manager \
--add-repo \
http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
4.更新yum软件包索引
yum makecache fast
5.安装最新Docker
yum install docker-ce docker-ce-cli containerd.io
6.启动Docker
systemctl start docker
7.验证Docker是否安装成功
docker version
二、mysql安装
https://www.cnblogs.com/sablier/p/11605606.html
1.拉取镜像
docker pull mysql:5.7 # 拉取 mysql 5.7
docker pull mysql # 拉取最新版mysql镜像
2.运行
docker run -p 33061:3306 --restart=always --name mysql --privileged=true -v /opt/mysql/data:/var/lib/mysql -v /usr/local/docker/mysql/conf/my.cnf:/etc/mysql/mysql.conf.d/mysqld.cnf -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7 --lower_case_table_names=1 --sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
注:lniux中安装mysql可能会出现忽略数据库表格大小写问题
三、redis安装
https://blog.csdn.net/wejack/article/details/117334508
1.拉取镜像
docker pull redis
2.运行
docker run --name redis -p 63891:6379 --restart=always -d 3358aea34e8c --requirepass 123456 --bind 0.0.0.0 --protected-mode no
四、influxdb安装
https://www.jianshu.com/p/c83224099f85、
https://docs.influxdata.com/influxdb/v2.0/install/?t=Docker
1.拉取镜像
docker pull influxdb:2.0.4
2.运行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
注:在使用influxdb时需注意服务器的时区问题 date查询及时区修改为CST
五、zookeeper、kafka安装
https://blog.csdn.net/keketrtr/article/details/114374371
1.拉取zookeeper镜像
docker pull wurstmeister/zookeeper
2.运行zookeeper
docker run -d --name zookeeper -p 2181:2181 -t wurstmeister/zookeeper
3.拉取kafka镜像
docker pull wurstmeister/kafka
4.运行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
注:KAFKA_ZOOKEEPER_CONNECT 填内网 ip,KAFKA_ADVERTISED_LISTENERS 填外网 ip
六、nacos安装
https://blog.csdn.net/qq_34807429/article/details/103779305
1.拉取镜像
docker pull nacos/nacos-server
2.运行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
以参数的形式启动,启动时持久化
docker run -d -e MODE=standalone -e PREFER_HOST_MODE=hostname -e SPRING_DATASOURCE_PLATFORM=mysql -e MYSQL_SERVICE_HOST=192.168.1.126 -e MYSQL_SERVICE_PORT=3306 -e MYSQL_SERVICE_USER=root -e MYSQL_SERVICE_PASSWORD=123456 -e MYSQL_SERVICE_DB_NAME=ibms-nacos -e NACOS_SERVER_IP=192.168.1.126 -e JVM_XMS=128m -e JVM_XMX=128m -p 8848:8848 -p 9848:9848 -p 9849:9849 -v /home/nacos/logs:/home/nacos/logs --name nacos nacos/nacos-server:2.0.3
注:nacos安装完成后需做持久化
七、MongoDB安装
https://blog.csdn.net/qq_37557563/article/details/115514901、
https://blog.csdn.net/biao0309/article/details/87641272
安装mongodb之前,需先安装docker-compose
1.创建文件夹
mkdir /home/docker/mongodb
2.配置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=admin
4.使用Mongodb官方推荐keyFile的生成方式
# 400权限是要保证安全性,否则mongod启动会报错
openssl rand -base64 756 > mongodb.key
chmod 400 mongodb.key
注:每一个副本集成员都要使用相同的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 创建容器在同一局域网下,容器之间通信。
5.配置副本集
切换到docker-compose.yml所在目录,执行命令docker-compose up -d启动数据库,-d标识后台启动并运行所有的容器。
通过命令 docker exec -it mongo /bin/bash进入容器进行配置
6.进入mongo
#: mongo -u admin -p root
7.初始化副本集配置
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副本集的配置,优先权重最高的
单体版本:(启动时加权限)
docker run --name mongo-server -p 27017:27017 -e MONGO_INITDB_ROOT_USERNAME=root -e MONGO_INITDB_ROOT_PASSWORD=123456 -v /usr/local/mongodb/data:/data/db -v /usr/local/mongodb/log:/data/log -d 804494a44af1 --auth
八、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
注:根据不同的认证方式,需修改对应的配置文件
八、RabbitMq安装
拉取镜像:
docker pull rabbitmq
启动:
docker run -d -p 15672:15672 -p 5672:5672 -e RABBITMQ_DEFAULT_VHOST=/ -e RABBITMQ_DEFAULT_USER=root -e RABBITMQ_DEFAULT_PASS=123456 --hostname myRabbit --name rabbitmq 792f1c5d392c
进入容器配置插件
docker exec -it ab459dce632a /bin/sh
#:rabbitmq-plugins enable rabbitmq_management
八、nginx部署
拉取镜像:
docker pull nginx
启动:
docker run -it -d --name fsp-nginx --privileged=true -p 8082:80 -p 8207:8207 -p 8203:8203 -p 8204:8204 -v /home/sctech/projects/OptiFsp:/usr/share/nginx/html -v /home/sctech/projects/conf/nginx.conf:/etc/nginx/nginx.conf -v /home/sctech/projects/conf/default.conf:/etc/nginx/conf.d/default.conf -v /home/sctech/projects/nginx/logs:/var/log/nginx 76c69feac34e