Docker 安装 Mysql , Redis,ElasticSearch,Kibana,RabbitMQ,Zipkin,Nacos,Minio Docker服务器环境搭建

java全知识点学习笔记 思维导图 面试跳槽必备 码云仓库地址 https://gitee.com/vx202158/vx202158.git

                                                           # Docker 安装 Mysql , Redis,ElasticSearch,Kibana,RabbitMQ,Zipkin,Nacos,Minio   Docker服务器环境搭建

01-服务器环境搭建

如何安装VMWare并且安装linux系统,并且能连上它

1、怎么找到各种linux下载地方

​ centos 镜像:http://mirror.centos.org/

2、找到最小镜像

3、磁盘40G、CPU2核、内存4G

Docker 安装 Mysql , Redis,ElasticSearch,Kibana,RabbitMQ,Zipkin,Nacos,Minio Docker服务器环境搭建_第1张图片

4、默认装好纯净系统需要设置

5、设置网络

一、统一虚拟机设置

1、修改VMnet8网卡

Docker 安装 Mysql , Redis,ElasticSearch,Kibana,RabbitMQ,Zipkin,Nacos,Minio Docker服务器环境搭建_第2张图片

2、确认网卡信息

Docker 安装 Mysql , Redis,ElasticSearch,Kibana,RabbitMQ,Zipkin,Nacos,Minio Docker服务器环境搭建_第3张图片

3、修改linux静态ip

#网卡所在目录
cd /etc/sysconfig/network-scripts/

ls 

image-20220301191850131

# 如上图,则修改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.114

image-20220301191749773

4、用xshell等工具连接

设置完以上静态ip后,使用xshell等连接使用即可

hostnamectl set-hostname lfy

CentOS7.9 默认已经关闭了防火墙

5、时间同步

本地虚拟机环境会由于服务器时间问题,导致各种软件故障,需要开启时间同步

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

自己建立虚拟机的集群。linux时间同步要做好。容器的时间,经常和系统时间不一样?

容器:基础镜像;alpine。 默认UTC

我们都是调整了的 CST

docker run -v /etc/localtime:/etc/localtime:ro 镜像名

二、安装Docker

官方文档: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 xx

3、ELK

# 1、设置Linux进程限制内存
vim /etc/sysctl.conf

vm.max_map_count=655360


# 2、设置生效
sysctl -p
# 或者 sysctl --system 

1、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 容器id

2、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

ELK:ElasticSearch+Logstash+Kibana

EFK:ElasticSearch+Filebeats+Kibana

3、Filebeats

# 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/*.yml
    reload.enabled: false

processors:
- add_cloud_metadata: ~
- add_docker_metadata: ~

output.elasticsearch:
  hosts: 'es01:9200'
  indices:
    - index: "filebeat-%{+yyyy.MM.dd}"

问题解决:

如果此时docker logs xx,查看filebeat日志,会打印没有var/log/messages 的权限

chmod 777 -R /var/log/messages

Docker 安装 Mysql , Redis,ElasticSearch,Kibana,RabbitMQ,Zipkin,Nacos,Minio Docker服务器环境搭建_第4张图片

4、Logstash

  • 因为logstash是jvm跑的,资源消耗比较大,所以后来作者又用golang写了一个功能较少但是资源消耗也小的轻量级的logstash-forwarder。不过作者只是一个人,加入http://elastic.co公司以后,因为es公司本身还收购了另一个开源项目packetbeat,而这个项目专门就是用golang的,有整个团队,所以es公司干脆把logstash-forwarder的开发工作也合并到同一个golang团队来搞,于是新的项目就叫 filebeat了。

  • logstash 和filebeat都具有日志收集功能,filebeat更轻量,占用资源更少,但logstash 具有filter功能,能过滤分析日志。一般结构都是filebeat采集日志,然后发送到消息队列,redis,kafaka。然后logstash去获取,利用filter功能过滤分析,然后存储到elasticsearch中

  • 就像垃圾车和环卫工人的关系。

    垃圾车也能直接让你把垃圾扔车上带走,但他动静大,环卫工人动静小,不吵到你。

#1、logstash配置
mkdir -p /mydata/logstash && vim /mydata/logstash/logstash.conf


input {
    tcp {
      mode => "server"
      host => "0.0.0.0"
      port => 5044
      codec => json_lines
    }
}
filter{
    
}
output {
    elasticsearch {
      hosts => "es01:9200"
      index => "gmall-%{+YYYY.MM.dd}"
    }
}
docker run --name logstash -p 5044:5044 \
--restart=always \
--link 02b39a5a3874:es01 \
-v /mydata/logstash/logstash.conf:/usr/share/logstash/pipeline/logstash.conf \
-d logstash:7.13.4

