【Docker】Docker部署SpringBoot应用及Docker的安装与环境配置

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

环境

centOS7+Docker20.10.12+JDK17+SpringBoot2.6.4

安装

安装Docker仓库

sudo yum install -y yum-utils

这里使用阿里云的镜像

sudo yum-config-manager \
    --add-repo \
    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以便测试,如下:

@RestController
public class TestController{

    @RequestMapping("/test")
    public String test(){
        return "dockertest";
    }
}

在IDEA中安装Docker的插件【Docker】Docker部署SpringBoot应用及Docker的安装与环境配置_第1张图片

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

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

点击package,打包SpringBoot项目

【Docker】Docker部署SpringBoot应用及Docker的安装与环境配置_第2张图片

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

【Docker】Docker部署SpringBoot应用及Docker的安装与环境配置_第3张图片

 编译我们的镜像文件

注:-t 镜像的名字

       -f Dockerfile路径

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

docker build -t docker_test .

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

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

通过docker images查看镜像

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

运行我们编译好的SpringBoot镜像

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

        -P 随机生成端口号

        --name 容器名字

docker run -d -P --name docker_test_web docker_test

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

CONTAINER ID   IMAGE                 COMMAND                  CREATED              STATUS              PORTS                                                  NAMES
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

我们访问一下我们的请求

curl 127.0.0.1:49156/test
docker test

成功访问

你可能感兴趣的:(开发笔记,docker,spring,boot,java,容器,运维)