• 第1次实践作业


    一、课程调查

    • 我的认识:系统综合实践最初我以为是计算机系统的实践教学,后来才知道是系统性的综合实践。
    • 我的希望:老师在上课时能多讲一些,要具体一点,因为我对微服务这些不太了解,全靠自学有点困难。

    二、了解微服务

    (1)什么是微服务

    微服务是一种软件开发技术,是面向服务的架构(SOA)结构风格的一种变体,将应用程序编排成一系列松耦合的服务。在微服务架构中,各个服务是细粒度的,协议是轻量级的。

    (2)微服务特点
    • 每个微服务都可以运行在自己的进程里;
    • 一系列独立运行的微服务共同构建起了整个系统;
    • 每个服务为独立的业务开发,一个微服务一般完成某个特定的功能,比如订单管理,用户管理等;
    • 微服务之间通过一些轻量级的通信机制进行通信。
    (3)优势
    • 将复杂的业务拆分成多个小的业务,每个业务拆分成一个服务,将复杂的问题简单化。利于分工,降低新人的学习成本。
    • 微服务系统是分布式系统,业务与业务之间完全解耦,随着业务的增加可以根据业务再拆分,具有极强的横向扩展能力。面对搞并发的场景可以将服务集群化部署,加强系统负载能力。
    • 服务间采用HTTP协议通信,服务与服务之间完全独立。每个服务可以根据业务场景选取合适的编程语言和数据库。
    • 微服务每个服务都是独立部署的,每个服务的修改和部署对其他服务没有影响。
    (4)缺点

    微服务把单体开发的复杂度简化了,但部署和服务跟服务之间的复杂度会提高,所以需要有一个对architect层面比较清楚的人来做规划。

    (5)部署

    微服务部署使用容器技术。用统一规格,封装微服务,统一部署管理。

    三、学习docker技术

    3.1了解docker的相关概念

    (1)docker

    Docker是一个基于虚拟化服务的新型技术,是一个将运行时环境打包成容器进行传输的技术,实现“一次构建,处处运行”的理念。
    Docker 的容器通过 Linux 的命名空间完成了与宿主机进程的网络隔离。Docker 为我们提供了四种不同的网络模式,Host、Container、None 和 Bridge 模式。Docker 默认的网络设置模式:网桥模式。

    (2)容器

    容器是镜像的一个实例,是一个小型的运行时环境,比如一般是小型的linux环境(基于linux内核的小型环境),用java代码比喻就是:容器是一个类的实例对象,比如Person小明= new Person0; Person就是一个模板, 也是要给镜像。

    (3)镜像

    镜像是保存在镜像仓库中的,pul镜像,相当于将镜像实例化成容器后部署在自己的环境中,用java来说就是一个类对象。

    (4)仓库

    仓库是用来保存多个注册仓库的,每个注册仓库中保存了不同的镜像image文件。

    (5)docker compose

    Docker Compose是Docker编排服务的最后一块Compose可以让用户在集群中部署分布式应用。简单的说,Docker Compose属于一个“应用层”的服务,用户可以定义哪个容器组运行哪个应用,它支持动态改变应用,并在需要时扩展。

    (6)Dockerfile

    Dockerfile是docker中镜像文件的的描述文件。

    (7)docker machine

    Docker Machine 是 Docker 官方提供的一个工具,它可以帮助在远程的机器上安装 Docker,或者在虚拟机 host 上直接安装虚拟机并在虚拟机中安装 Docker。

    (8)Swarm

    Swarm是Docker官方提供的一款集群管理工具,其主要作用是把若干台Docker主机抽象为一个整体,并且通过一个入口统一管理这些Docker主机上的各种Docker资源。Swarm和Kubernetes比较类似,但是更加轻,具有的功能也较kubernetes更少一些。

    (9)k8s

    k8s是一个编排容器的工具,其实也是管理应用的全生命周期的一个工具,从创建应用,应用的部署,应用提供服务,扩容缩容应用,应用更新,都非常的方便,而且可以做到故障自愈。

    3.2搭建docker环境

    (1)docker的搭建
    • 卸载可能已安装的旧版本
    sudo apt-get remove docker docker-engine docker.io containerd runc
    

    image.png

    • 更新agt包索引
    sudo apt-get update
    

    image.png

    • 安装 apt 依赖包,用于通过HTTPS来获取仓库
    sudo apt-get install 
        apt-transport-https 
        ca-certificates 
        curl 
        gnupg-agent 
        software-properties-common
    

    image.png

    • 添加 Docker 的官方 GPG 密钥
    curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
    

    image.png

    • 通过搜索指纹的后8个字符,验证您现在是否拥有带有指纹的密钥。
     sudo apt-key fingerprint 0EBFCD88
    

    image.png

    • 设置稳定版仓库
    sudo add-apt-repository 
       "deb [arch=amd64] https://download.docker.com/linux/ubuntu 
      $(lsb_release -cs) 
      stable"
    

    image.png

    • 再更新 apt 包索引
    sudo apt-get update
    

    image.png

    • 安装最新版本的 Docker Engine-Community 和 containerd
    sudo apt-get install docker-ce docker-ce-cli containerd.io
    

    image.png

    • 测试 Docker 是否安装成功
    sudo docker run hello-world
    

    image.png

    (2)docker的容器操作
    • 获取镜像
    sudo docker pull ubuntu
    

    image.png

    • 启动容器(创建一个新镜像)
    sudo docker run -it ubuntu /bin/bash
    

    image.png

    • 查询所有容器
    sudo docker ps -a
    

    image.png

    • 删除一个容器,如图所示
    sudo docker rm -f <容器名>
    

    image.png

    (3)docker的镜像操作
    • 查看镜像
    sudo docker images
    

    image.png

    • 搜索docker hub 中的所有Python镜像
    sudo docker search Python
    

    image.png

    • 选取第一个,并且执行PULL操作
    sudo docker pull python
    

    image.png

    • 运行python容器
    sudo docker run -it python
    

    image.png

    • 登入docker hub仓库
    sudo docker login
    

    image.png

    • 上传镜像到自己docker hub 仓库
    sudo docker tag ubuntu lintao16/ubuntu
    sudo docker push lintao16/ubuntu
    

    image.png

    • 运行结果
      image.png
  • 相关阅读:
    -_-#【Angular】工具函数
    -_-#【m3u】
    -_-#【Angular】依赖注入
    -_-#【响应式图片】
    CODEVS——T1519 过路费
    CODEVS——T1979 第K个数
    Vijos——T1279 Leave-绿光
    HDU——T 2824 The Euler function
    洛谷——P1096 Hanoi双塔问题
    python(36)- 测试题
  • 原文地址:https://www.cnblogs.com/fdltbk/p/12723031.html
Copyright © 2020-2023  润新知