4、RabbitMQ

https://hub.docker.com/_/rabbitmq?tab=description&page=1&ordering=last_updated

#docker pull rabbitmq:3.8-management
docker run -d --name rabbit01 -e RABBITMQ_DEFAULT_USER=admin \
-e RABBITMQ_DEFAULT_PASS=admin \
-p 15672:15672 -p 5672:5672 \
--hostname gmall-rabbit --restart=always \
-v rabbit-data:/var/lib/rabbitmq \
-v rabbit-conf:/etc/rabbitmq \
rabbitmq:3.8-management

5、Zipkin

Sleuth

#docker pull openzipkin/zipkin:2
docker run -d --restart=always -p 9411:9411 \
--name zipkin \
openzipkin/zipkin:2

SkyWalking;也是同类很不错的中间件

https://skywalking.apache.org/docs/

6、Sentinel

https://github.com/alibaba/Sentinel/wiki/%E4%BB%8B%E7%BB%8D

需要自制镜像:

https://github.com/alibaba/Sentinel/wiki/%E6%8E%A7%E5%88%B6%E5%8F%B0#2-%E5%90%AF%E5%8A%A8%E6%8E%A7%E5%88%B6%E5%8F%B0

# 1、下载sentinel对应版本控制台
wget https://github.com/alibaba/Sentinel/releases/download/1.8.2/sentinel-dashboard-1.8.2.jar

#官网默认的启动命令
java -Dserver.port=8080 -Dcsp.sentinel.dashboard.server=localhost:8080 -Dproject.name=sentinel-dashboard -jar sentinel-dashboard.jar
#在下载的jar包位置编写如下
vim Dockerfile

FROM openjdk:8
COPY sentinel-dashboard-1.8.2.jar /app.jar
EXPOSE 8080
ENTRYPOINT ["java","-Dserver.port=8080","-Dcsp.sentinel.dashboard.server=localhost:8080","-Dproject.name=sentinel-dashboard","-jar","/app.jar"]
#构建自己镜像. 别忘了命令后面的小数点
docker build -t sentinel:1.8.2 -f Dockerfile .

#推送镜像【可选】
docker login

# 1、改变镜像名,加上自己的前缀地址
docker tag sentinel:1.8.2  leifengyang/sentinel:1.8.2
docker push leifengyang/sentinel:1.8.2
#启动sentinel容器
docker run -d -p 8858:8080 \
--name sentinel-dashboard --restart=always \
leifengyang/sentinel:1.8.2

7、Nacos

https://nacos.io/zh-cn/docs/what-is-nacos.html

参照文档使用数据库版部署方式

#1、下载nacos数据库文件 
#https://github.com/alibaba/nacos/blob/develop/distribution/conf/nacos-mysql.sql

#2、要执行以下文件,按照要求先创库
CREATE DATABASE `nacos_config`;
USE DATABASE `nacos_config`;
####################################################

/*
 * Copyright 1999-2018 Alibaba Group Holding Ltd.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/******************************************/
/*   数据库全名 = nacos_config   */
/*   表名称 = config_info   */
/******************************************/
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';

/******************************************/
/*   数据库全名 = nacos_config   */
/*   表名称 = config_info_aggr   */
/******************************************/
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='增加租户字段';


/******************************************/
/*   数据库全名 = nacos_config   */
/*   表名称 = config_info_beta   */
/******************************************/
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';

/******************************************/
/*   数据库全名 = nacos_config   */
/*   表名称 = config_info_tag   */
/******************************************/
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';

/******************************************/
/*   数据库全名 = nacos_config   */
/*   表名称 = config_tags_relation   */
/******************************************/
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';

/******************************************/
/*   数据库全名 = nacos_config   */
/*   表名称 = group_capacity   */
/******************************************/
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容量信息表';

/******************************************/
/*   数据库全名 = nacos_config   */
/*   表名称 = his_config_info   */
/******************************************/
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='多租户改造';


/******************************************/
/*   数据库全名 = nacos_config   */
/*   表名称 = tenant_capacity   */
/******************************************/
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.2

8、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

百度云 cloud.baidu.com

2、云平台核心

1、ECS

云服务器

2、VPC

隔离的私有网络

3、安全组

防火墙控制

你可能感兴趣的:(Docker环境搭建,java,面试,经验分享)