将Springboot应用程序封装在Docker容器中

  第一步是创建一个Springboot应用程序(如果你还没有这样做的话), 这里有一个现成的github克隆代码:https//github.com/caio-ps/docker-spring-sample

 2.到下载的这个项目目录。运行gradle bootJar将这个springboot应用程序打包到.jar文件中,确认build下libs有jar包生成,为进一步确认运行良好,运行以下命令:

$java -jar build/libs/gs-spring-boot-0.1.0.jar

 3.很不错。下一步是将dockerfile添加到项目中。为此,您需要在项目的根文件夹中创建一个名为“Dockerfile”的文件。打开Dockerfile并键入以下内容:

FROM openjdk:latest
EXPOSE 8080
RUN mkdir /opt/application
COPY ./build/libs/gs-spring-boot-0.1.0.jar /opt/application
CMD ["java","-jar","/opt/application/gs-spring-boot-0.1.0.jar"]

 

注意:请记住将“s-spring-boot-0.1.0.j”替换为你的.jar文件的名称

Dockerfile是告诉docker如何构建映像的文件。我们来看看上面输入的每个命令的作用:

  • FROM openjdk:latest  :这个命令告诉docker你的镜像将基于最新版本的“openjdk”镜像构建。此镜像包含一个安装了JVM(openjdk)的Linux SO。
  • EXPOSE 8080  :这里我们告诉docker在启动基于镜像的容器时公开端口为8080。
  • RUN mkdir / opt / application  :这个命令只创建一个文件夹,将jar文件放在其中。
  • COPY ./build/libs/gs-spring-boot-0.1.0.jar / opt / application  :此命令将包含应用程序的.jar文件复制到创建的目录中。
  • CMD [“java”,“ - jar”,“/ opt / application / gs-spring-boot-0.1.0.jar”]  :表示每次启动容器时都应运行此命令,启动应用程序。

4.现在是建立Docker 镜像的时候了!请转到项目的根文件夹并运行以下命令,注意最后有一个实心点表示当前目录:

$ docker build -t docker-spring-sample .

输出应该是这样的:

Successfully built 88667e152cb5
Successfully tagged docker-spring-sample:latest

可以在终端中键入以下命令,检查图像是否已成功创建:

$ docker image

输出看到:
docker-spring-sample latest 88667e152cb5 46 seconds ago 640MB

5.最后,是时候运行你的容器了。为此,只需在终端中执行以下命令:

$ docker run -p 3000:8080 docker-spring-sample

等待执行。如果一切正常,请转到您的Web浏览器并访问URL:

http://localhost:3000

如果短语“Greetings from Spring Boot!” 出现在你的屏幕上,就是这样!你刚刚在docker容器中执行了应用程序!

注意:您可能注意到如果关闭终端,您的应用程序将停止工作。之所以发生这种情况,是因为容器在启动时已经连接到终端窗口。要避免此问题,您需要在backgound中启动容器,将“-d”参数添加到docker run命令:

$ docker run -d -p 3000:8080 your_docker_user / your_application

Docker教程