2020系统综合实践 第1次实践作业
(1)课程调查
- 对于这门课的认识感觉就只能从名字来说了,应该是综合了前三年所学知识的一门实践课吧。教学方式用博客园班级来说感觉可能会跟软工实践差不多,但还是希望别跟软工那么虐了
(2) 了解微服务
- 微服务架构是一种架构模式,它提倡将单一应用程序划分成一组小的服务,服务之间互相协调、互相配合,为用户提供最终价值。每个服务运行在其独立的进程中,服务于服务间采用轻量级的通信机制互相沟通(通常是基于 HTTP 的 RESTful API)。每个服务都围绕着具体业务进行构建,并且能够被独立地部署到生产环境、类生产环境等。另外,应尽量避免统一的、集中式的服务管理机制,对具体的一个服务而言,应根据业务上下文,选择合适的语言、工具对其进行构建。
- 什么是微服务架构?
- 一篇故事告诉你什么是微服务架构!
(3)学习docker技术
相关概念
- Docker:是一个基于Go语言的开源应用容器引擎,它能够让开发者打包应用及依赖包到一个轻量级、可移植的容器中后发布到linux机器上实现虚拟化。简单来说,Docker是一个基于虚拟化服务的新型技术,是一个将运行时环境打包成容器进行传输的技术,实现 ”一次构建,处处运行的“理念
- Docker Compose:是用来管理你的容器的,有点像一个容器的管家,想象一下当你的Docker中有成百上千的容器需要启动,如果一个一个的启动那得多费时间。有了Docker-Compose你只需要编写一个文件,在这个文件里面声明好要启动的容器,配置一些参数,执行一下这个文件,Docker就会按照你声明的配置去把所有的容器启动起来,但是Docker-Compose只能管理当前主机上的Docker,也就是说不能去启动其他主机上的Docker容器
- Docker Swarm:是一款用来管理多主机上的Docker容器的工具,可以负责帮你启动容器,监控容器状态,如果容器的状态不正常它会帮你重新帮你启动一个新的容器,来提供服务,同时也提供服务之间的负载均衡,而这些东西Docker-Compose 是做不到的
- Dockerfile: 是一个Docker镜像的描述文件,我们可以理解成火箭发射的A、B、C、D…的步骤。其内部包含了一条条的指令,每一条指令构建一层,因此每一条指令的内容,就是描述该层应当如何构建。
- Docker Maching是一种可以让您在虚拟主机上安装 Docker 的工具,并可以使用 docker-machine 命令来管理主机。 管理的虚拟主机可以是机上的,也可以是云供应商。
- K8s:它本身的角色定位是和Docker Swarm 是一样的,也就是说他们负责的工作在容器领域来说是相同的部分,当然也有自己一些不一样的特点。
- Docker,Docker Compose,Docker Swarm,Kubernetes之间的区别
环境搭建
- 搭建过程参考Ubuntu Docker 安装
- 安装完后执行
sudo docker run hello-world
命令验证安装成功
容器使用
镜像基础
- 容器的使用要基于镜像,
sudo docker images
查看当前主机镜像,发现只有刚才的hello-world镜像,没有Ubuntu镜像。
sudo docker pull ubuntu
获取Ubuntu镜像后重新查看当前镜像,列表中已经多出Ubuntu镜像
创建容器
sudo docker run -itd --name==test_con ubuntu
使用Ubuntu镜像创建一个名为test_con
的容器,用sudo docker ps -a
查看创建前后的容器列表对比
删除容器
sudo docker rm -f 27f56c9bbac1
来删除刚创建的test_con
容器,命令中27f56c9bbac1
为容器ID,删除成功会返回其ID
创建镜像仓库,实现拉取和上传镜像
- 由于DockerHub上不去,所以我用了阿里云的镜像仓库,将本地的ubuntu镜像上传到镜像仓库
- 从阿里云镜像仓库拉取镜像
总结
- 总的来说大部分教程都能从参考文献中找到,过程中遇到了挺多困难,最后就是疯狂百度,百度解决一切问题