# 如何 docker 化 Spring 应用程序

> 原文： [https://javatutorial.net/how-to-dockerize-a-spring-application](https://javatutorial.net/how-to-dockerize-a-spring-application)

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

![spring-featured-image](img/d2f73752d8ae931b119dec1eac866973.jpg)

### Docker 文件

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

使用 dockerfiles 时，您需要了解几个关键字：

1.  `FROM`：此关键字告诉 Docker 使用给定的基本映像。 但是，如果映像不是本地映像，则 Docker 将在 [DockerHub 上执行在线搜索](https://hub.docker.com/search/?q=&type=image)。
2.  `MAINTAINER`：标识映像的作者。
3.  `RUN`：在目标系统内执行 Shell 命令行。
4.  `COPY`：将文件从本地文件系统复制到映像中。
5.  `WORKDIR`：设置当前工作目录。

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

```java
FROM alpine:3.2

MAINTAINER javatutorial.net

ADD target/demo-0.0.1-SNAPSHOT.jar app.jar

RUN sh -c 'touch /app.jar'
```

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

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

```java
mvn clean install
```

如果您正在使用 [Maven](https://javatutorial.net/how-to-install-maven-on-windows-linux-and-mac) 。

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

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

```java
docker build -t springboot-app:latest
```

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

```java
docker built -t springboot-app:latest -f path-to-the-dockerfile
```

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

```java
docker run -p 8080:8080 app

```

上面的命令细分：

*   容器是一个隔离的环境，这意味着我们需要映射设置为 8080（第一个）的**主机**的端口以及容器本身内部的端口（8080 第二个）。
*   `-p 8080`：8080

要访问它，请键入以下内容：

```java
docker exec -ti app bash
```

要访问日志：

```java
docker logs app
```