(1)课程调查
- 进入大三下学期的后半段,大学阶段的理论课程应该已经修得八九不离十了,在这个时间点迎来系统综合实践这门课,作为培养计划的一门新课程,我们非常希望了解你们对于课程的希望,请写下你对这门课的认识和你理想中的这门课程是怎么样的。
前半学期学了系统结构的理论课,是了解“系统结构“层面的技术的,因此会以为这门实践会更偏向硬件,就好似以前我们做过的现代接口技术实践一般,连接硬件,再敲几行代码实现相关功能。后来看到老师发出来的二维码,让我们加入博客班级,这个操作让我感到有些些似曾相识,想到了软工这门课(现在想来还有些后怕,希望老师手下留情),既然开了这一门课程,必定是本着要学到一些知识技术的态度来对待这门课程的,对我来说几乎都是新知识,也希望老师上这门课的时候能够深刻讲解,多推荐一些好的学习资料和路径。总之,奥利给!
(2)微服务
- 第一次作业我们将接触一种新型的软件架构——微服务(也许部分同学已经有所了解)。大家要做的是学习并了解该技术,微服务是什么,有什么特点,相较于传统的软件架构,它有什么优缺点,它是怎样部署的。
具体详见戳这里
但简单举例:看军事新闻的同学应该都知道,一艘航空母舰作战能力虽然很强,但是弱点太明显,就是防御能力太差,单艘的航空母舰很少单独行动,通常航空母舰战斗群才是主要军事力量,你可以把单艘航母理解为的单体应用(防御差,机动性不好),把航母战斗群(调度复杂,维护费用高)理解为微服务。
(3)学习docker技术
-
docker作为微服务的一种十分典型的代表技术,我们要做的是:
- 学习了解docker的相关概念(容器、镜像等),了解docker、docker compose、Dockerfile、docker machine、Swarm、k8s是什么,是做什么用的,心中有概念即可;
- 搭建你自己的docker环境,系统环境不限(主流的有Ubuntu/CentOS/Debian/Windows/MacOS等),完成docker的基本入门,包括但不限于:容器的创建、删除、更新和查询,创建并维护自己的镜像仓库,实现拉取和上传镜像等。
- docker仓库链接:docker仓库链接
- 参考资料:Docker Documentation;Docker教程 | 菜鸟教程
a.docker相关概念
- Docker: Docker 是一个开源的应用容器引擎,基于 Go 语言 并遵从 Apache2.0 协议开源。Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。
- Docker Compose:微服务架构的应用系统一般包含若干个微服务,每个微服务一般都会部署多个实例,如果每个微服务都要手动启停,那么效率之低,维护量之大可想而知.使用 Docker Compose 可以轻松、高效的管理容器,它是一个用于定义和运行多容器 Docker 的应用程序工具。通过Compose,,使用命令可从YML文件配置中创建并启动服务。Docker Compose教程
- Dockerfile:Dockerfile 是一个用来构建镜像的文本文件,文本内容包含了一条条构建镜像所需的指令和说明。Dockerfile教程
- Docker machine:Docker Machine 是一种可以让您在虚拟主机上安装 Docker 的工具,并可以使用 docker-machine 命令来管理主机。Docker Machine 也可以集中管理所有的 docker 主机,比如快速的给 100 台服务器安装上 docker。Docker machine教程
- Swarm:Docker Swarm 是 Docker 的集群管理工具。它将 Docker 主机池转变为单个虚拟 Docker 主机。 Docker Swarm 提供了标准的 Docker API,所有任何已经与 Docker 守护程序通信的工具都可以使用 Swarm 轻松地扩展到多个主机。Swarm教程
- k8s:k8s了解
b.搭建docker环境
- 搭建docker环境--->拉取镜像软件(如mysql镜像安装包)--->运行镜像--->产生一个容器(正在运行的软件,运行的mysql)--->创建自己镜像—->push镜像仓库
搭建环境:Windows10专业版
- Win10配置教程:Win10配置教程
需要提醒的是:在安装前,一定要注意电脑环境是否符合安装Docker!!主要有两点:1.Win10专业版及以上 2.hyper-V要开启
- 使用docker --version命令,出现以下则为成功!
- 使用docker info命令,查看docker安装信息
有关镜像的操作
- 搜寻镜像文件hello-world
- 查看镜像文件hello-world
- 其中有关镜像查看命令的集合
- 运行镜像hello-world
- 删除镜像文件
基于容器的操作
- docker run --name container-name -d image-name命令 创建一个容器
- docker ps -a命令 查看所有容器(包括停止的)
- docker rm container-name命令 删除指定容器(注意,删除前要停止容器)
基于仓库的操作(基于镜像tomcat)
- 创建新镜像Tomcat
- 运行镜像Tomcat
- (指定端口)
- (生成随机端口)
- 创建自己的镜像ruin_tomcat
- 登录仓库
- 在dockerhub创建仓库,把ruin_ubuntu push到仓库()
(4)总结
(1)说明:蓝白是因为同事开启了cmd和PowerShell,因tomcat太大,push tomcat一直超时所以最后换成了ubuntu。后面在尝试tomcat也成功了(千万自己连热点!网络环境要稳定)
(2)常见指令:常见指令
(3)push到dockerhub:如何push到仓库
(4)读后感:刚开始看菜鸟教程了解微服务等相关概念。等到实战时,因为不想用linux,所以升级了电脑用了win10版本。但要注意的是,发现cmd环境下不能用linux指令,PowerShell可以,所以后来用了两者。做的过程可以上b站学习相关的知识,上手更简单哦。
(5)做的过程中有一点不知道的问题:为什么win10下生成的端口不能用,即localhost 8888 不能链接?尝试了网上很多方法(包括docker的IP+8888也不能)都不能解决我的问题,希望有大佬看到这篇文章后可以解决的我问题,万分感谢!