赞
踩
本文讲解了通过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项目,编写一个简易的Controller以便测试,如下:
- @RestController
- public class TestController{
-
- @RequestMapping("/test")
- public String test(){
- return "dockertest";
- }
- }
在IDEA中安装Docker的插件
- 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项目
将打包好的jar包和Dockerfile上传到liunx服务器
编译我们的镜像文件
注:-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
成功访问
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。