当前位置: 首页 > news >正文

linux(centos) 环境部署,安装JDK,docker(mysql, redis,nginx,minio,nacos)

目录

      • 1.安装JDK (非docker)
        • 1.1 将文件放在目录下: /usr/local/jdk
        • 1.2 解压至当前目录
        • 1.3 配置环境变量
      • 2.安装docker
        • 2.1 验证centos内核
        • 2.2 安装软件工具包
        • 2.3 设置yum源
        • 2.4 查看仓库中所有docker版本,按需选择安装
        • 2.5 安装docker
        • 2.6 启动docker 并 开机启动
        • 2.7 验证
      • 3 docker安装mysql 5.7
        • 3.1 安装指定版本
        • 3.2 可能报错
        • 3.3 解决
        • 3.4 查看是否成功拉取mysql
        • 3.5 创建实例并且启动
          • 3.5.1先创建映射文件夹
          • 3.5.2 将文件放入 /mydata/mysql/conf
        • 3.6 查看mysql运行情况
        • 3.7 进入容器终端
        • 3.8 设置随着docker 启动自启
        • 3.9 Nivicat 工具无法连接情况
          • 3.9.1 检查ip是否被拦截,手机开热点试一下
          • 3.9.2 检查防火墙
            • 3.9.2.1防火墙相关命令
      • 4 docker 安装redis
        • 4.1 创建映射文件夹
        • 4.2 创建实例并启动
        • 4.3 验证
        • 4.3 第三方工具连接
          • 4.3.1 检查防火墙是否放行 6379端口
      • 5. docker 安装 JDK 8
        • 5.1 拉取jdk8镜像
        • 5.2 启动jdk
        • 5.3 设置jdk8自启
        • 5.4 查看版本
      • 6 docker 安装nginx
        • 6.1 拉取nginx 镜像
        • 6.2 创建映射文件
        • 6.3 先启动ng,将容器中配置文件复制到创建的映射文件夹中
        • 6.4 删除原先容器
        • 6.4启动 nginx
        • 6.5 设置自启
        • 6.6验证
        • 6.7 本机访问(浏览器输入地址)
          • 6.7.1 防火墙放开端口9999
          • 6.7.1 解决欢迎页面中文乱码 (可忽略)
      • 7.docker 安装MinIo
        • 7.1 拉取镜像
        • 7.2 创建映射文件
        • 7.3 创建实例并启动
        • 7.3防火墙开放端口 19090 19000
        • 7.4验证,浏览器输入访问 19090 客户端端口,19000 api端口
      • 8 docker安装nacos 2.1.1
        • 8.1 拉取镜像
        • 8.2 创建映射挂载目录
        • 8.3 先启动容器,将容器中配置文件复制到创建的映射文件夹中
        • 8.4 删除刚才启动的nacos容器
        • 8.5mysql数据库配置
          • 8.5.1 打开前面从容器复制到 conf 里的文件,通过navicat将 .sql 文件导入至数据库
          • 8.5.2 修改配置文件
        • 8.6 创建实例并启动
        • 8.7 防火墙开放 8848 9848 9849端口
        • 8.7 验证 (浏览器访问)
      • 9. docker安装其他
      • 10. 微服务部署 (一个个Dockerfile)
        • 10.1 创建映射文件夹
        • 10.2 在对应映射文件创建Dockerfile文件
        • 10.3 上传需部署jar至相应映射文件夹下,与Dockerfile同级
        • 10.4 构建镜像
        • 10.5 映射目录卷并启动
          • 10.6 重新启动(下一次替换包)
          • 其他服务
          • 部署服务遇到的坑
      • 微服务部署(一次性,compose)

1.安装JDK (非docker)

1.1 将文件放在目录下: /usr/local/jdk

在这里插入图片描述

