第1次实践作业
(1)课程调查
在经过三年的学习之后,急需对所学知识进行一个大总结,让我对所学到的知识理解更加深刻并能够加以使用,在这个时候看到了系统综合实践这门课。从名字上来看,系统综合实践这门课似乎恰好能够达到我的要求。因为以前并没有了解过有关这门课的东西,所以对于这门课我还是比较陌生的,对于这门课程的了解也仅限于老师口中的只言片语。在接下来的学习中,希望这门课能够如我所想,能够帮助我更加牢固的掌握和使用所学。
(2)了解微服务
1.微服务是什么?
微服务是一种架构风格,是以开发一组小型服务的方式来作为一个独立的应用系统,每个服务都运行在自已的进程中,服务之间采用轻量级的HTTP通信机制 ( 通常是采用HTTP的RESTful API )进行通信。每一个小型服务都围绕着系统中一些耦合度较高的业务功能进行构建,并且每个服务都维护着自身的数据存储,业务开发,自动化测试案例以及独立部署机制。
2.微服务的特点
组件化、松耦合、自治、去中心化
3.微服务的优缺点
优点:易于开发和维护、单个微服务启动较快、局部修改容易部署、技术栈不受限制、按需伸缩
缺点:运维要求高、分布式固有的复杂性、接口调整成本高
4.微服务的部署
1.每台主机上部署多个服务实例。部署多台物理主机或者虚拟机,每个主机上可以运行多个服务实例。
2.每个主机一个服务实例。其中有两种方式,一种是每个虚拟机部署一个服务实例,另一种方式是每个容器部署一个服务实例。
3 无服务的部署。使用无服务部署的技术。
(3)学习docker技术
1.docker的相关概念
Docker:一个开源的应用容器引擎,基于 Go 语言 并遵从 Apache2.0 协议开源。
k8s:一个开源的容器集群管理系统,可以实现容器集群的自动化部署、自动扩缩容、维护等。
镜像(Images):Docker镜像是用于创建 Docker 容器的模板,比如 Ubuntu 系统。
容器(Container):Docker容器是独立运行的一个或一组应用,是镜像运行时的实体
仓库(Repository):仓库可看着一个代码控制中心,用来保存镜像。
Docker Compose:用于定义和运行多容器 Docker 应用程序的工具。
Dockerfile:一个用来构建镜像的文本文件,文本内容包含了一条条构建镜像所需的指令和说明。
Docker Machine:一种可以让您在虚拟主机上安装 Docker 的工具,并可以使用 docker-machine 命令来管理主机。
Swarm:Docker官方提供的一款集群管理工具,其主要作用是把若干台Docker主机抽象为一个整体,并且通过一个入口统一管理这些Docker主机上的各种Docker资源。
2.搭建自己的docker环境
2.1 设置仓库
卸载旧版本。
sudo apt-get remove docker docker-engine docker.io containerd runc
更新 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"
2.2 安装 Docker Engine-Community
更新 apt 包索引
sudo apt-get update
安装最新版本的 Docker Engine-Community 和 containerd
sudo apt-get install docker-ce docker-ce-cli containerd.io
启动docker
sudo systemctl start docker
配置阿里云镜像加速器
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://v54081p6.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
重启docker
systemctl restart docker
验证是否正确安装了Docker Engine-Community
sudo docker run hello-world
2.3容器的创建、删除、更新和查询
载入 ubuntu 镜像
sudo docker pull ubuntu
启动并退出容器
sudo docker run -it ubuntu /bin/bash
exit
查询所有的容器
sudo docker ps -a
启动特定容器
sudo docker start 6301bc58c415
停止容器
sudo docker stop 6301bc58c415
更新容器
sudo docker container update --help
删除容器
sudo docker rm -f 6301bc58c415
2.4创建并维护自己的镜像仓库
查询镜像列表
sudo docker images
在docker里登入阿里云
sudo docker login --username=banquet11 registry.cn-hangzhou.aliyuncs.com
将镜像推送到Registry
sudo docker tag [ImageId] registry.cn-hangzhou.aliyuncs.com/banquet11/banquet:[镜像版本号]
sudo docker push registry.cn-hangzhou.aliyuncs.com/banquet11/banquet:[镜像版本号]
阿里云镜像仓库