将 Java 应用程序容器化
先决条件
- 您已安装最新版本的 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
Welcome to the Docker Init CLI!
This utility will walk you through creating the following files with sensible defaults for your project:
- .dockerignore
- Dockerfile
- compose.yaml
- README.Docker.md
Let's get started!
WARNING: The following Docker files already exist in this directory:
- docker-compose.yml
? Do you want to overwrite them? Yes
? What application platform does your project use? Java
? What's the relative directory (with a leading .) for your app? ./src
? What version of Java do you want to use? 17
? What port does your server listen on? 8080
在前面的示例中,请注意WARNING
.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 容器开发应用程序。