简介
假设你是一名 Java 开发人员,负责生成和部署将在本地服务器上运行的应用。 编排这些服务器、依赖项和规模等都是一个极具挑战性的过程。
与模拟硬件的虚拟机不同的是,容器直接在主机操作系统、内核和硬件上运行,本质上只是另一个进程。 这意味着容器所需的系统资源更少,从而使得内存占用更小,开销明显减少,应用启动速度更快,并成为按需缩放的绝佳用例。
使用容器,可以确保应用和依赖项始终在容器映像中隔离,并准备好进行大规模部署。
在本模块中,你将首先容器化一个 Java 应用。 为方便起见,我们选择了一个现有的 Java 应用供你使用。 航空公司的航班预订系统来自开放的 Internet 并在 MIT 许可下共享,是一个完全响应式的、基于 Web 的航班预订系统示例,它以一个示例航空公司为基础,通过使用 Java Servlets 和 Java Server Pages (JSP) 构建的模型视图控制器 (MVC) 体系结构生成。
然后,你将构造 Dockerfile 并编写生成容器映像所需的 Docker 指令。 接下来在本地运行容器映像并测试应用。 然后将容器映像推送到 Azure 容器注册表,并部署到 Azure Kubernetes 服务。
在学习完本模块后,你将能够容器化 Java 应用,将容器映像推送到 Azure 容器注册表,然后部署到 Azure Kubernetes 服务。
你将使用你自己的 Azure 订阅(具有创建、更新和移除资源的访问权限)来部署本模块中的资源。 如果没有 Azure 订阅,请在开始之前创建一个免费帐户。
重要
为避免在 Azure 订阅中产生不必要的费用,请记得在完成此模块后取消预配 Azure 资源。
学习目标
学完本模块后,你将能够:
- 容器化 Java 应用。
- 为 Java 应用生成容器映像。
- 在本地运行容器映像。
- 向 Azure 容器注册表推送容器映像。
- 将容器映像部署到 Azure Kubernetes 服务。
先决条件
作为一名 Java 开发人员,你已经熟悉了如何生成应用。 完成本模块中的练习后,你将使用个人 Azure 帐户。 请确保你拥有以下资源:
- 具有创建、更新和移除资源访问权限的 Azure 订阅
- 在本地安装有 Docker CLI、Git CLI 和 Azure CLI(2.12 或更高版本)