今日练习

简介: 本作业通过Docker部署微服务环境,涵盖Nacos、MySQL、耗材中心、医生站及网关服务的安装与配置。实践从数据库搭建到多服务协同,掌握Dockerfile与docker-compose编排,实现完整微服务架构的构建、部署与验证,提升容器化应用实战能力。(238字)

作业目标
掌握Docker对于常见微服务中间件的安装、部署、运行
掌握Docker对于微服务的安装,尤其是陌生的一个工程从数据库->工程->访问
工程介绍
工程结构图
技术架构图
物理部署图
环境准备
通过docker images、docker ps -a指令确保本地无任何镜像、运行中的容器,如有借助
docker rmi -f 镜像,删除镜像
docker rm -f 容器,删除容器
mysql涉及的表结构语句,数据库:doctor_station,建表语句:
doctor_station.sql
(2 KB)
今日所有镜像文件上传路径:/tmp/docker,需在tmp下手动创建docker文件夹
题目一
目标
完成Docker环境下Nacos服务部署、启动、访问验证
提示
去dockerhub官网找到Nacos,查看拉取、启动指令,启动完成后浏览器验证
参考答案
dockerhub查看服务拉取指令:docker pull nacos/nacos-server
/tmp/docker路径下,执行docker pull指令
查看官网启动指令,并调整如下:
官网 Quick Start
调整指令如下:
修改登录用户名:nacos,密码默认是nacos不用修改
修改宿主机暴露端口:8848
修改镜像名称:当前使用latest,不用声明
访问验证
用户名/密码=nacos/nacos,http://192.168.206.129:8848/nacos/#/login
题目二
目标
完成Docker环境下MySQL服务部署、启动、访问验证,并完成表结构、数据导入
提示
参照dockerhub官网完成mysql安装
本地Navicat等可视化工具连接后,完成表结构、数据的导入
参考答案
dockerhub查看服务拉取指令:docker pull mysql
/tmp/docker路径下,执行docker pull指令
官网查看启动指令,并调整如下:
官网 Quick Start
修改如下,并执行启动
修改用户名
修改密码
修改镜像名称
启动后,客户端连接访问
注意:此时安装的latest版本比较高,部分可视化工具可能链接不是
导入环境准备中的表结构语句,如下:
题目三(*)
目标
完成Docker环境下耗材中心服务部署、启动、访问验证
提示
mysql服务、nacos需更改原来的localhost为对应ip
需创建对应的Dockerfile、docker-compose.yml,其中docker-compose.yml不要重复定义nacos、mysql,避免重复启动
nacos配置文件需同步过来:inventoryservice-dev.yaml
为保证访问,前期可以在docker-compose.yml中暴露此服务端口,以验证是否部署成功
日志查看路径:/var/lib/docker/containers/容器ID-json.log,如启动失败可以在这里查看错误原因,如我最初没有同步nacos配置文件
参考答案
修改application.yml、bootstrap.yml,这里更改了IP【注意你自己的需调整成自己的】
pom.xml增加构建信息
执行maven-clean-package,编译打包,在target中找到上述finalName名称的jar
新建:Dockerfile,并与inventory.jar放在文件夹:inventory中
新建:docker-compose.yml,放在文件夹:doctor-station中
上述整体目录结构目前如下:
doctor-station
inventory
Dockerfile
inventory.jar
docker-compose.yml
上传整个文件夹,到:/tmp/docker/
执行启动命令: docker-compose up -d
postman请求验证:

题目四
目标
完成Docker环境下医生站部署、启动、访问验证
提示
同题目二提示
参考答案
修改doctor-service配置文件
application.yml
bootstrap.yml
pom文件增加构建信息,并打包
创建Dockerfile
修改docker-compose.yml,追加doctor相关信息
上述整体目录结构目前如下:
doctor-station
inventory
Dockerfile
inventory.jar
doctor
Dockerfile
doctor.jar
docker-compose.yml
上传doctor到doctor-station文件夹下,重新上传:docker-compose.yml
停止原inventory服务:docker rm -f,并删除已有的镜像
执行语句重启整个微服务:docker-compose up -d。注意一定是重新构建两个才可以,否则删除镜像、容器后重新启动

