将 Java 应用程序容器化
原文:https://docs.docker.com/language/java/containerize/
先决条件
- 您已安装了Docker Desktop的最新版本。 Docker 定期添加新功能,本指南的某些部分可能只适用于 Docker Desktop 的最新版本。
- 您拥有一个Git 客户端。本节中的示例使用基于命令行的 Git 客户端,但您可以使用任何客户端。
概览
本节将指导您容器化并运行一个 Java 应用程序。
获取示例应用程序
将您将要使用的示例应用程序克隆到本地开发机器上。在终端运行以下命令以克隆存储库。
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
来覆盖它们。
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
目录内,终端运行以下命令。
docker compose up --build
第一次构建并运行应用程序时,Docker 会下载依赖并构建应用程序。根据您的网络连接情况,这可能需要几分钟时间。
在浏览器中打开http://localhost:8080查看应用程序。您应该会看到一个简单的宠物诊所应用程序。
在终端,按ctrl
+c
停止应用程序。
在后台运行应用程序
您可以通过添加`-
d选项,让应用程序与终端分离运行。在
docker-php-sample`目录内,终端运行以下命令。
docker compose up --build -d
在浏览器中打开http://localhost:8080查看应用程序。您应该会看到一个简单的宠物诊所应用程序。
在终端,运行以下命令以停止应用程序。
docker compose down
有关 Compose 命令的更多信息,请参见Compose CLI 参考。
总结
在本节中,您学习了如何使用 Docker 容器化并运行 Java 应用程序。
相关信息:
下一步
在下一节中,您将学习如何使用 Docker 容器开发您的应用程序。