系统综合实践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

在这里插入图片描述

原文地址:https://www.cnblogs.com/JasonL-S/p/12709515.html