# springboot-docker **Repository Path**: hyuxi/Springboot-docker ## Basic Information - **Project Name**: springboot-docker - **Description**: 使用jenkins 构建springboot docker镜像的demo - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 6 - **Created**: 2019-05-26 - **Last Updated**: 2020-12-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README SpringBoot容器化实践和k8s下的部署实践,目前该镜像已经通过阿里云镜像仓库公开。 # 镜像拉取 ``` docker pull registry.cn-shanghai.aliyuncs.com/shalousun/springboot:1.3 ``` # docker中部署 ``` docker run -dp 8080:8080 -t registry.cn-shanghai.aliyuncs.com/shalousun/springboot:1.4 ``` # 进入docker容器 ``` docker exec -it [containerId] /bin/sh ``` # kubernates中部署 yaml在项目的k8s目录中,该yarml包含deployment、service、ingress创建 ``` //创建 kubectl apply -f deployment.yaml //删除 kubectl delete -f deployment.yaml //进入容器 kubectl exec -it [podName] /bin/sh ``` # 访问测试 ``` curl [node ip]:30111 返回hello docker,对于1.3后版本会返回hello docker,from v xx ``` ingress测试,yarm中默认设置的域名是test.com,待在k8s中部署好后,查看pod所在节点的ip,将域名和host加入到 宿主机hosts中。 ``` curl test.com/ip 返回pod ip,如果启动了多个pod,访问会返回不同的ip,此时说明ingress是生效的。 ``` 查看镜像内的时间 ``` curl test.com/time ``` 测试容器内https请求 ``` curl test.com/testHttps ``` 测试容器内http请求 ``` curl test.com/testHttp ``` 测试请求k8s容器中的svc ``` curl test.com/test.com ``` # Graceful Test 访问一个长时间处理任务 ``` curl -i localhost:8080/long-process ``` 杀掉进程服务进程 ``` kill pid ``` 执行杀进程命令后,tomcat容器等待long-process处理完毕才关闭进程 # 版本升级 当前该demo在阿里云镜像中心有多个版本,可以利用改demo做升级演示测试,升级测试时修改deployment.yaml中的版本号, 最新的版本是1.4, ``` kubectl apply -f deployment.yaml ``` 升级过程演示是可以利用kubectl rollout status命令来查看升级状态 ``` kubectl rollout status deployment/springboot-docker-deployment ``` # 服务回滚 回滚到之前的版本 ``` kubectl rollout undo deployment/springboot-docker-deployment ``` 回顾过程状态查看 ``` kubectl rollout status deployment/springboot-docker-deployment ```