当前位置:   article > 正文

SpringCloud微服务(二)网关GateWay、Docker、Dockerfile、Linux操作超详细_spring cloud gateway部署到云服务器上

spring cloud gateway部署到云服务器上

目录

统一网关GateWay

 搭建网关服务的步骤

1、引入依赖

2、编写路由配置及nacos地址

路由断言工厂Route Oredicate Factory 

路由过滤器配置

 全局过滤器GlobalFilter

过滤器执行顺序

跨域问题处理 

 Docker

 ​编辑

Docker与虚拟机 

镜像和容器

Docker的安装

启动docker

配置镜像加速

Docker基本操作

Docker基本命令 

数据卷 

操作数据卷

 挂载数据卷

Dockerfile自定义镜像

 Dockerfile

 DockerCompose

CentOS7安装DockerCompose

2.2.修改文件权限

2.3.Base自动补全命令:

 Docker镜像仓库

3.Docker镜像仓库

3.1.简化版镜像仓库

3.2.带有图形化界面版本

3.3.配置Docker信任地址


统一网关GateWay

 

 

 搭建网关服务的步骤

1、引入依赖

  1. <!-- nacos服务注册发现依赖-->
  2. <dependency>
  3. <groupId>com.alibaba.cloud</groupId>
  4. <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
  5. </dependency>
  6. <!-- 网关gateway依赖-->
  7. <dependency>
  8. <groupId>org.springframework.cloud</groupId>
  9. <artifactId>spring-cloud-starter-gateway</artifactId>
  10. </dependency>
  11. </dependencies>

