这门课解决什么问题
很多后端开发者背过几条 docker pull 或 run 指令,能拉取现成镜像跑起容器,但真到公司项目里要自己把 Java 应用打包成镜像、配置运行环境或做服务编排时,往往无从下手。这门课正是补上“从会敲基础命令到能在真实业务里落地”这一段空白。它聚焦 Java 工程师在容器化部署时最常碰到的具体场景:怎么用极简的 Alpine 系统定制包含 Oracle JDK 和 Tomcat 的基础镜像,怎么把 Spring Boot 工程打包后放进容器独立跑或塞进 Tomcat 里跑,怎么用 Maven 配合 Tomcat 的 manager 接口做远程 war 部署,以及怎么用 Compose 编排单机多容器、用 Nginx 做负载均衡和灰度发布。课程不空谈原理,而是把这些日常部署环节拆解成可直接套用的固定套路。
适合什么基础与建议看法
资料适合已经摸过 Docker 基础命令、能跑通 hello-world 容器,但对 Dockerfile 编写和多容器协同没什么经验的 Java 开发者。如果你连基本的概念和指令都没接触过,建议先补常识再看。如果你正合适,建议先看基于 Alpine 制作 Tomcat 镜像并实现动态参数配置那几讲,这是后续所有部署套路的基石;接着直接切入 Spring Boot 运行套路,对比“容器内独立运行”和“打包进 Tomcat 运行”两种方式的差异和适用场景;最后再看 Compose 编排与 Nginx 灰度更新,这部分稍微吃基础,但贴近实际运维交付。看课时务必开两台虚拟机或云主机跟着敲,不要只看不练。
学完能独立做什么与资料配合
跟着这套资料走完,你能独立完成几件实事:给团队输出一套精简的 JDK8 与 Tomcat 基础镜像;把任意一个 Spring Boot 工程用 Maven 打包后,写成 Dockerfile 并跑进容器;配置 Tomcat 的 manager 实现远程一键部署 war 包;编写 docker-compose.yml 把 Nginx 和多个 Spring Boot 容器串起来做单机负载;利用容器替换实现简单的灰度更新。配合练习时,建议把资料里的命令片段和配置文件当作模板,每看完一讲就在本地环境复现,再尝试改掉其中的端口、网站根目录或打包方式,验证自己是否真正吃透。不要死记指令,重点是掌握参数替换与编排的套路,这样换到公司实际项目里也能直接迁移复用。
本课程适合有简单docker基础的同学。当你学会了基本docker命令后不会应用,那么本课程就是来教大家套路的。本系列分为多篇,本篇是java角度,共12课时
课程目录
* 第1讲:基于alpine 制作jdk8镜像(Oracle官方JDK,非OpenJDK)
* 第2讲:基于alpine 制作tomcat镜像(1):基本运行练习
* 第3讲:基于alpine制作tomcat镜像(2):逼格实现动态参数配置网站根目录
* 第4讲:spring boot运行套路(1):maven打包、在docker中运行
* 第5讲:spring boot运行套路(2):打包并在tomcat容器中运行
* 第6讲:maven利用tomcat的manager远程部署war
* 第7讲:利用compose编排容器、nginx负载spring boot服务(单机)、远程部署
* 第8讲:docker+nginx实现灰度更新(1):简单ip分发
* 第9讲:docker+nginx补充知识点:添加lua模块支持、nginx调用lua响应
* 第10讲:docker+nginx补充知识点: 集成lua-mysql模块、nginx响应时调用数据库
* 第11讲:docker+nginx补充知识点: 集成lua-redis模块、nginx响应时输出缓存内容
* 第12讲:灰度发布入门(2):利用lua_redis基于IP区分进行分流






