gate网关学习与docker容器与镜像

Gateway网关

在这里插入图片描述

搭载简单网关

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

网关搭建步骤:

1.创建项目,引入nacos服务发现和gateway依赖
2.配置applicationyml,包括服务基本信息、nacos地址、路由
路由配置包括
1.路由id:路由的唯一标示
2.路由目标 (uri):路由的目标地址,http代表固定地址,lb代表根
据服务名负载均衡
路由断言 (predicates):判断路由的规则

在这里插入图片描述

Docker实用篇

0.学习目标

1.初识Docker

1.1.什么是Docker

微服务虽然具备各种各样的优势,但服务的拆分通用给部署带来了很大的麻烦。

  • 分布式系统中,依赖的组件非常多,不同组件之间部署时往往会产生一些冲突。
  • 在数百上千台服务中重复部署,环境不一定一致,会遇到各种问题

1、 Docker如何解决大型项目依赖关系复杂,不同组件依赖的兼容性问题?
Docker允许开发中将应用、依赖、函数库、配置一起打包,形成可移植镜像Docker应用运行在容器中,使用沙箱机制,相互隔离

2、Docker如何解决开发、测试、生产环境有差异的问题
Docker镜像中包含完整运行环境,包括系统函数库,仅依赖系统的Linux内核,因此可以在任意Linux操作系统上运行

Docker是一个快速交付应用、运行应用的技术:
1.可以将程序及其依赖、运行环境一起打包为一个镜像可以迁移到任意Linux操作系统
2.运行时利用沙箱机制形成隔离容器,各个应用互不干扰
3.启动、移除都可以通过一行命令完成,方便快捷

与虚拟机的区别

在这里插入图片描述

docker架构

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
镜像:将应用程序及其依赖、环境、配置打包在一起容器:
镜像运行起来就是容器,一个镜像可以运行多个容器Docker结构:
服务端:接收命令或远程请求,操作镜像或容器
客户端:发送命令或者请求到Docker服务端
**DockerHub:**一个镜像托管的服务器,类似的还有阿里云镜像服务,统称为DockerRegistry

docker的常用命令

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

docker命令

dockerrun命令的常见参数有哪些?
–name:指定容器名称
-p:指定端口映射
-d:让容器后台运行查看容器日志的命令
docker logs
添加-f 参数可以持续查看日志查看容器状态
docker ps
在这里插入图片描述
查看容器状态:
docker ps
添加-a参数查看所有状态的容器删除容器:
docker rm
不能制除运行中的容器,除非添加- f 参数进入容器:
命令是docker exec-i[容器名][要执行的命令]exec命令可以进入容器修改文件,但是在容器内修改文件是不推荐的

docker数据卷

在这里插入图片描述

数据卷挂载方式:

-v volumeName: /targetContainerPath
如果容器运行时volume不存在,会自动被创建出来
在这里插入图片描述
在这里插入图片描述

1.docker run的命令中通过 -v 参数挂载文件或目录到容器中:
-v volume名称:容器内目录
-v 宿主机文件:容器内文件
-v 宿主机目录:容器内目录
2.数据卷挂载与目录直接挂载的
数据卷挂载耦合度低,由docker来管理目录,但是目录较深,不好找

 docker volume create html
 docker run --name mn -p 80:80 -v html:/usr/share/nginx/htm1 -d nginx

docker run \
--name mysql \
-e MYSQL_ROOT_PASSWORD=123 \
-p 3306:3336 \
-v /tmp/mysql/conf/hmy.cnf:/etc/mysql/conf.d/hmy.cnf \
-v /tmp/mysg1/data:/var/1ib/mysql \
-d \
mysq1:5.7.25

镜像结构

在这里插入图片描述
镜像是分层结构,每一层称为一个Layer
Baselmage层:包含基本的系统函数库、环境变量、文件系统
Entrypoint: 口,是镜像中应用启动的命令
其它:在Baselmage基础上添加依赖、安装程序、完成整个应用的安装和配置

dockerfiler镜像构建

1.Dockerfile的本质是一个文件,通过指令描述镜像的构建过程
2.Dockerfile的第一行必须是FROM,从一个基础镜像来构建
3.基础镜像可以是基本操作系统,如Ubuntu。也可以是其他人制作好的镜像,例如: java:8-alpine

自定义镜像-Dockerfile

集群的构建和快速部署
在这里插入图片描述

docker部署微服务

在这里插入图片描述
这个是微服务的Dockerfile文件,也就是构建和部署流程

user-service
FROM java:8-alpine
COPY ./app.jar /tmp/app.jar
ENTRYPOINT java -jar /tmp/app.jar

这个是整体Dockerfile

version: "3.2"

services:
  nacos:
    image: nacos/nacos-server
    environment:
      MODE: standalone
    ports:
      - "8848:8848"
  mysql:
    image: mysql:5.7.25
    environment:
      MYSQL_ROOT_PASSWORD: 123
    volumes:
      - "$PWD/mysql/data:/var/lib/mysql"
      - "$PWD/mysql/conf:/etc/mysql/conf.d/"
  userservice:
    build: ./user-service
  orderservice:
    build: ./order-service
  gateway:
    build: ./gateway
    ports:
      - "10010:10010"

查询微服务日志
docker-compose logs -f gateway
查看docker的日志
docker-compose logs -f
微服务重新启动
docker-compose restart gateway userservice orderservice
根据dockerfile构建并执行微服务(down停止并删除)
docker-compose up -d

Docker镜像仓库

常见镜像仓库服务
镜像仓库( Docker Registry )有公共的和私有的两种形式:
1、公共仓库:例如Docker官方的 Docker Hub,国内也有一些云服务商提供类似于Docker Hub 的公开服务,比如网易云镜像服务、DaoCloud 镜像服务、阿里云镜像服务等。
2、除了使用公开仓库外,用户还可以在本地搭建私有 Docker Registry。企业自己的镜像最好是采用私有DockerRegistry来实现。
在这里插入图片描述
在这里插入图片描述
1.推送本地镜像到仓库前都必须重命名(docker tag)镜像,以镜像仓库地址为前缀
2.镜像仓库推送前需要把仓库地址配置到docker服务的daemon.json文件中,被docker信任
3.推送使用docker push命令
4.拉取使用docker pull命令

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值