2、编写路由配置及nacos地址

  1. server:
  2. port: 10010
  3. spring:
  4. application:
  5. name: gateway
  6. cloud:
  7. nacos:
  8. server-addr: localhost:8848 #nacos地址
  9. gateway:
  10. routes:
  11. - id: user-service #路由标识,必须唯一
  12. uri: lb://userservice #路由的目标地址
  13. predicates: #路由断言,判断请求是否符合规则
  14. - Path=/user/** #路劲断言,判断路劲是否以/user开头
  15. - id: order-service
  16. uri: lb://orderservice
  17. predicates:
  18. - Path=/order/**

路由断言工厂Route Oredicate Factory 

 

 

 

路由过滤器配置

 

 全局过滤器GlobalFilter

  1. //越小优先级越高
  2. //@Order(-1)
  3. @Component
  4. public class AuthorizeFilter implements GlobalFilter, Ordered {
  5. @Override
  6. public Mono<Void> filter(ServerWebExchange exchange, GatewayFilterChain chain) {
  7. //1、获取请求参数
  8. ServerHttpRequest request = exchange.getRequest();
  9. MultiValueMap<String, String> params = request.getQueryParams();
  10. //2、获取参数中的authorization 参数
  11. String auth = params.getFirst("authorization");
  12. //3、判断参数值是否等于admin
  13. if ( "admin".equals(auth) ){
  14. //4、是,放行
  15. return chain.filter(exchange);
  16. }
  17. //5、否,拦截
  18. //5.1设置状态码
  19. exchange.getResponse().setStatusCode(HttpStatus.UNAUTHORIZED);
  20. //5.2拦截请求
  21. return exchange.getResponse().setComplete();
  22. }
  23. @Override
  24. public int getOrder() {
  25. return -1;
  26. }
  27. }

 

 

过滤器执行顺序

跨域问题处理 

 

 Docker

 

 

 

 

Docker与虚拟机 

 

 

镜像和容器

 

 

Docker的安装

 首先需要大家虚拟机联网,安装yum工具

  1. yum install -y yum-utils \
  2. device-mapper-persistent-data \
  3. lvm2 --skip-broken

然后更新本地镜像源:

  1. # 设置docker镜像源
  2. yum-config-manager \
  3. --add-repo \
  4. https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
  5. sed -i 's/download.docker.com/mirrors.aliyun.com\/docker-ce/g' /etc/yum.repos.d/docker-ce.repo
  6. yum makecache fast

然后输入命令:

yum install -y docker-ce

启动docker

  1. # 关闭
  2. systemctl stop firewalld
  3. # 禁止开机启动防火墙
  4. systemctl disable firewalld

通过命令启动docker:

  1. systemctl start docker # 启动docker服务
  2. systemctl stop docker # 停止docker服务
  3. systemctl restart docker # 重启docker服务

然后输入命令,可以查看docker版本:

docker -v

配置镜像加速

docker官方镜像仓库网速较差,我们需要设置国内镜像服务:

参考阿里云的镜像加速文档:阿里云登录 - 欢迎登录阿里云,安全稳定的云计算服务平台

  1. 1. 安装/升级Docker客户端
  2. 推荐安装1.10.0以上版本的Docker客户端,参考文档docker-ce
  3. 2. 配置镜像加速器
  4. 针对Docker客户端版本大于 1.10.0 的用户
  5. 您可以通过修改daemon配置文件/etc/docker/daemon.json来使用加速器
  6. sudo mkdir -p /etc/docker
  7. sudo tee /etc/docker/daemon.json <<-'EOF'
  8. {
  9. "registry-mirrors": ["*****************"]
  10. }
  11. EOF
  12. sudo systemctl daemon-reload
  13. sudo systemctl restart docker

Docker基本操作

 

Docker基本命令 

 

 

 

 

 

 

 

 

 

 

数据卷 

 

操作数据卷

 挂载数据卷

 

 

 

 

Dockerfile自定义镜像

 

 Dockerfile

 

 

 

 DockerCompose

 

CentOS7安装DockerCompose

Linux下需要通过命令下载:

  1. # 安装
  2. curl -L https://github.com/docker/compose/releases/download/1.23.1/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose

如果下载速度较慢,或者下载失败,可以使用课前资料提供的docker-compose文件:上传到/usr/local/bin/目录也可以。

2.2.修改文件权限

修改文件权限:

  1. # 修改权限
  2. chmod +x /usr/local/bin/docker-compose

2.3.Base自动补全命令:

  1. # 补全命令
  2. curl -L https://raw.githubusercontent.com/docker/compose/1.29.1/contrib/completion/bash/docker-compose > /etc/bash_completion.d/docker-compose

如果这里出现错误,需要修改自己的hosts文件:

echo "199.232.68.133 raw.githubusercontent.com" >> /etc/hosts

 

 Docker镜像仓库

3.Docker镜像仓库

搭建镜像仓库可以基于Docker官方提供的DockerRegistry来实现。

官网地址:https://hub.docker.com/_/registry

3.1.简化版镜像仓库

Docker官方的Docker Registry是一个基础版本的Docker镜像仓库,具备仓库管理的完整功能,但是没有图形化界面。

搭建方式比较简单,命令如下:

  1. docker run -d \
  2. --restart=always \
  3. --name registry \
  4. -p 5000:5000 \
  5. -v registry-data:/var/lib/registry \
  6. registry

命令中挂载了一个数据卷registry-data到容器内的/var/lib/registry 目录,这是私有镜像库存放数据的目录。

访问http://YourIp:5000/v2/_catalog 可以查看当前私有镜像服务中包含的镜像

3.2.带有图形化界面版本

使用DockerCompose部署带有图象界面的DockerRegistry,命令如下:

  1. version: '3.0'
  2. services:
  3. registry:
  4. image: registry
  5. volumes:
  6. - ./registry-data:/var/lib/registry
  7. ui:
  8. image: joxit/docker-registry-ui:static
  9. ports:
  10. - 8080:80
  11. environment:
  12. - REGISTRY_TITLE=传智教育私有仓库
  13. - REGISTRY_URL=http://registry:5000
  14. depends_on:
  15. - registry

3.3.配置Docker信任地址

我们的私服采用的是http协议,默认不被Docker信任,所以需要做一个配置:

  1. # 打开要修改的文件
  2. vi /etc/docker/daemon.json
  3. # 添加内容:
  4. "insecure-registries":["http://192.168.150.101:8080"]
  5. # 重加载
  6. systemctl daemon-reload
  7. # 重启docker
  8. systemctl restart docker

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Monodyee/article/detail/502353
推荐阅读
相关标签
  

闽ICP备14008679号