当前位置:   article > 正文

【Docker】Docker部署SpringBoot应用及Docker的安装与环境配置_openjdk:17-jdk-alpine

openjdk:17-jdk-alpine

本文讲解了通过Docker部署简单的SpringBoot Web应用及Docker的安装及环境配置。

环境

centOS7+Docker20.10.12+JDK17+SpringBoot2.6.4

安装

安装Docker仓库

sudo yum install -y yum-utils

这里使用阿里云的镜像

  1. sudo yum-config-manager \
  2. --add-repo \
  3. http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

安装Docker Engine

 sudo yum install docker-ce docker-ce-cli containerd.io

启动Docker

 sudo systemctl start docker

运行Docker的Hellow,world镜像

 sudo docker run hello-world

如成功运行,则安装成功

部署SpringBoot应用

首先创建一个简单的SpringBoot项目,编写一个简易的Controller以便测试,如下:

  1. @RestController
  2. public class TestController{
  3. @RequestMapping("/test")
  4. public String test(){
  5. return "dockertest";
  6. }
  7. }

在IDEA中安装Docker的插件

 创建Dockerfile文件,编写自定义镜像的脚本

  1. FROM openjdk:17-jdk-alpine #基于jdk17的镜像环境进行制作
  2. COPY *.jar /app.jar #把jar包拷贝到容器
  3. CMD echo "======dockertest======"
  4. EXPOSE 8080 #暴露容器的8080端口
  5. ENTRYPOINT ["java","-jar","/app.jar"] #执行java -jar /app.jar运行网站

点击package,打包SpringBoot项目

将打包好的jar包和Dockerfile上传到liunx服务器

 编译我们的镜像文件

注:-t 镜像的名字

       -f Dockerfile路径

       .  命令执行的上下文,告诉Docker在当前路径找Dockerfile

docker build -t docker_test .

 输出以下结果,从中可以看到docker按照我们编写的Dockerfile一步一步进行编译

  1. Sending build context to Docker daemon 17.56MB
  2. Step 1/5 : FROM openjdk:17-jdk-alpine
  3. 17-jdk-alpine: Pulling from library/openjdk
  4. 17-jdk-alpine: Pulling from library/openjdk
  5. 5843afab384: Pull complete
  6. 53c946612e4: Pull complete
  7. d8d71578380: Pull complete
  8. Digest: sha256:4b6abae565492dbe9e7a894137c966a7485154238902f2f2bd9784383d81
  9. Status: Downloaded newer image for openjdk:17-jdk-alpine
  10. ---> 264c9bdce61
  11. Step 2/5 : COPY *.jar /app.jar
  12. ---> e9f7e89ae3d
  13. Step 3/5 : CMD echo "======docker test======"
  14. ---> Running in 1b0261e9584
  15. Removing intermediate container 1bf0261e9584
  16. ---> f0f1dbb95cb
  17. Step 4/5 : EXPOSE 8080
  18. ---> Running in da9e90494a7
  19. Removing intermediate container da9e91094a7
  20. ---> 37a94fded23
  21. Step 5/5 : ENTRYPOINT ["java","-jar","/app.jar"]
  22. ---> Running in 1346eee2438
  23. Removing intermediate container 1346eee2438
  24. ---> ccecc9c725ee
  25. Successfully built ccecc9c725ee
  26. Successfully tagged docker_test:latest

通过docker images查看镜像

  1. REPOSITORY TAG IMAGE ID CREATED SIZE
  2. docker_test latest ccecc9c725ee 11 minutes ago 343MB

运行我们编译好的SpringBoot镜像

注: -d 以后台守护进程的方式运行

        -P 随机生成端口号

        --name 容器名字

docker run -d -P --name docker_test_web docker_test

通过docker ps查看已运行的进程

  1. CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
  2. aac5fbc16388 docker_test "java -jar /app.jar …" About a minute ago Up About a minute 0.0.0.0:49156->8080/tcp, :::49156->8080/tcp docker_test_web

可以看到我们的容器被Docker自动分配了一个端口号:49156

我们访问一下我们的请求

  1. curl 127.0.0.1:49156/test
  2. docker test

成功访问

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/繁依Fanyi0/article/detail/195566
推荐阅读
相关标签
  

闽ICP备14008679号