postman测试验证,启动构建完成后稍等一下再访问,可以通过查看日志是否启动成功再决定是否访问

题目五
目标
完成Docker环境下网关服务部署、启动、访问验证
提示
参照作业二完成部署,但是此时暴露端口只暴露网关,其余都不暴露
参考答案
修改配置文件:application.yml
pom文件增加构建信息,并打包
创建Dockerfile
修改:docker-compose.yml文件,注意端口
上传gateway,重新上传:docker-compose.yml文件,整体结构如下
删除容器、镜像,并重启

重启:docker-compose up -d
postman验证
不设置权限,403禁止访问
设置后访问正常

相关文章
|
小程序 JavaScript 数据库
微信小程序系列——上传下载图片以及图片的展示
微信小程序系列——上传下载图片以及图片的展示
|
7月前
|
运维 监控 安全
流量洪水来了,iptables 已经溺水——聊聊我用 XDP 做高性能 DDoS 缓解的那些实践和体会
流量洪水来了,iptables 已经溺水——聊聊我用 XDP 做高性能 DDoS 缓解的那些实践和体会
375 5
|
搜索推荐 数据可视化 开发者
低代码开发的优势和劣势
【8月更文挑战第4天】低代码开发的优势和劣势
501 5
|
传感器 人工智能 边缘计算
当无人机遇上5G:远程控制再也不卡了
当无人机遇上5G:远程控制再也不卡了
530 8
|
数据采集 监控 Java
Python 函数式编程的执行效率:实际应用中的权衡
Python 函数式编程的执行效率:实际应用中的权衡
488 102
|
机器学习/深度学习 存储 人工智能
算力资源选择指南:如何匹配你的开发需求?
本文作者结合七年分布式计算经验,深入剖析算力卡与服务器的本质区别及其选型策略。从硬件架构看,算力卡专注高性能计算,如A100/H100在矩阵运算效率上提升显著,但文件读写较弱;服务器则是全能型系统,适合多任务场景。在应用场景中,算力卡适用于机器学习训练等浮点密集任务,而服务器在部署和服务支持上更具优势。成本模型显示,算力卡三年TCO更低但运维成本更高,需根据实际需求权衡。最后,作者提供选型决策树,建议根据任务类型、生态需求和负载特征选择合适方案。
738 8
|
JSON JavaScript 测试技术
用Postman玩转电商API:一键测试+自动化请求教程
Postman 是电商 API 测试的高效工具,涵盖基础配置、自动化测试、环境管理与请求自动化,助你快速提升开发效率。
|
人工智能 测试技术 开发者
北大李戈团队提出大模型单测生成新方法,显著提升代码测试覆盖率
【9月更文挑战第27天】北京大学李戈团队在人工智能领域取得重要突破,提出HITS新方法,通过将待测方法分解为多个切片并利用大型语言模型逐个生成测试用例,显著提升代码测试覆盖率,尤其在处理复杂方法时效果显著,为软件开发和测试领域带来新希望。尽管存在一定局限性,HITS仍展示了巨大潜力,未来有望克服限制,推动软件测试领域的创新发展。论文详情见【https://www.arxiv.org/pdf/2408.11324】。
899 6
|
JavaScript Java 开发工具
零基础用 DevEco Studio 打造你的首个 HarmonyOS 应用,开启鸿蒙生态的创新之旅,实现你的技术探索梦想
在鸿蒙生态蓬勃发展的当下,越来越多的开发者怀揣着热情与创意,渴望投身于HarmonyOS应用开发的浪潮之中。
1159 13
零基础用 DevEco Studio 打造你的首个 HarmonyOS 应用,开启鸿蒙生态的创新之旅,实现你的技术探索梦想
|
网络协议 5G 网络虚拟化
WiFI网速慢的原因都在这里了,3招教你WiFi慢的烦恼!
WiFI网速慢的原因都在这里了,3招教你WiFi慢的烦恼!
3006 2