原文: https://javatutorial.net/how-to-dockerize-a-spring-application

在本教程中,您将学习什么是 Docker 以及如何使用它来对 Spring 应用程序进行 Dockerize 。

如何 docker 化 Spring 应用程序 - 图1

Docker 文件

Dockerfile 只是.txt文件。 Dockerfile 允许您运行帮助您构建映像的命令。 如果要指定映像的图层,这些命令将很有用。 要注意的一件事是,我们也可以通过传递这些命令来运行这些命令,而不是将它们包含在文件中。

使用 dockerfiles 时,您需要了解几个关键字:

  1. FROM:此关键字告诉 Docker 使用给定的基本映像。 但是,如果映像不是本地映像,则 Docker 将在 DockerHub 上执行在线搜索
  2. MAINTAINER:标识映像的作者。
  3. RUN:在目标系统内执行 Shell 命令行。
  4. COPY:将文件从本地文件系统复制到映像中。
  5. WORKDIR:设置当前工作目录。

让我们看一个简单的例子:

  1. FROM alpine:3.2
  2. MAINTAINER javatutorial.net
  3. ADD target/demo-0.0.1-SNAPSHOT.jar app.jar
  4. RUN sh -c 'touch /app.jar'

您应将 Docker 文件保存在根文件夹中。

现在,我们需要一个.jar文件,该文件将用于创建 Docker 映像。 要创建.jar文件,请运行:

  1. mvn clean install

如果您正在使用 Maven

保存 Docker 文件后,就该构建我们的 Docker 映像了。

转到您的 Spring 应用程序根文件夹,然后输入以下内容:

  1. docker build -t springboot-app:latest

但是,如果要从另一个文件夹执行build命令,则build命令的结构应如下所示:

  1. docker built -t springboot-app:latest -f path-to-the-dockerfile

做完了! 我们构建了 Docker 映像。 现在,要启动容器,请键入以下内容:

  1. docker run -p 8080:8080 app

上面的命令细分:

  • 容器是一个隔离的环境,这意味着我们需要映射设置为 8080(第一个)的主机的端口以及容器本身内部的端口(8080 第二个)。
  • -p 8080:8080

要访问它,请键入以下内容:

  1. docker exec -ti app bash

要访问日志:

  1. docker logs app