(1)课程调查
- 刚开始的时候不知道这是一门什么样的课,以为这是硬件方面的课程,经过老师的介绍后才明白这是软件方面的,形式有一点点像软件定义网络课程。希望能学好这门课程,提高专业方面的能力
(2)了解微服务
- 微服务是什么?
- 微服务是一个新兴的软件架构,就是把一个大型的单个应用程序和服务拆分为数十个的支持微服务。一个微服务的策略可以让工作变得更为简便,它可扩展单个组件而不是整个的应用程序堆栈,从而满足服务等级协议。
- 微服务的特点
- 微服务把每个职责单一的功能放在一个独立的服务中。
- 每个服务允许在一个独立的进程中。
- 每个服务有多个实例在运行,每个实例可以运行在容器化平台内,达到平滑扩展伸缩的效果。
- 每个服务有自己的数据存储,实际上,每个服务应该有自己独享的数据库、缓存、消息队列等资源。
- 每个服务应该有自己的运营平台,以及独享的运营人员,这包括技术运维和业务运营人员。每个服务都高度自治,内部的变化对外透明。
- 每个服务都可根据性能需求独立的进行水平伸缩。
- 微服务的优点
- 微服务是松藕合的,无论是在开发阶段或部署阶段都是独立的。
- 能够快速响应, 局部修改容易, 一个服务出现问题不会影响整个应用。
- 易于和第三方应用系统集成, 支持使用不同的语言开发, 允许你利用融合最新技术。
- 每个微服务都很小,足够内聚,足够小,代码容易理解。团队能够更关注自己的工作成果, 聚焦指定的业务功能或业务需求。
- 开发简单、开发效率提高,一个服务可能就是专一的只干一件事, 能够被小团队单独开发,这个小团队可以是 2 到 5 人的开发人员组成。
- 微服务的缺点
- 微服务架构带来过多的运维操作, 可能需要团队具备一定的 DevOps 技巧.
- 分布式系统可能复杂难以管理。因为分布部署跟踪问题难。当服务数量增加,管理复杂性增加。
- 微服务的部署*
- 单主机多服务实例模式
- 单主机单服务实例模式
- 单容器单服务实例模式
(3)学习docker技术
-
Docker的安装搭建
- 卸载旧版本
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 -
- 通过搜索指纹的后8个字符,验证是否拥有带有指纹的密钥
sudo apt-key fingerprint 0EBFCD88
- 设置稳定版仓库
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
-
安装 Docker Engine-Community
- 更新 apt 包索引
sudo apt-get update
- 安装最新版本的 Docker Engine-Community 和 containerd ,或者转到下一步安装特定版本
sudo apt-get install docker-ce docker-ce-cli containerd.io
- 列出仓库中可用的版本
apt-cache madison docker-ce
- 使用第二列中的版本字符串安装特定版本,例如 5:19.03.83-0ubuntu-xenial
sudo apt-get install docker-ce=5:19.03.8~3-0~ubuntu-xenial docker-ce-cli=5:19.03.8~3-0~ubuntu-xenial containerd.io
- 测试 Docker 是否安装成功
sudo docker run hello-world
-
容器使用
-
容器的创建
-
容器的查询
-
容器的更新
-
容器的删除
-
停止容器
-
重启容器
-
-
镜像
-
创建docker仓库
-
登录Docker Hub
- 执行 docker login 指令,并输入账号密码
-
查找镜像
-
拖取镜像
- 使用命令 docker pull 来下载镜像
-
列出镜像列表
- 使用 docker images 来列出本地主机上的镜像
-
删除镜像
- 以hello-world镜像为例,先用 docker rm container ID删除容器,再通过docker rmi hello-world删除
-
上传镜像
sudo docker tag ubuntu:latest registry.cn-hangzhou.aliyuncs.com/f_wh/ubuntu:latest sudo docker image ls
sudo docker push registry.cn-hangzhou.aliyuncs.com/f_wh/ubuntu:latest
- 在仓库中找到镜像,上传成功
- 在仓库中找到镜像,上传成功
-
(4)总结
- 遇到的问题
- 解决方法
- 进入 etc/docker 目录下,新建daemon.json文件
- 在daemon.json文件中输入以下内容
- 然后执行以下代码
- 进入 etc/docker 目录下,新建daemon.json文件