Skip to content

将 Java 应用程序容器化

原文:https://docs.docker.com/language/java/containerize/

先决条件

  • 您已安装了Docker Desktop的最新版本。 Docker 定期添加新功能,本指南的某些部分可能只适用于 Docker Desktop 的最新版本。
  • 您拥有一个Git 客户端。本节中的示例使用基于命令行的 Git 客户端,但您可以使用任何客户端。

概览

本节将指导您容器化并运行一个 Java 应用程序。

获取示例应用程序

将您将要使用的示例应用程序克隆到本地开发机器上。在终端运行以下命令以克隆存储库。

console
git clone https://github.com/spring-projects/spring-petclinic.git

该示例应用程序是一个使用 Maven 构建的 Spring Boot 应用程序。有关更多详细信息,请查看存储库中的readme.md文件。

初始化 Docker 资源

现在您已拥有一个应用程序,可以使用docker init命令创建容器化应用程序所需的 Docker 资源。在spring-petclinic目录内,终端运行docker init命令。 docker init提供一些默认配置,但您需要回答关于您的应用程序的几个问题。按照以下示例中的答案进行操作,以便跟随本指南。

示例应用程序已包含 Docker 资源。您将被提示是否覆盖现有的 Docker 资源。为了继续本指南,请选择y来覆盖它们。

console
docker init
欢迎使用Docker Init CLI!

这个工具将引导您创建以下文件,为您的项目提供合理的默认设置:
  - .dockerignore
  - Dockerfile
  - compose.yaml
  - README.Docker.md

让我们开始吧!

警告:以下Docker文件已存在于此目录中:
  - docker-compose.yml
? 您想要覆盖它们吗?是
? 您的项目使用哪种应用平台?Java
? 您的应用相对目录(带前导点)是什么?./src
? 您想要使用哪个版本的Java?17
? 您的服务器监听哪个端口?8080

在上述示例中,请注意警告docker-compose.yaml已经存在,所以docker init覆盖该文件而不是创建新的compose.yaml文件。这避免了目录中有多个 Compose 文件。两个名称都受支持,但 Compose 更倾向于使用规范的compose.yaml

现在,您的spring-petclinic目录中应该有以下三个新文件。

您可以在代码或文本编辑器中打开这些文件,然后阅读注释以了解更多指令,或访问上述列表中的链接。

运行应用程序

spring-petclinic目录内,终端运行以下命令。

console
docker compose up --build

第一次构建并运行应用程序时,Docker 会下载依赖并构建应用程序。根据您的网络连接情况,这可能需要几分钟时间。

在浏览器中打开http://localhost:8080查看应用程序。您应该会看到一个简单的宠物诊所应用程序。

在终端,按ctrl+c停止应用程序。

在后台运行应用程序

您可以通过添加`-

d选项,让应用程序与终端分离运行。在docker-php-sample`目录内,终端运行以下命令。

console
docker compose up --build -d

在浏览器中打开http://localhost:8080查看应用程序。您应该会看到一个简单的宠物诊所应用程序。

在终端,运行以下命令以停止应用程序。

console
docker compose down

有关 Compose 命令的更多信息,请参见Compose CLI 参考

总结

在本节中,您学习了如何使用 Docker 容器化并运行 Java 应用程序。

相关信息:

下一步

在下一节中,您将学习如何使用 Docker 容器开发您的应用程序。