2020系统综合实践 第1次实践作业
1.课程调查
进入大三下学期的后半段,大学阶段的理论课程应该已经修得八九不离十了,在这个时间点迎来系统综合实践这门课,作为培养计划的一门新课程,我们非常希望了解你们对于课程的希望,请写下你对这门课的认识和你理想中的这门课程是怎么样的。
一开始以为这门课是计算机系统结构的配套实验课...以为和组原实践,接口实践差不多,但是好像并不是这样。了解到这是一门新课程,之前对微服务、docker等没什么了解,希望老师能讲得详细一些。
2.了解微服务
第一次作业我们将接触一种新型的软件架构——微服务(也许部分同学已经有所了解)。大家要做的是学习并了解该技术,微服务是什么,有什么特点,相较于传统的软件架构,它有什么优缺点,它是怎样部署的。
在知乎上看到很完整的回答:什么是微服务架构?
3.学习docker技术
docker作为微服务的一种十分典型的代表技术,我们要做的是:
学习了解docker的相关概念(容器、镜像等),了解docker、docker compose、Dockerfile、docker machine、Swarm、k8s是什么,是做什么用的,心中有概念即可;
搭建你自己的docker环境,系统环境不限(主流的有Ubuntu/CentOS/Debian/Windows/MacOS等),完成docker的基本入门,包括但不限于:容器的创建、删除、更新和查询,创建并维护自己的镜像仓库,实现拉取和上传镜像等。
3.1 了解相关概念
- 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
Dockerfile是一个用来构建镜像的文本文件,文本内容包含了一条条构建镜像所需的指令和说明。 - Docker Machine
Docker Machine是一个简化Docker安装的命令行工具,通过一个简单的命令行即可在相应的平台上安装Docker(比如VirtualBox、 Digital Ocean、Microsoft),并可以使用docker-machine命令来管理主机;也可以集中管理所有的docker主机,比如快速的给100台服务器安装上docker。 - Swarm
Docker Swarm是Docker的集群管理工具。它将 Docker主机池转变为单个虚拟Docker主机。它提供了标准的 Docker API,所有任何已经与 Docker守护程序通信的工具都可以使用Swarm轻松扩展到多个主机。 - k8s
Kubernetes是Google 2014年创建管理的,是Google 10多年大规模容器管理技术Borg的开源版本。它是容器集群管理系统,是一个开源的平台,可以实现容器集群的自动化部署、自动扩缩容、维护等功能。
3.2 搭建docker环境(ubuntu)
3.2.1 设置仓库
更新 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 -
设置稳定版仓库
sudo add-apt-repository \ "deb [arch=amd64] https://download.docker.com/linux/ubuntu \ $(lsb_release -cs) \ stable"
3.2.2 安装 Docker Engine-Community
更新 apt 包索引
sudo apt-get update
装最新版本的 Docker Engine-Community 和 containerd
sudo apt-get install docker-ce docker-ce-cli containerd.i
启动docker
sudo systemctl start docker
配置阿里云镜像加速器
重启
systemctl restart docker
hello-world
3.2.3容器的创建、删除、更新和查询
使用 docker pull 命令来载入 ubuntu 镜像
启动并退出容器
查询所有的容器
查询镜像列表
3.2.4创建并维护自己的镜像仓库
在阿里云创建一个镜像仓库
登录仓库
上传镜像