1.2 解压至当前目录
tar -zxvf  jdk-8u221-linux-x64.tar.gz
1.3 配置环境变量
步骤1: vim /etc/profile
步骤2: shift + g 定位到最后一行
步骤3:按 a 获取 i 编辑
步骤4: 添加配置
步骤5:按Esc键   输入:wq   保存并退出
步骤6:source /etc/profile
步骤7: java -version 验证

在这里插入图片描述

export JAVA_HOME=/usr/local/jdk/jdk1.8.0_191
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tool.jar

在这里插入图片描述

2.安装docker

2.1 验证centos内核

Docker 要求 CentOS 系统的内核版本高于 3.10

uname -r

在这里插入图片描述

2.2 安装软件工具包
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
2.3 设置yum源
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

或者 使用阿里镜像,上下两种选一个

yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
2.4 查看仓库中所有docker版本,按需选择安装
yum list docker-ce --showduplicates | sort -r
2.5 安装docker

这边直接安装最新

yum install docker-ce

下面这个 -y 安装过程中不需要手动输入 y

yum install -y docker-ce
2.6 启动docker 并 开机启动
systemctl start docker
systemctl enable docker

额外命名:重启docker

systemctl restart docker
2.7 验证
docker version

在这里插入图片描述

3 docker安装mysql 5.7

3.1 安装指定版本
docker pull mysql:5.7
3.2 可能报错

在这里插入图片描述

Error response from daemon: Get "https://registry-1.docker.io/v2/": dial tcp 128.242.245.93:443: i/o
3.3 解决

root 执行命令

touch /etc/docker/daemon.json
chmod 777 -R /etc/docker/daemon.json
vi /etc/docker/daemon.json

daemon.json添加以下内容:

{"registry-mirrors": ["https://docker-proxy.741001.xyz","https://registry.docker-cn.com"]
}

再次执行命令

systemctl restart docker
systemctl daemon-reload

最后再拉取 docker pull mysql:5.7

参考文章: docker拉取报错

3.4 查看是否成功拉取mysql
docker images

在这里插入图片描述

3.5 创建实例并且启动
3.5.1先创建映射文件夹
mkdir -p -m 777 /mydata/mysql/data
mkdir -p -m 777 /mydata/mysql/conf
mkdir -p -m 777 /mydata/mysql/log

要是输入命令没有创建成功,就一层一层 mkdir 创建

3.5.2 将文件放入 /mydata/mysql/conf
vim /mydata/mysql/conf/my.cnf 

输入内容

[client]
default-character-set=utf8mb4[mysql]
default-character-set=utf8mb4[mysqld]
lower_case_table_names=1
sql_mode='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION'
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

启动mysql

docker run -d -p 3306:3306 --name mysql \
-v /mydata/mysql/log:/var/log/mysql \
-v /mydata/mysql/data:/var/lib/mysql \
-v /mydata/mysql/conf:/etc/mysql/conf.d \
--restart=always \
-e MYSQL_ROOT_PASSWORD=123456 \
-d mysql:5.7
3.6 查看mysql运行情况
docker ps

在这里插入图片描述

3.7 进入容器终端
docker ps -a 
docker exec -it mysql  /bin/bash  或者  docker exec -it 容器id /bin/bash

在这里插入图片描述
在这里插入图片描述

登录mysql
在这里插入图片描述

3.8 设置随着docker 启动自启
docker update --restart=always mysql
3.9 Nivicat 工具无法连接情况
3.9.1 检查ip是否被拦截,手机开热点试一下
3.9.2 检查防火墙
3.9.2.1防火墙相关命令
# 查看状态
systemctl status firewalld 
# 关闭防火墙
systemctl stop firewalld
#开启防火墙
systemctl start firewalld
#开机启用
systemctl enable firewalld
#开机禁用
systemctl disable firewalld
#检查是否放行某个端口
firewall-cmd --query-port=端口号/tcp 
#放行某个端口
firewall-cmd --zone=public --add-port=端口号/tcp --permanent 
# 重启
firewall-cmd --reload
  1. 直接先关闭防火墙试试
  2. 检查是否允许3306端口通过防火墙
