• 第1次实践作业


    (1) 课程调查

    • 感觉这门课程可能有点类似于软件工程实践
      • 需要团队协作,经历一个完整的开发过程。
      • 需要自主学习课外相关知识。

    (2) 了解微服务

    • 微服务是什么?
      • 微服务是一个新兴的软件架构,就是把一个大型的单个应用程序和服务拆分为数十个的支持微服务。一个微服务的策略可以让工作变得更为简便,它可扩展单个组件而不是整个的应用程序堆栈,从而满足服务等级协议。
    • 微服务的特点
      • 按照业务来划分服务,单个服务代码量小,业务单一,易于维护。
      • 每个微服务都有自己独立的基本组件,例如数据库、缓存等,且运行在独立的进程中。
      • 微服务之间的通信是通过HTTP协议或者消息组件,且具有容错能力。
      • 微服务有一套服务治理的解决方案,服务之间不耦合,可以随时加入和剔除服务。
      • 整个微服务系统应该有一个完整的安全机制,包括用户验证、权限验证、资源保护等。
    • 相较于传统的软件架构,它有什么优缺点?
      • 优点
        • 每个服务足够内聚,足够小,代码容易理解、开发效率提高
        • 服务之间可以独立部署,微服务架构让持续部署成为可能
        • 每个服务可以根据自己的需要部署到合适的硬件服务器上
        • 容错性提高,一个服务的内存泄露并不会让整个系统瘫痪
        • 微服务能使用不同的语言开发
      • 缺点
        • 开发人员要处理分布式系统的复杂性
        • 开发人员要设计服务之间的通信机制
        • 涉及多个服务直接的自动化测试也具备相当的挑战性
        • 需要考虑微服务之间数据的一致性

    (3) 学习docker技术

    • Docker:

      • 一个开源的应用容器引擎,基于 Go 语言 并遵从 Apache2.0 协议开源。可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可 以实现虚拟化。
      • Docker 包括三个基本概念:
        • 镜像(Image):Docker 镜像(Image),就相当于是一个 root 文件系统。比如官方镜像 ubuntu:16.04 就包含了完整的一套 Ubuntu16.04 最小系统的 root 文件系统。
        • 容器(Container):镜像(Image)和容器(Container)的关系,就像是面向对象程序设计中的类和实例一样,镜像是静态的定义,容器是镜像运行时的实体。容器可以被创建、启动、暂停等。
        • 仓库(Repository):仓库可看着一个代码控制中心,用来保存镜像
    • Docker Compose:

      • Compose 是用于定义和运行多容器 Docker 应用程序的工具。
        通过 Compose,您可以使用 YML 文件来配置应用程序需要的所有服务。然后,使用一个命令,就可以从 YML 文件配置中创建并启动所有服务。
    • Dockerfile:

      • 一个用来构建镜像的文本文件,文本内容包含了一条条构建镜像所需的指令和说明
    • docker machine:

      • 允许你在虚拟宿主机上安装Docker,并使用docker-machine命令管理这个宿主机的工具
    • Swarm:

      • Docker Swarm 是 Docker 的集群管理工具。它将 Docker 主机池转变为单个虚拟 Docker 主机
    • K8s:

      • 是一个跨主机集群的开源的容器调度平台,它可以自动化应用容器的部署、扩展和操作 , 提供以容器为中心的基础架构。

    (4)在Ubuntu上搭建Docker环境

    • 操作系统:

      Ubuntu 19.10

    • 步骤:

      • 跟新apt包索引:

        sudo apt-get update

      • 安装apt依赖包,用于通过HTTPS来获取仓库:

        sudo apt-get install

        ​ apt-transport-https

        ​ ca-certificates

        ​ curl

        ​ gnupg-agent

        ​ software-properties-common

      • 添加Docker的官方GPG密钥:

        curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -

      • **9DC8 5822 9FC7 DD38 854A E2D8 8D81 803C 0EBF CD88 通过搜索指纹的后8个字符,验证您现在是否拥有带有指纹的密钥。

        $sudo apt-key fingerprint 0EBFCD88

        pub rsa4096 2017-02-22 [SCEA]
        9DC8 5822 9FC7 DD38 854A E2D8 8D81 803C 0EBF CD88
        uid [ unknown] Docker Release (CE deb) docker@docker.com
        sub rsa4096 2017-02-22 [S]

      • 使用以下指令设置稳定版仓库:

        sudo add-apt-repository 
           "deb [arch=amd64] https://mirrors.aliyun.com/docker-ce/linux/ubuntu 
           $(lsb_release -cs) 
           stable"
        
      • 更新 apt 包索引

        sudo apt-get update

      • 安装最新版本的 Docker Engine-Community 和 containerd

        sudo apt-get install docker-ce docker-ce-cli containerd.io

      • 测试 Docker 是否安装成功,输入以下指令,打印出以下信息则安装成功:

        sudo docker run hello-world

        成功:

    • 将非root用户加入docker组,以允许免sudo执行docker

      sudo gpasswd -a 用户名 docker
      
    • 重启服务并刷新docker组成员

      sudo service docker restart
      newgrp - docker
      
    • 使用:

      • 开启容器

        首先需要先输入docker pull httpd拉取httpd镜像 或者直接输入docker run -it httpd /bin/bash,如果没有该镜像,会自动拉取

      • 退出容器

        退出容器只需要在容器中输入exit,即可退出

    • 查看容器

      docker ps -a

    • 重启容器

      docker restart <容器ID>

      运行后就会进入后台运行

    • 进入后台运行的容器

      docker attach <容器ID>

    • 删除容器

      docker rm -f <容器ID>

    • 仓库管理

      • 账号登录

        docker login

        需要输入账号密码,没有的话需要注册一个 ,网站:Docker Hub

      • 查看本地镜像

        docker images

      • 拉镜像到本地

        docker pull httpd

      • Push镜像

        docker  tag  <镜像id> <要推入仓库的用户名>/<要推入的仓库名>:<新定义的tag>

        docker push <要推入仓库的用户名>/<要推入的仓库名>:<镜像标签>

  • 相关阅读:
    [openshift]openshfit OKD的安装
    [Docker]记一次使用jenkins将镜像文件推送到Harbor遇到的问题
    [k8s]创建Kubernetes的ssl/tls用户
    [k8s]ubuntu18 + Heketi + Glsuterfs的独立部署
    [k8s]kubernetes dashboard的安装
    [K8S]kubeadm国内镜像安装方式
    [K8S]污点调度
    [GO]解决golang.org/x/ 下包下载不下来的问题
    [GO]删除切片的某个值
    layui静态初始化渲染表单样式
  • 原文地址:https://www.cnblogs.com/SilentSamsara/p/12701255.html
Copyright © 2020-2023  润新知