SpringCloud微服务(二)网关GateWay、Docker、Dockerfile、Linux操作超详细

这篇具有很好参考价值的文章主要介绍了SpringCloud微服务(二)网关GateWay、Docker、Dockerfile、Linux操作超详细。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

统一网关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

SpringCloud微服务(二)网关GateWay、Docker、Dockerfile、Linux操作超详细

 SpringCloud微服务(二)网关GateWay、Docker、Dockerfile、Linux操作超详细

 SpringCloud微服务(二)网关GateWay、Docker、Dockerfile、Linux操作超详细

 搭建网关服务的步骤

1、引入依赖

<!--        nacos服务注册发现依赖-->
        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
        </dependency>
<!--        网关gateway依赖-->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-gateway</artifactId>
        </dependency>
    </dependencies>

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

server:
  port: 10010
spring:
  application:
    name: gateway
  cloud:
    nacos:
      server-addr: localhost:8848 #nacos地址
    gateway:
      routes:
        - id: user-service #路由标识,必须唯一
          uri: lb://userservice #路由的目标地址
          predicates: #路由断言,判断请求是否符合规则
            - Path=/user/** #路劲断言,判断路劲是否以/user开头
        - id: order-service
          uri: lb://orderservice
          predicates:
            - Path=/order/**

SpringCloud微服务(二)网关GateWay、Docker、Dockerfile、Linux操作超详细

SpringCloud微服务(二)网关GateWay、Docker、Dockerfile、Linux操作超详细

路由断言工厂Route Oredicate Factory 

 SpringCloud微服务(二)网关GateWay、Docker、Dockerfile、Linux操作超详细

 SpringCloud微服务(二)网关GateWay、Docker、Dockerfile、Linux操作超详细

SpringCloud微服务(二)网关GateWay、Docker、Dockerfile、Linux操作超详细 SpringCloud微服务(二)网关GateWay、Docker、Dockerfile、Linux操作超详细

路由过滤器配置

SpringCloud微服务(二)网关GateWay、Docker、Dockerfile、Linux操作超详细

SpringCloud微服务(二)网关GateWay、Docker、Dockerfile、Linux操作超详细

 SpringCloud微服务(二)网关GateWay、Docker、Dockerfile、Linux操作超详细

SpringCloud微服务(二)网关GateWay、Docker、Dockerfile、Linux操作超详细

SpringCloud微服务(二)网关GateWay、Docker、Dockerfile、Linux操作超详细

 全局过滤器GlobalFilter

SpringCloud微服务(二)网关GateWay、Docker、Dockerfile、Linux操作超详细SpringCloud微服务(二)网关GateWay、Docker、Dockerfile、Linux操作超详细

SpringCloud微服务(二)网关GateWay、Docker、Dockerfile、Linux操作超详细


//越小优先级越高
//@Order(-1)
@Component
public class AuthorizeFilter implements GlobalFilter, Ordered {
    @Override
    public Mono<Void> filter(ServerWebExchange exchange, GatewayFilterChain chain) {
        //1、获取请求参数
        ServerHttpRequest request = exchange.getRequest();
        MultiValueMap<String, String> params = request.getQueryParams();
        //2、获取参数中的authorization 参数
        String auth = params.getFirst("authorization");
        //3、判断参数值是否等于admin
        if ( "admin".equals(auth) ){
            //4、是,放行
            return chain.filter(exchange);
        }
        //5、否,拦截
        //5.1设置状态码
        exchange.getResponse().setStatusCode(HttpStatus.UNAUTHORIZED);
        //5.2拦截请求
        return exchange.getResponse().setComplete();
    }

    @Override
    public int getOrder() {
        return -1;
    }
}

SpringCloud微服务(二)网关GateWay、Docker、Dockerfile、Linux操作超详细SpringCloud微服务(二)网关GateWay、Docker、Dockerfile、Linux操作超详细 

 SpringCloud微服务(二)网关GateWay、Docker、Dockerfile、Linux操作超详细

过滤器执行顺序

SpringCloud微服务(二)网关GateWay、Docker、Dockerfile、Linux操作超详细

SpringCloud微服务(二)网关GateWay、Docker、Dockerfile、Linux操作超详细

SpringCloud微服务(二)网关GateWay、Docker、Dockerfile、Linux操作超详细

跨域问题处理 

SpringCloud微服务(二)网关GateWay、Docker、Dockerfile、Linux操作超详细

 SpringCloud微服务(二)网关GateWay、Docker、Dockerfile、Linux操作超详细

SpringCloud微服务(二)网关GateWay、Docker、Dockerfile、Linux操作超详细

 Docker

 

 SpringCloud微服务(二)网关GateWay、Docker、Dockerfile、Linux操作超详细

 SpringCloud微服务(二)网关GateWay、Docker、Dockerfile、Linux操作超详细

SpringCloud微服务(二)网关GateWay、Docker、Dockerfile、Linux操作超详细

SpringCloud微服务(二)网关GateWay、Docker、Dockerfile、Linux操作超详细

 SpringCloud微服务(二)网关GateWay、Docker、Dockerfile、Linux操作超详细

Docker与虚拟机 

SpringCloud微服务(二)网关GateWay、Docker、Dockerfile、Linux操作超详细

 SpringCloud微服务(二)网关GateWay、Docker、Dockerfile、Linux操作超详细

 SpringCloud微服务(二)网关GateWay、Docker、Dockerfile、Linux操作超详细

镜像和容器

SpringCloud微服务(二)网关GateWay、Docker、Dockerfile、Linux操作超详细

 SpringCloud微服务(二)网关GateWay、Docker、Dockerfile、Linux操作超详细

 SpringCloud微服务(二)网关GateWay、Docker、Dockerfile、Linux操作超详细

SpringCloud微服务(二)网关GateWay、Docker、Dockerfile、Linux操作超详细

Docker的安装

SpringCloud微服务(二)网关GateWay、Docker、Dockerfile、Linux操作超详细

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

yum install -y yum-utils \
           device-mapper-persistent-data \
           lvm2 --skip-broken

然后更新本地镜像源:

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

yum makecache fast

然后输入命令:

yum install -y docker-ce

启动docker

# 关闭
systemctl stop firewalld
# 禁止开机启动防火墙
systemctl disable firewalld

通过命令启动docker:

systemctl start docker  # 启动docker服务

systemctl stop docker  # 停止docker服务

systemctl restart docker  # 重启docker服务

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

docker -v

SpringCloud微服务(二)网关GateWay、Docker、Dockerfile、Linux操作超详细

配置镜像加速

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

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

1. 安装/升级Docker客户端
推荐安装1.10.0以上版本的Docker客户端,参考文档docker-ce

2. 配置镜像加速器
针对Docker客户端版本大于 1.10.0 的用户

您可以通过修改daemon配置文件/etc/docker/daemon.json来使用加速器

sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["https://zhlulsyn.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker

Docker基本操作

SpringCloud微服务(二)网关GateWay、Docker、Dockerfile、Linux操作超详细

 SpringCloud微服务(二)网关GateWay、Docker、Dockerfile、Linux操作超详细

Docker基本命令 

SpringCloud微服务(二)网关GateWay、Docker、Dockerfile、Linux操作超详细

SpringCloud微服务(二)网关GateWay、Docker、Dockerfile、Linux操作超详细

SpringCloud微服务(二)网关GateWay、Docker、Dockerfile、Linux操作超详细

 文章来源地址https://www.toymoban.com/news/detail-500893.html

 SpringCloud微服务(二)网关GateWay、Docker、Dockerfile、Linux操作超详细

 SpringCloud微服务(二)网关GateWay、Docker、Dockerfile、Linux操作超详细

 SpringCloud微服务(二)网关GateWay、Docker、Dockerfile、Linux操作超详细

 SpringCloud微服务(二)网关GateWay、Docker、Dockerfile、Linux操作超详细

 ​​​​​​​SpringCloud微服务(二)网关GateWay、Docker、Dockerfile、Linux操作超详细

 

 SpringCloud微服务(二)网关GateWay、Docker、Dockerfile、Linux操作超详细

SpringCloud微服务(二)网关GateWay、Docker、Dockerfile、Linux操作超详细 

 SpringCloud微服务(二)网关GateWay、Docker、Dockerfile、Linux操作超详细

 

SpringCloud微服务(二)网关GateWay、Docker、Dockerfile、Linux操作超详细

 SpringCloud微服务(二)网关GateWay、Docker、Dockerfile、Linux操作超详细

 SpringCloud微服务(二)网关GateWay、Docker、Dockerfile、Linux操作超详细

 SpringCloud微服务(二)网关GateWay、Docker、Dockerfile、Linux操作超详细

SpringCloud微服务(二)网关GateWay、Docker、Dockerfile、Linux操作超详细

数据卷 

 SpringCloud微服务(二)网关GateWay、Docker、Dockerfile、Linux操作超详细

 

SpringCloud微服务(二)网关GateWay、Docker、Dockerfile、Linux操作超详细

操作数据卷

 

SpringCloud微服务(二)网关GateWay、Docker、Dockerfile、Linux操作超详细

 

SpringCloud微服务(二)网关GateWay、Docker、Dockerfile、Linux操作超详细

 

SpringCloud微服务(二)网关GateWay、Docker、Dockerfile、Linux操作超详细

 

 挂载数据卷

SpringCloud微服务(二)网关GateWay、Docker、Dockerfile、Linux操作超详细

 SpringCloud微服务(二)网关GateWay、Docker、Dockerfile、Linux操作超详细

 SpringCloud微服务(二)网关GateWay、Docker、Dockerfile、Linux操作超详细

 SpringCloud微服务(二)网关GateWay、Docker、Dockerfile、Linux操作超详细

SpringCloud微服务(二)网关GateWay、Docker、Dockerfile、Linux操作超详细

 

 

SpringCloud微服务(二)网关GateWay、Docker、Dockerfile、Linux操作超详细

 SpringCloud微服务(二)网关GateWay、Docker、Dockerfile、Linux操作超详细

 

Dockerfile自定义镜像

SpringCloud微服务(二)网关GateWay、Docker、Dockerfile、Linux操作超详细

 SpringCloud微服务(二)网关GateWay、Docker、Dockerfile、Linux操作超详细

SpringCloud微服务(二)网关GateWay、Docker、Dockerfile、Linux操作超详细 

 Dockerfile

SpringCloud微服务(二)网关GateWay、Docker、Dockerfile、Linux操作超详细

 SpringCloud微服务(二)网关GateWay、Docker、Dockerfile、Linux操作超详细

SpringCloud微服务(二)网关GateWay、Docker、Dockerfile、Linux操作超详细 

 SpringCloud微服务(二)网关GateWay、Docker、Dockerfile、Linux操作超详细

 SpringCloud微服务(二)网关GateWay、Docker、Dockerfile、Linux操作超详细

 DockerCompose

SpringCloud微服务(二)网关GateWay、Docker、Dockerfile、Linux操作超详细

 SpringCloud微服务(二)网关GateWay、Docker、Dockerfile、Linux操作超详细

 

CentOS7安装DockerCompose

Linux下需要通过命令下载:

# 安装
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.修改文件权限

修改文件权限:

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

2.3.Base自动补全命令:

# 补全命令
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

SpringCloud微服务(二)网关GateWay、Docker、Dockerfile、Linux操作超详细

 SpringCloud微服务(二)网关GateWay、Docker、Dockerfile、Linux操作超详细

 Docker镜像仓库

SpringCloud微服务(二)网关GateWay、Docker、Dockerfile、Linux操作超详细

 

3.Docker镜像仓库

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

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

3.1.简化版镜像仓库

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

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

docker run -d \
    --restart=always \
    --name registry	\
    -p 5000:5000 \
    -v registry-data:/var/lib/registry \
    registry

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

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

3.2.带有图形化界面版本

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

version: '3.0'
services:
  registry:
    image: registry
    volumes:
      - ./registry-data:/var/lib/registry
  ui:
    image: joxit/docker-registry-ui:static
    ports:
      - 8080:80
    environment:
      - REGISTRY_TITLE=传智教育私有仓库
      - REGISTRY_URL=http://registry:5000
    depends_on:
      - registry

3.3.配置Docker信任地址

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

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

SpringCloud微服务(二)网关GateWay、Docker、Dockerfile、Linux操作超详细

 SpringCloud微服务(二)网关GateWay、Docker、Dockerfile、Linux操作超详细

 

到了这里,关于SpringCloud微服务(二)网关GateWay、Docker、Dockerfile、Linux操作超详细的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【SpringCloud技术专题】「Gateway网关系列」(2)微服务网关服务的Gateway功能配置指南分析

    Spring Cloud Gateway简介 Spring Cloud Gateway是Spring Cloud体系的第二代网关组件,基于Spring 5.0的新特性WebFlux进行开发,底层网络通信框架使用的是Netty,所以其吞吐量高、性能强劲,未来将会取代第一代的网关组件Zuul。 Spring Cloud Gateway可以通过服务发现组件自动转发请求,默认集成了

    2024年02月11日
    浏览(37)
  • SpringCloud_Gateway服务网关

    Spring Cloud Gateway 用\\\"Netty + Webflux\\\"实现,不需要导入Web依赖。 Webflux 模式替换了旧的Servlet线程模型。用少量的线程处理request和response io操作,这些线程称为Loop线程,而业务交给响应式编程框架处理,响应式编程是非常灵活的,用户可以将业务中阻塞的操作提交到响应式框架的

    2024年02月02日
    浏览(49)
  • SpringCloud第三篇:GateWay服务网关

          传统的单体架构中只需要开放一个服务给客户端调用,但是微服务架构中是将一个系统拆分成多个微服务,如果没有网关,客户端只能在本地记录每个微服务的调用地址,当需要调用的微服务数量很多时,它需要了解每个服务的接口,这个工作量很大。那有了网关之后

    2024年02月08日
    浏览(48)
  • 【SpringCloud技术专题】「Gateway网关系列」(1)微服务网关服务的Gateway组件的原理介绍分析

    为什么要有服务网关? 我们都知道在微服务架构中,系统会被拆分为很多个微服务。那么作为客户端要如何去调用这么多的微服务呢?难道要一个个的去调用吗?很显然这是不太实际的,我们需要有一个统一的接口与这些微服务打交道,这就是我们需要服务网关的原因。 我们

    2024年02月11日
    浏览(47)
  • SpringCloud基础篇-10-服务网关-Gateway

    上一代网关Zuul 官网 SpringCloudGateway官网,变化很大,以实际为准 Gateway是在Spring生态系统之上构建的API网关服务,基于Spring5SpringBoot2和ProjectReactor等技术。 Gateway旨在提供一种简单而有效的方式来对API进行路由,以及提供一些强大的过滤器功能,例如:熔断、限流、重试等 SpringCl

    2024年04月11日
    浏览(44)
  • day08-SpringCloud Gateway-服务网关

    没有使用网关服务时: 使用网关服务后: 官网:Spring Cloud Gateway Gateway是Spring生态系统之上构建的API网关服务,基于Spring、SpringBoot和Project Reactor等技术 Gateway旨在提供一种简单有效的方式来对API进行路由,以及提供一切强大的过滤器功能,例如:熔断、限流、重试等 鉴权 流

    2024年02月07日
    浏览(42)
  • SpringCloud微服务 【实用篇】| 统一网关Gateway

    目录 一:统一网关Gateway 1. 为什么需要网关 2. gateway快速入门 3. 断言工厂 4. 过滤器工厂 5. 全局过滤器 6. 跨域问题 前面我们已经学习了注册中心Eureka、Nacos和配置管理中心Nacos;但是此时存在很多安全的问题,服务器摆在那里谁都可以进行访问! 网关功能: ① 身份认证和权

    2024年02月04日
    浏览(43)
  • SpringCloud之微服务API网关Gateway介绍

    1.1.1 简介 如果没有网关,难道不行吗?功能上是可以的,我们直接调用提供的接口就可以了。那为什么还需要网关? 因为网关的作用不仅仅是转发请求而已。我们可以试想一下,如果需要做一个请求认证功能,我们可以接入到 API 服务中。但是倘若后续又有服务需要接入,我

    2024年02月14日
    浏览(50)
  • SpringCloud Alibaba入门7之引入服务网关Gateway

    我们需要在客户端和服务端之间加一个统一的入口,来作为请求的统一接入,而在微服务的体系中,承担这个角色的就是网关。我们只需要将网关的机器IP配置到DNS,或者接入负载,那么客户端的服务最终通过我们的网关,再转发到对应的服务端服务。 一、创建网关服务  1.引

    2024年02月11日
    浏览(46)
  • 【springcloud 微服务】Spring Cloud 微服务网关Gateway使用详解

    目录 一、微服务网关简介 1.1 网关的作用 1.2 常用网关 1.2.1 传统网关 1.2.2 云原生网关

    2023年04月16日
    浏览(55)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包