firewall-cmd --query-port=3306/tcp

在这里插入图片描述
no: 未开放

  1. 通过firewall-cmd开放3306端口
firewall-cmd --zone=public --add-port=3306/tcp --permanent

在这里插入图片描述

  1. 重启
firewall-cmd --reload

在这里插入图片描述
重启后 再次查看,yes 显示开放了
在这里插入图片描述
这样第三方工具就可以连 mysql了,不行就开热点试一下【要是开热点可以,那就是网络禁止访问了(比如是公司内网环境)】

4 docker 安装redis

docker pull redis:6.2.6
4.1 创建映射文件夹
mkdir -p /mydata/redis/conf
mkdir -p /mydata/redis/data

要是没有创建成功,可以一级一级创建 mkdir xxx

然后在conf目录下创建redis.conf文件

touch  redis.conf

填写配置

# Redis服务器配置 # 绑定IP地址
#解除本地限制 注释bind 127.0.0.1  
#bind 127.0.0.1  # 服务器端口号  
port 6379 #配置密码,不要可以删掉
requirepass 123456#这个配置不要会和docker -d 命令 冲突
# 服务器运行模式,Redis以守护进程方式运行,默认为no,改为yes意为以守护进程方式启动,可后台运行,除非kill进程,改为yes会使配置文件方式启动redis失败,如果后面redis启动失败,就将这个注释掉
daemonize no#当Redis以守护进程方式运行时,Redis默认会把pid写入/var/run/redis.pid文件,可以通过pidfile指定(自定义)
#pidfile /data/dockerData/redis/run/redis6379.pid  #默认为no,redis持久化,可以改为yes
appendonly yes#当客户端闲置多长时间后关闭连接,如果指定为0,表示关闭该功能
timeout 60
# 服务器系统默认配置参数影响 Redis 的应用
maxclients 10000
tcp-keepalive 300#指定在多长时间内,有多少次更新操作,就将数据同步到数据文件,可以多个条件配合(分别表示900秒(15分钟)内有1个更改,300秒(5分钟)内有10个更改以及60秒内有10000个更改)
save 900 1
save 300 10
save 60 10000# 按需求调整 Redis 线程数
tcp-backlog 511# 设置数据库数量,这里设置为16个数据库  
databases 16# 启用 AOF, AOF常规配置
appendonly yes
appendfsync everysec
no-appendfsync-on-rewrite no
auto-aof-rewrite-percentage 100
auto-aof-rewrite-min-size 64mb# 慢查询阈值
slowlog-log-slower-than 10000
slowlog-max-len 128# 是否记录系统日志,默认为yes  
syslog-enabled yes  #指定日志记录级别,Redis总共支持四个级别:debug、verbose、notice、warning,默认为verbose
loglevel notice# 日志输出文件,默认为stdout,也可以指定文件路径  
logfile stdout# 日志文件
#logfile /var/log/redis/redis-server.log# 系统内存调优参数   
# 按需求设置
hash-max-ziplist-entries 512
hash-max-ziplist-value 64
list-max-ziplist-entries 512
list-max-ziplist-value 64
set-max-intset-entries 512
zset-max-ziplist-entries 128
zset-max-ziplist-value 64 
4.2 创建实例并启动
docker run -d -p 6379:6379 --name redis \-v /mydata/redis/data:/data \-v /mydata/redis/conf/redis.conf:/etc/redis/redis.conf \-d redis:6.2.6  redis-server /etc/redis/redis.conf

设置自启

docker update redis --restart=always
4.3 验证

进入Redis容器

docker exec -it redis bash

在这里插入图片描述

连接redis

redis-cli

在这里插入图片描述
输入密码 [前边配置文件设置的]

auth 123456

在这里插入图片描述
在这里插入图片描述
进行简单测试
在这里插入图片描述

