zoukankan      html  css  js  c++  java
  • 系统综合实践1

    (1)课程调查

    上学期选课时,以为是个硬件实验课,感觉又要捣鼓硬件。然而再次听到“博客园”这三个字,不禁想起软工和SDN噩梦,登录博客园瞄了下作业,与微服务相联,一个没碰过的领域,原来老师所说的软工基础,是指博客基础。又是一门不简单的实践课,希望能学点新玩意。

    (2)了解微服务

    什么是微服务

    微服务是一个新兴的软件架构,就是把一个大型的单个应用程序和服务拆分为数十个的支持微服务。一个微服务的策略可以让工作变得更为简便,它可扩展单个组件而不是整个的应用程序堆栈,从而满足服务等级协议。

    微服务的特点

    • 每个微服务都有自己独立的基本组件,例如数据库、缓存等,且运行在独立的进程中。
    • 微服务之间的通信是通过HTTP协议或者消息组件,且具有容错能力。
    • 微服务有一套服务治理的解决方案,服务之间不耦合,可以随时加入和剔除服务。 单个微服务能够集群化部署,并且有负载均衡的能力
    • 整个微服务系统应该有一个完整的安全机制,包括用户验证、权限验证、资源保护等。 整个微服务系统有链路追踪的能力。
    • 有一套完整的实时日志系统。

    微服务的优点

    • 往往比传统的应用程序更有效地利用计算资源
    • 更快且更容易更新
    • 微服务架构有助于新兴的云服务,如事件驱动计算。

    微服务的缺点

    • 运维要求较高
    • 接口调整成本高
    • 数据一致性难以保证
    • 分布式的复杂性

    微服务的部署方法

    • 基于主机的服务实例
    • 基于容器的服务实例
    • 无服务器部署

    (3)学习docker技术

    docker的相关概念

    • docker:docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器或Windows 机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何接口。

    • docker compose:docker compose可以轻松、高效的管理容器,它是一个用于定义和运行多容器 Docker 的应用程序工具。

    • 镜像(Image):Docker 镜像可以看作是一个特殊的文件系统,除了提供容器运行时所需的程序、库、资源、配置等文件外,还包含了一些为运行时准备的一些配置参数(如匿名卷、环境变量、用户等)。镜像不包含任何动态数据,其内容在构建之后也不会被改变。

    • 容器(Container):容器(container)的定义和镜像(image)几乎一模一样,也是一堆层的统一视角,唯一区别在于容器的最上面那一层是可读可写的。 容器是由镜像实例化而来,这和我们学习的面向对象的概念十分相似,我们可以把镜像看作类,把容器看作类实例化后的对象。

    • 仓库(Repository):仓库可看着一个代码控制中心,用来保存镜像。

    • Dockerfile:Dockerfile是一个Docker镜像的描述文件,其内部包含了一条条的指令,每一条指令构建一层,因此每一条指令的内容,就是描述该层应当如何构建。

    • docker machine:docker machine是一个工具,它允许你在虚拟宿主机上安装Docker,并使用docker-machine命令管理这个宿主机,可以使用Docker Machine在本地的MAC或者windows box、公司网络,数据中心或者AWS这样的云提供商上创建docker。

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

    • k8s:k8s是基于容器的集群管理平台,它的全称,是kubernetes。

    搭建docker环境

    • 卸载可能存在的旧版本
    sudo apt-get remove docker docker-engine docker-ce docker.io
    

    在这里插入图片描述

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

    在这里插入图片描述

    • 安装以下包以使apt可以通过HTTPS使用存储库(repository)
    sudo apt-get install -y apt-transport-https ca-certificates curl software-properties-common
    

    在这里插入图片描述

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

    在这里插入图片描述

    • 使用下面的命令来设置stable存储库
    sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
    

    在这里插入图片描述

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

    在这里插入图片描述

    • 安装最新版本的Docker CE
    sudo apt-get install -y docker-ce
    

    在这里插入图片描述

    • 用经典的hello world来验证是否安装成功
    sudo docker run hello-world
    

    在这里插入图片描述

    容器的使用

    • 配置镜像加速器
    sudo mkdir -p /etc/docker
    sudo tee /etc/docker/daemon.json <<-'EOF'
    {
      "registry-mirrors": ["自己的加速器地址"]
    }
    EOF
    sudo systemctl daemon-reload
    sudo systemctl restart docker
    

    在这里插入图片描述

    • 获取镜像
    sudo docker pull ubuntu
    

    在这里插入图片描述

    • 启动容器与退出
    sudo docker run -it ubuntu /bin/bash
    exit
    

    在这里插入图片描述

    • 查看所有的容器
    sudo docker ps -a
    

    在这里插入图片描述

    • 启动停止重启容器
    sudo docker start <容器 ID>
    sudo docker stop <容器 ID>
    sudo docker restart <容器 ID>
    

    在这里插入图片描述

    • 查询容器
    sudo docker inspect <容器 ID>
    

    在这里插入图片描述

    • 删除容器
    sudo docker rm -f <容器 ID>
    

    在这里插入图片描述

    镜像的使用

    • 列出镜像列表
    sudo  docker images 
    

    在这里插入图片描述

    • 拉取镜像
    sudo docker pull httpd
    

    在这里插入图片描述

    • 删除镜像
    sudo docker rmi hello-world
    

    在这里插入图片描述

  • 相关阅读:
    vue 给嵌套的iframe子页面传数据 postMessage
    左边宽度固定,右边宽度自适应的三种写法
    全局变量声明的规范化
    利用__index和__newindex实现默认值表、监控表、只读表
    Metatable和Metamethod
    Lua中的协同程序 coroutine
    Lua中的require
    Lua基础
    D3D的绘制
    效率相关笔记
  • 原文地址:https://www.cnblogs.com/JasonL-S/p/12709515.html
Copyright © 2011-2022 走看看