# Docker 安装 Mysql , Redis,ElasticSearch,Kibana,RabbitMQ,Zipkin,Nacos,Minio Docker服务器环境搭建
一、统一虚拟机设置 1、修改VMnet8网卡 2、确认网卡信息 3、修改linux静态ip如何安装VMWare并且安装linux系统,并且能连上它
1、怎么找到各种linux下载地方
centos 镜像:http://mirror.centos.org/
2、找到最小镜像
3、磁盘40G、CPU2核、内存4G
4、默认装好纯净系统需要设置
5、设置网络
#网卡所在目录 cd /etc/sysconfig/network-scripts/ ls
# 如上图,则修改ens33即可,下面为模板, # 需要注意的字段。 # onBOOT=yes IPADDR=192.168.200.130 GATEWAY=192.168.200.2 # NETMASK=255.255.255.0 DNS1=114.114.114.114 BOOTPROTO=static TYPE=Ethernet PROXY_METHOD=none BROWSER_onLY=no BOOTPROTO=static DEFROUTE=yes IPV4_FAILURE_FATAL=no IPV6INIT=yes IPV6_AUTOCONF=yes IPV6_DEFROUTE=yes IPV6_FAILURE_FATAL=no IPV6_ADDR_GEN_MODE=stable-privacy NAME=ens33 UUID=b8fd5718-51f5-48f8-979b-b9f1f7a5ebf2 DEVICE=ens33 onBOOT=yes IPADDR=192.168.200.188 GATEWAY=192.168.200.2 NETMASK=255.255.255.0 DNS1=114.114.114.114 ### 你的网卡至少可以为 BOOTPROTO=static DEFROUTE=yes NAME=ens33 UUID=b8fd5718-51f5-48f8-979b-b9f1f7a5ebf2 DEVICE=ens33 onBOOT=yes IPADDR=192.168.200.130 GATEWAY=192.168.200.2 NETMASK=255.255.255.0 DNS1=114.114.114.1144、用xshell等工具连接
设置完以上静态ip后,使用xshell等连接使用即可
hostnamectl set-hostname lfy
5、时间同步CentOS7.9 默认已经关闭了防火墙
本地虚拟机环境会由于服务器时间问题,导致各种软件故障,需要开启时间同步
yum -y install ntp ntpdate ntpdate 0.asia.pool.ntp.org date hwclock --systohc ## 以上不运行都行 mv /etc/localtime /etc/localtime.bak ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
二、安装Docker自己建立虚拟机的集群。linux时间同步要做好。容器的时间,经常和系统时间不一样?
容器:基础镜像;alpine。 默认UTC
我们都是调整了的 CST
docker run -v /etc/localtime:/etc/localtime:ro 镜像名
官方文档:https://docs.docker.com/engine/install/centos/
sudo yum remove docker*
sudo yum install -y yum-utils
sudo yum-config-manager
--add-repo
http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
sudo yum install -y docker-ce-19.03.15 docker-ce-cli-19.03.15 containerd.io-1.4.3
sudo systemctl enable docker --now
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://82m9ar63.mirror.aliyuncs.com"],
"log-driver": "json-file",
"log-opts": {
"max-size": "100m"
}
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
#1、安装Docker-Compose, 批量启停服务 curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose chmod +x /usr/local/bin/docker-compose三、部署中间件-Docker版 1、MySQL
##1、部署 docker run -p 3306:3306 --name mysql-01 -v /mydata/mysql-01/log:/var/log/mysql -v /mydata/mysql-01/data:/var/lib/mysql -v /mydata/mysql-01/conf:/etc/mysql/conf.d -e MYSQL_ROOT_PASSWORD=root --restart=always -d mysql:5.7
##2、配置初始化 mkdir -p /mydata/mysql-01/conf && vim /mydata/mysql-01/conf/default.cnf [client] default-character-set=utf8mb4 [mysql] default-character-set=utf8mb4 [mysqld] init_connect='SET collation_connection = utf8mb4_unicode_ci' init_connect='SET NAMES utf8mb4' character-set-server=utf8mb4 collation-server=utf8mb4_unicode_ci skip-character-set-client-handshake skip-name-resolve
##3、设置root远程连接 #1、进入master容器 docker exec -it mysql /bin/bash #2、进入mysql内部 mysql –uroot -p #1)、授权root可以远程访问( 主从无关,为了方便我们远程连接mysql) grant all privileges on *.* to 'root'@'%' identified by 'root' with grant option; flush privileges; ##或者,-h docker run -it --rm mysql:5.7 mysql -uroot -h172.17.0.2 -p grant all privileges on *.* to 'root'@'%' identified by 'root' with grant option; flush privileges;2、Redis
## 1、准备redis配置文件内容 mkdir -p /mydata/redis-01/conf && vim /mydata/redis-01/conf/redis.conf #开启持久化 appendonly yes port 6379 requirepass Lfy123!@! bind 0.0.0.0
docker run -d -p 6379:6379 --restart=always -v /mydata/redis-01/conf/redis.conf:/etc/redis/redis.conf -v /mydata/redis-01/data:/data --name redis-01 redis:6.2.5 redis-server /etc/redis/redis.conf # docker run xxxx imageName redis-server xx3、ELK
# 1、设置Linux进程限制内存 vim /etc/sysctl.conf vm.max_map_count=655360 # 2、设置生效 sysctl -p # 或者 sysctl --system1、ElasticSearch
# 提前授权 mkdir -p /mydata/es-01 && chmod 777 -R /mydata/es-01
docker run --restart=always -d -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" -e ES_JAVA_OPTS="-Xms512m -Xmx512m" -e "bootstrap.memory_lock=true" -v es-config:/usr/share/elasticsearch/config -v /mydata/es-01/data:/usr/share/elasticsearch/data --ulimit nofile=65535:65535 --ulimit memlock=-1:-1 --name es-01 elasticsearch:7.13.4 #放大容器的进程树
#1、下载ik分词插件 wget https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v7.13.4/elasticsearch-analysis-ik-7.13.4.zip #2、解压 unzip -d ik elasticsearch-analysis-ik-7.13.4.zip #3、复制到容器内部plugins目录 docker cp ik 容器id:/usr/share/elasticsearch/plugins #了解下反向操作 docker cp 容器id:/usr/share/elasticsearch/xxx abc #4、重启es docker restart 容器id2、Kibana
docker run --name kib01 -d --restart=always --link 02b39a5a3874:es01 -p 5601:5601 -e "ELASTICSEARCH_HOSTS=http://es01:9200" kibana:7.13.4 #小知识: --link:alias
3、FilebeatsELK:ElasticSearch+Logstash+Kibana
EFK:ElasticSearch+Filebeats+Kibana
# 1、启动日志收集器 docker run -d --name=filebeat --restart=always -v filebeat-conf:/usr/share/filebeat -v /var/log/messages:/var/log/messages --link 02b39a5a3874:es01 elastic/filebeat:7.13.4 # 注意: # /var/log/messages 就是记录了当前主机的日志。yum mysql,redis,主机上服务的日志都在这儿 # 1、 --link 7863831f1b58:es01 要用自己es容器的id # 2、-v filebeat-conf:/usr/share/filebeat; /usr/share/filebeat下有很多东西,包含配置文件。要整个挂载出来
#1、修改配置文件: cd /var/lib/docker/volumes/filebeat-conf/_data vim filebeat.yml #内容如下
filebeat.inputs:
- type: log
enabled: true
paths:
- /var/log/messages
filebeat.config:
modules:
path: ${path.config}/modules.d
CREATE TABLE `config_info` (
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'id',
`data_id` varchar(255) NOT NULL COMMENT 'data_id',
`group_id` varchar(255) DEFAULT NULL,
`content` longtext NOT NULL COMMENT 'content',
`md5` varchar(32) DEFAULT NULL COMMENT 'md5',
`gmt_create` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`gmt_modified` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '修改时间',
`src_user` text COMMENT 'source user',
`src_ip` varchar(50) DEFAULT NULL COMMENT 'source ip',
`app_name` varchar(128) DEFAULT NULL,
`tenant_id` varchar(128) DEFAULT '' COMMENT '租户字段',
`c_desc` varchar(256) DEFAULT NULL,
`c_use` varchar(64) DEFAULT NULL,
`effect` varchar(64) DEFAULT NULL,
`type` varchar(64) DEFAULT NULL,
`c_schema` text,
PRIMARY KEY (`id`),
UNIQUE KEY `uk_configinfo_datagrouptenant` (`data_id`,`group_id`,`tenant_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='config_info';
CREATE TABLE `config_info_aggr` (
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'id',
`data_id` varchar(255) NOT NULL COMMENT 'data_id',
`group_id` varchar(255) NOT NULL COMMENT 'group_id',
`datum_id` varchar(255) NOT NULL COMMENT 'datum_id',
`content` longtext NOT NULL COMMENT '内容',
`gmt_modified` datetime NOT NULL COMMENT '修改时间',
`app_name` varchar(128) DEFAULT NULL,
`tenant_id` varchar(128) DEFAULT '' COMMENT '租户字段',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_configinfoaggr_datagrouptenantdatum` (`data_id`,`group_id`,`tenant_id`,`datum_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='增加租户字段';
CREATE TABLE `config_info_beta` (
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'id',
`data_id` varchar(255) NOT NULL COMMENT 'data_id',
`group_id` varchar(128) NOT NULL COMMENT 'group_id',
`app_name` varchar(128) DEFAULT NULL COMMENT 'app_name',
`content` longtext NOT NULL COMMENT 'content',
`beta_ips` varchar(1024) DEFAULT NULL COMMENT 'betaIps',
`md5` varchar(32) DEFAULT NULL COMMENT 'md5',
`gmt_create` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`gmt_modified` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '修改时间',
`src_user` text COMMENT 'source user',
`src_ip` varchar(50) DEFAULT NULL COMMENT 'source ip',
`tenant_id` varchar(128) DEFAULT '' COMMENT '租户字段',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_configinfobeta_datagrouptenant` (`data_id`,`group_id`,`tenant_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='config_info_beta';
CREATE TABLE `config_info_tag` (
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'id',
`data_id` varchar(255) NOT NULL COMMENT 'data_id',
`group_id` varchar(128) NOT NULL COMMENT 'group_id',
`tenant_id` varchar(128) DEFAULT '' COMMENT 'tenant_id',
`tag_id` varchar(128) NOT NULL COMMENT 'tag_id',
`app_name` varchar(128) DEFAULT NULL COMMENT 'app_name',
`content` longtext NOT NULL COMMENT 'content',
`md5` varchar(32) DEFAULT NULL COMMENT 'md5',
`gmt_create` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`gmt_modified` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '修改时间',
`src_user` text COMMENT 'source user',
`src_ip` varchar(50) DEFAULT NULL COMMENT 'source ip',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_configinfotag_datagrouptenanttag` (`data_id`,`group_id`,`tenant_id`,`tag_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='config_info_tag';
CREATE TABLE `config_tags_relation` (
`id` bigint(20) NOT NULL COMMENT 'id',
`tag_name` varchar(128) NOT NULL COMMENT 'tag_name',
`tag_type` varchar(64) DEFAULT NULL COMMENT 'tag_type',
`data_id` varchar(255) NOT NULL COMMENT 'data_id',
`group_id` varchar(128) NOT NULL COMMENT 'group_id',
`tenant_id` varchar(128) DEFAULT '' COMMENT 'tenant_id',
`nid` bigint(20) NOT NULL AUTO_INCREMENT,
PRIMARY KEY (`nid`),
UNIQUE KEY `uk_configtagrelation_configidtag` (`id`,`tag_name`,`tag_type`),
KEY `idx_tenant_id` (`tenant_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='config_tag_relation';
CREATE TABLE `group_capacity` (
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '主键ID',
`group_id` varchar(128) NOT NULL DEFAULT '' COMMENT 'Group ID,空字符表示整个集群',
`quota` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '配额,0表示使用默认值',
`usage` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '使用量',
`max_size` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '单个配置大小上限,单位为字节,0表示使用默认值',
`max_aggr_count` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '聚合子配置最大个数,,0表示使用默认值',
`max_aggr_size` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '单个聚合数据的子配置大小上限,单位为字节,0表示使用默认值',
`max_history_count` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '最大变更历史数量',
`gmt_create` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`gmt_modified` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '修改时间',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_group_id` (`group_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='集群、各Group容量信息表';
CREATE TABLE `his_config_info` (
`id` bigint(64) unsigned NOT NULL,
`nid` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
`data_id` varchar(255) NOT NULL,
`group_id` varchar(128) NOT NULL,
`app_name` varchar(128) DEFAULT NULL COMMENT 'app_name',
`content` longtext NOT NULL,
`md5` varchar(32) DEFAULT NULL,
`gmt_create` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
`gmt_modified` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
`src_user` text,
`src_ip` varchar(50) DEFAULT NULL,
`op_type` char(10) DEFAULT NULL,
`tenant_id` varchar(128) DEFAULT '' COMMENT '租户字段',
PRIMARY KEY (`nid`),
KEY `idx_gmt_create` (`gmt_create`),
KEY `idx_gmt_modified` (`gmt_modified`),
KEY `idx_did` (`data_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='多租户改造';
CREATE TABLE `tenant_capacity` (
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '主键ID',
`tenant_id` varchar(128) NOT NULL DEFAULT '' COMMENT 'Tenant ID',
`quota` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '配额,0表示使用默认值',
`usage` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '使用量',
`max_size` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '单个配置大小上限,单位为字节,0表示使用默认值',
`max_aggr_count` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '聚合子配置最大个数',
`max_aggr_size` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '单个聚合数据的子配置大小上限,单位为字节,0表示使用默认值',
`max_history_count` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '最大变更历史数量',
`gmt_create` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`gmt_modified` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '修改时间',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_tenant_id` (`tenant_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='租户容量信息表';
CREATE TABLE `tenant_info` (
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'id',
`kp` varchar(128) NOT NULL COMMENT 'kp',
`tenant_id` varchar(128) default '' COMMENT 'tenant_id',
`tenant_name` varchar(128) default '' COMMENT 'tenant_name',
`tenant_desc` varchar(256) DEFAULT NULL COMMENT 'tenant_desc',
`create_source` varchar(32) DEFAULT NULL COMMENT 'create_source',
`gmt_create` bigint(20) NOT NULL COMMENT '创建时间',
`gmt_modified` bigint(20) NOT NULL COMMENT '修改时间',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_tenant_info_kptenantid` (`kp`,`tenant_id`),
KEY `idx_tenant_id` (`tenant_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='tenant_info';
CREATE TABLE `users` (
`username` varchar(50) NOT NULL PRIMARY KEY,
`password` varchar(500) NOT NULL,
`enabled` boolean NOT NULL
);
CREATE TABLE `roles` (
`username` varchar(50) NOT NULL,
`role` varchar(50) NOT NULL,
UNIQUE INDEX `idx_user_role` (`username` ASC, `role` ASC) USING BTREE
);
CREATE TABLE `permissions` (
`role` varchar(50) NOT NULL,
`resource` varchar(255) NOT NULL,
`action` varchar(8) NOT NULL,
UNIQUE INDEX `uk_role_permission` (`role`,`resource`,`action`) USING BTREE
);
INSERT INTO users (username, password, enabled) VALUES ('nacos', '$2a$10$EuWPZHzz32dJN7jexM34MOeYirDdFAZm2kuWj7VEOJhhZkDrxfvUu', TRUE);
INSERT INTO roles (username, role) VALUES ('nacos', 'ROLE_ADMIN');
#1、准备nacos配置文件信息 conf/application.properties mkdir -p /mydata/nacos/conf/ && vim /mydata/nacos/conf/application.properties ##内容如下,注意改成自己数据库域名和账号密码 spring.datasource.platform=mysql db.num=1 db.url.0=jdbc:mysql://mysql-01:3306/nacos_config?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true db.user=root db.password=root
#docker pull nacos/nacos-server:2.0.2 docker run -d -p 8848:8848 --name=nacos --link b9c669ab9c17:mysql-01 -v /mydata/nacos/conf/:/home/nacos/init.d/ -e MODE=standalone --restart=always nacos/nacos-server:2.0.2 #访问8848,默认账号密码为 nacos:nacos 进去以后一定修改为自己的;如: lfy123456 docker run -d -p 8848:8848 --name=nacos -e MODE=standalone --restart=always nacos/nacos-server:2.0.28、Minio
OSS(Object Storage Service):对象存储服务
http://docs.minio.org.cn/docs/
docker run -p 9000:9000 -p 9001:9001 -d --restart=always -v /ossdata:/data -v /mydata/minio/config:/root/.minio -v /etc/localtime:/etc/localtime:ro -e "MINIO_ACCESS_KEY=admin" -e "MINIO_SECRET_KEY=admin123456" --name minio minio/minio server --console-address ":9001" /data四、访问文档
192.168.200.188:8848/nacos五、前端部署
## 1、准备全局加速 npm config set registry https://registry.npm.taobao.org npm config set sass_binary_site=https://npm.taobao.org/mirrors/node-sass ## 2、安装前端依赖 npm install ## 3、重新install npm run dev
docker run -d -p 80:80 --name gmall-admin-vue --restart=always -v /mydata/admin-vue:/usr/share/nginx/html nginx #额外 --add-host=myhostname:10.180.8.1 #compose用 extra_hosts: - "somehost:162.242.195.82" - "otherhost:50.31.209.229"
附录:云服务器使用 1、注册云平台恭喜~~~
前置基础环境搭建完成
注册云平台:
阿里云 aliyun.com腾讯云 cloud.tencent.com华为云 cloud.huawei.com
青云 qingcloud.com
2、云平台核心 1、ECS百度云 cloud.baidu.com
2、VPC云服务器
3、安全组隔离的私有网络
防火墙控制