4.3 第三方工具连接
4.3.1 检查防火墙是否放行 6379端口

防火墙相关命令: 参考本文标题 3.9.2.1 防火墙相关命令

firewall-cmd --query-port=6379/tcp

在这里插入图片描述
no:未放行,设置放行,重启防火墙

在这里插入图片描述

5. docker 安装 JDK 8

5.1 拉取jdk8镜像
docker pull openjdk:8

在这里插入图片描述

5.2 启动jdk
docker run -d -it --name jdk8 openjdk:8

在这里插入图片描述

5.3 设置jdk8自启
docker update jdk8--restart=always
5.4 查看版本

直接java -version ,显示的是没有在docker内安装 jdk 的版本 安装参考本文标题 1.安装JDK (非docker)
在这里插入图片描述

所以查看docker内JDK版本,需要 先进入jdk8容器,再java -version,

在这里插入图片描述

6 docker 安装nginx

6.1 拉取nginx 镜像
docker pull nginx:1.26.1

在这里插入图片描述

6.2 创建映射文件
# 创建挂载目录
mkdir -p /mydata/nginx/conf
mkdir -p /mydata/nginx/log
mkdir -p /mydata/nginx/html
6.3 先启动ng,将容器中配置文件复制到创建的映射文件夹中
# 生成容器
docker run --name nginx -p 9999:80 -d nginx:1.26.1
# 将容器nginx.conf文件复制到宿主机
docker cp nginx:/etc/nginx/nginx.conf /home/nginx/conf/nginx.conf
# 将容器conf.d文件夹下内容复制到宿主机
docker cp nginx:/etc/nginx/conf.d /home/nginx/conf/conf.d
# 将容器中的html文件夹复制到宿主机
docker cp nginx:/usr/share/nginx/html /home/nginx/
6.4 删除原先容器
#查看容器id
docker ps -a 
#停止ng
docker stop nginx
#删除容器
docker rm  容器id
6.4启动 nginx
docker run \
-p 9999:80 \
--name nginx \
-v /mydata/nginx/conf/nginx.conf:/etc/nginx/nginx.conf \
-v /mydata/nginx/conf/conf.d:/etc/nginx/conf.d \
-v /mydata/nginx/log:/var/log/nginx \
-v /mydata/nginx/html:/usr/share/nginx/html \
-d nginx:1.26.1
6.5 设置自启
docker update --restart=always nginx
6.6验证
curl 127.0.0.1:9999

在这里插入图片描述
改一下 html 文字,验证一下映射

vim  /mydata/nginx/html/index.html

在这里插入图片描述
在这里插入图片描述

6.7 本机访问(浏览器输入地址)
6.7.1 防火墙放开端口9999
#放行9999
firewall-cmd --zone=public --add-port=9999/tcp --permanent 
#重启防火墙
firewall-cmd --reload

在这里插入图片描述

6.7.1 解决欢迎页面中文乱码 (可忽略)
vim /mydata/nginx/html/index.html

head 标签中间 加上

<meta http-equiv="Content-Type" content="text/html;charset=utf-8"/>

在这里插入图片描述
最后访问
在这里插入图片描述

7.docker 安装MinIo

7.1 拉取镜像
docker pull minio/minio

在这里插入图片描述

7.2 创建映射文件
//创建Minio外部挂载的配置文件
mkdir -p /mydata/minio/config
//存储上传文件的目录
mkdir -p /mydata/minio/data
7.3 创建实例并启动
docker run \
-p 19000:9000 \
-p 19090:9090 \
--net=host \
--name minio \
-d --restart=always \
-e "MINIO_ACCESS_KEY=minioadmin" \
-e "MINIO_SECRET_KEY=minioadmin" \
-v /mydata/minio/data:/data \
-v /mydata/minio/config:/root/.minio \minio/minio server \
/data --console-address ":19090" -address ":19000"
MINIO_ACCESS_KEY= 账号
MINIO_SECRET_KEY= 密码
7.3防火墙开放端口 19090 19000
#放行19090,19000
firewall-cmd --zone=public --add-port=19090/tcp --permanent 
firewall-cmd --zone=public --add-port=19000/tcp --permanent 
#重启防火墙
firewall-cmd --reload
7.4验证,浏览器输入访问 19090 客户端端口,19000 api端口

