原文: https://javatutorial.net/how-to-dockerize-a-spring-application
在本教程中,您将学习什么是 Docker 以及如何使用它来对 Spring 应用程序进行 Dockerize 。
Docker 文件
Dockerfile 只是.txt
文件。 Dockerfile 允许您运行帮助您构建映像的命令。 如果要指定映像的图层,这些命令将很有用。 要注意的一件事是,我们也可以通过传递这些命令来运行这些命令,而不是将它们包含在文件中。
使用 dockerfiles 时,您需要了解几个关键字:
FROM
:此关键字告诉 Docker 使用给定的基本映像。 但是,如果映像不是本地映像,则 Docker 将在 DockerHub 上执行在线搜索。MAINTAINER
:标识映像的作者。RUN
:在目标系统内执行 Shell 命令行。COPY
:将文件从本地文件系统复制到映像中。WORKDIR
:设置当前工作目录。
让我们看一个简单的例子:
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
文件,请运行:
mvn clean install
如果您正在使用 Maven 。
保存 Docker 文件后,就该构建我们的 Docker 映像了。
转到您的 Spring 应用程序根文件夹,然后输入以下内容:
docker build -t springboot-app:latest
但是,如果要从另一个文件夹执行build
命令,则build
命令的结构应如下所示:
docker built -t springboot-app:latest -f path-to-the-dockerfile
做完了! 我们构建了 Docker 映像。 现在,要启动容器,请键入以下内容:
docker run -p 8080:8080 app
上面的命令细分:
- 容器是一个隔离的环境,这意味着我们需要映射设置为 8080(第一个)的主机的端口以及容器本身内部的端口(8080 第二个)。
-p 8080
:8080
要访问它,请键入以下内容:
docker exec -ti app bash
要访问日志:
docker logs app