在这里插入图片描述
输入密码上传一张验证,成功上传
在这里插入图片描述

8 docker安装nacos 2.1.1

8.1 拉取镜像
docker pull nacos/nacos-server:v2.1.1

在这里插入图片描述

8.2 创建映射挂载目录
mkdir -p /mydata/nacos/logs/                      #新建logs目录
mkdir -p /mydata/nacos/conf/					  #新建conf目录
mkdir -p /mydata/nacos/data/					  #新建data目录
8.3 先启动容器,将容器中配置文件复制到创建的映射文件夹中
docker run --name nacos -d -p 8848:8848 -e MODE=standalone  nacos/nacos-server:v2.1.1
docker cp nacos:/home/nacos/logs/ /mydata/nacos/
docker cp nacos:/home/nacos/conf/ /mydata/nacos/
docker cp nacos:/home/nacos/data/ /mydata/nacos/

在这里插入图片描述

8.4 删除刚才启动的nacos容器
 docker rm -f nacos
8.5mysql数据库配置

docker安装mysql,参考本文 标题 3. docker安装mysql 5.7

8.5.1 打开前面从容器复制到 conf 里的文件,通过navicat将 .sql 文件导入至数据库

数据库这边新建命名为 server_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,`encrypted_data_key` text NOT NULL COMMENT '秘钥',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 '租户字段',`encrypted_data_key` text NOT NULL 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(20) 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 '租户字段',`encrypted_data_key` text NOT NULL 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');
8.5.2 修改配置文件

进入前面映射文件夹

cd /mydata/nacos/conf

先备份原文件,防止玩崩无法复原【修改任何配置文件前都先备份一下】

cp application.properties application_bak.properties

在这里插入图片描述

# spring
server.servlet.contextPath=/nacos
server.contextPath=/nacos
server.port=8848
server.tomcat.accesslog.max-days=30
server.tomcat.accesslog.pattern=%h %l %u %t "%r" %s %b %D %{User-Agent}i %{Request-Source}i
spring.datasource.platform=mysql
nacos.cmdb.eventTaskInterval=10
nacos.cmdb.labelTaskInterval=300
nacos.cmdb.loadDataAtStart=false
db.num=1
db.url.0=jdbc:mysql://公网或内网ip:3306/server_config?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useSSL=false
#db.url.1=jdbc:mysql://${MYSQL_SERVICE_HOST}:${MYSQL_SERVICE_PORT:3306}/${MYSQL_SERVICE_DB_NAME}?${MYSQL_SERVICE_DB_PARAM:characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useSSL=false}
db.user=root
db.password=123456
### The auth system to use, currently only 'nacos' and 'ldap' is supported:
nacos.core.auth.system.type=${NACOS_AUTH_SYSTEM_TYPE:nacos}
### worked when nacos.core.auth.system.type=nacos
### The token expiration in seconds:
nacos.core.auth.plugin.nacos.token.expire.seconds=${NACOS_AUTH_TOKEN_EXPIRE_SECONDS:18000}
### The default token:
nacos.core.auth.plugin.nacos.token.secret.key=${NACOS_AUTH_TOKEN:SecretKey012345678901234567890123456789012345678901234567890123456789}
### Turn on/off caching of auth information. By turning on this switch, the update of auth information would have a 15 seconds delay.
nacos.core.auth.caching.enabled=${NACOS_AUTH_CACHE_ENABLE:false}
nacos.core.auth.enable.userAgentAuthWhite=${NACOS_AUTH_USER_AGENT_AUTH_WHITE_ENABLE:false}
nacos.core.auth.server.identity.key=nacos
nacos.core.auth.server.identity.value=nacos
server.tomcat.accesslog.enabled=${TOMCAT_ACCESSLOG_ENABLED:false}
# default current work dir
server.tomcat.basedir=file:.
## spring security config
### turn off security
nacos.security.ignore.urls=${NACOS_SECURITY_IGNORE_URLS:/,/error,/**/*.css,/**/*.js,/**/*.html,/**/*.map,/**/*.svg,/**/*.png,/**/*.ico,/console-fe/public/**,/v1/auth/**,/v1/console/health/**,/actuator/**,/v1/console/server/**}
# metrics for elastic search
management.metrics.export.elastic.enabled=false
management.metrics.export.influx.enabled=false
nacos.naming.distro.taskDispatchThreadCount=10
nacos.naming.distro.taskDispatchPeriod=200
nacos.naming.distro.batchSyncKeyCount=1000
nacos.naming.distro.initDataRatio=0.9
nacos.naming.distro.syncRetryDelay=5000
nacos.naming.data.warmup=true
8.6 创建实例并启动
docker run -d --name nacos \
-p 8848:8848 \
-p 9848:9848 \
-p 9849:9849 \
--env MODE=standalone \
--env NACOS_AUTH_ENABLE=true \
-v /mydata/nacos/conf/:/home/nacos/conf \
-v /mydata/nacos/logs:/home/nacos/logs \
-v /mydatar/nacos/data:/home/nacos/data \
--restart=always \nacos/nacos-server:v2.1.1

参数说明:

docker run -d --name nacos \                                            -d 表示运行在后台,--name 指定名称为nacos
-p 8848:8848 \                                                          前者为暴露给外部访问的端口,后者为nacos容器端口
-p 9848:9848 \                                                          9848是nacos2.0.0版本以上必须要加上端口映射
-p 9849:9849 \                                                          9849是nacos2.0.0版本以上必须要加上端口映射
--env MODE=standalone \                                                 nacos以单机版启动,默认为cluster(集群)
--env NACOS_AUTH_ENABLE=true \                                          如果使用官方镜像,请在启动docker容器时,添加如下环境变量
-v /mydata/nacos/conf/:/home/nacos/conf \         nacos 配置文件目录,“:”前为服务器目录,“:”后为nacos容器中的目录
-v /mydata/nacos/logs:/home/nacos/logs \          nacos 日志文件目录,“:”前为服务器目录,“:”后为nacos容器中的目录
-v /mydata/nacos/data:/home/nacos/data \          nacos 数据文件目录,“:”前为服务器目录,“:”后为nacos容器中的目录
nacos/nacos-server:v2.1.1                                               指定 docker nacos 版本,这里是2.1.1版本
8.7 防火墙开放 8848 9848 9849端口
firewall-cmd --zone=public --add-port=8848/tcp --permanent 
firewall-cmd --zone=public --add-port=9848/tcp --permanent 
firewall-cmd --zone=public --add-port=9849/tcp --permanent 
#重启防火墙
firewall-cmd --reload
8.7 验证 (浏览器访问)

在这里插入图片描述
随便加个配置试一下

在这里插入图片描述

在这里插入图片描述

9. docker安装其他

累了,后续自己装一遍 再更新 。。

10. 微服务部署 (一个个Dockerfile)

10.1 创建映射文件夹

需部署几个创建几个

mkdir -p /mydata/server/backend/server-auth
mkdir -p /mydata/server/backend/server-file
mkdir -p /mydata/server/backend/server-gateway

在这里插入图片描述

10.2 在对应映射文件创建Dockerfile文件

以gateway为例,其他雷同

vi /mydata/server/backend/server-gateway/Dockerfile

输入内容 【参数解释说明看 注释】

FROM  openjdk:8-jre
# author
MAINTAINER server# 挂载目录
VOLUME /mydata/server/backend/server-gateway
# 指定路径
WORKDIR /mydata/server/backend/server-gateway
# 复制jar文件到路径
COPY ./server-gateway.jar /mydata/server/backend/server-gateway/server-gateway.jar
# 启动网关服务
ENTRYPOINT ["java","-jar","server-gateway.jar"]
10.3 上传需部署jar至相应映射文件夹下,与Dockerfile同级

在这里插入图片描述

10.4 构建镜像
docker build -t server-gateway:1.0 .

在这里插入图片描述
在这里插入图片描述

10.5 映射目录卷并启动
docker run -d -p 8080:8080 --name  gateway -v /mydata/server/backend/server-gateway:/mydata/server/backend/server-gateway server-gateway:1.0

/mydata/server/backend/server-gateway 是宿主机上 server-gateway 目录的路径。
/mydata/server/backend/server-gateway 是容器内的路径。
这样宿主机上的 server-gateway 目录会映射到容器内,你可以在宿主机上更新文件,容器内会自动同步。

在这里插入图片描述

10.6 重新启动(下一次替换包)

下一次替换了宿主机 /mydata/server/backend/server-gateway (10.1 创建映射文件夹) 上传的jar包后

docker restart gateway
其他服务

其他服务,重复上述操作,修改其对应的目录卷,包名即可

部署服务遇到的坑

部署过程中,发现启动gateway 报错

com.alibaba.nacos.api.exception.NacosException: Client not connected, current status:STARTING

网上搜索,都是说没有放开
8848
9848
9849
【题外话】
但是在安装 nacos的时候我已经映射,并且防火墙放开了
百思不得其解,怀疑是配置文件的问题,账号,命名,甚至一度怀疑是不是bootstrap.yml文件加了group的原因,重新打包,重新安装nacos都不是

最后!!!! 发现是内存不够了,整了个免费试用的云服务器,前面装的一些东西全启动了

在这里插入图片描述
剩下 73M ,还玩个屁,关掉一些其他启动不必要的容器,就启动成功了!!

微服务部署(一次性,compose)

一样的,自己先部署一遍 。。。。


http://www.mrgr.cn/news/78948.html

相关文章:

  • 深入学习指针(5)!!!!!!!!!!!!!!!
  • Pytest --capture 参数详解:如何控制测试执行过程中的输出行为
  • 自动化运维(k8s)之微服务信息自动抓取:namespaceName、deploymentName等全解析
  • 前端的面试题
  • 云计算的发展历史与未来展望
  • 利用Ubuntu批量下载modis图像(New)
  • 开发系统准备与开发环境配置总结
  • 计算机网络复习1——导言和概论
  • 【Point-LIO】基于Ubuntu20.04的ROS1平台的Point-LIO部署Mid-360激光雷达
  • cocotb pytest
  • C++编写静态库
  • 【webApp之h5端实战】项目基础结构搭建及欢迎页面的实现
  • 【小白学机器学习42】进行多次抽样,样本的分布参数和总体的分布参数的关系
  • Python办公——openpyxl处理Excel每个sheet每行 修改为软雅黑9号剧中+边框线
  • HCIA-openGauss_1
  • 华为HarmonyOS 让应用快速拥有账号能力 -- 3 获取用户手机号
  • 【0347】Postgres内核 startup XLOG 之 核实 pg_wal 、 pg_wal/archive_status (1)
  • 树莓派明明安装了opencv和numpy,却找不到
  • Linux:内存文件 基础io
  • ShardingSphere介绍
  • 密码学实验工具--Cryptool2
  • 利用Ubuntu批量下载modis图像(New)
  • nlp培训重点
  • 【实战】Oracle基础之控制文件内容的5种查询方法
  • CTF-PWN: 全保护下格式化字符串利用 [第一届“吾杯”网络安全技能大赛 如果能重来] 赛后学习(不会)
  • (一)Linux下安装NVIDIA驱动(操作记录)