【docker系列】docker之部署springboot项目
目录
- 一、项目依赖
- 二、引入docker依赖
- 三、项目打包
- 四、编写Dockerfile文件
- 五、构建镜像
- 六、启动容器
- 七、测试
一、项目依赖
本篇主题主要实战如何使用Docker部署springboot项目,那么首先保证服务器上已经安装完docker容器,如果尚未安装请移步《详解阿里云服务器安装docker》文章完成docker安装操作;以下直接搭建springboot项目;以下也是springboot项目中最基本的依赖项;因为我们想测试接口访问,故搭建的是一个web项目,那么我们提供一个controller层
- controller类
@RestController
public class HelloDockerController {@GetMapping("/hello")public String hello() {return "Hello Docker.";}
}
- pom.xml
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.6.3</version><relativePath/> <!-- lookup parent from repository --></parent><groupId>com.itwx</groupId><artifactId>docker-demo</artifactId><version>0.0.1-SNAPSHOT</version><name>docker-demo</name><description>Demo project for Spring Boot</description><properties><java.version>1.8</java.version></properties><dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><optional>true</optional></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope></dependency></dependencies><build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId><configuration><excludes><exclude><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId></exclude></excludes></configuration></plugin></plugins></build></project>
二、引入docker依赖
docker提供了maven构建的插件docker-maven-plugin
,故pom.xml中<plugins>
标签中引入docker的相关插件
<plugin><groupId>com.spotify</groupId><artifactId>docker-maven-plugin</artifactId><version>1.2.0</version><configuration><!-- 这里是最终生成的docker镜像名称 --><imageName>itwx/${project.artifactId}</imageName><!-- 基础镜像,运行一个springboot应用只需要基础的java环境就行 --><baseImage>java:8</baseImage><!-- docker启动的时候执行的命令 --><entryPoint>["java", "-jar", "/${project.build.finalName}.jar"]</entryPoint><resources><resource><targetPath>/</targetPath><directory>${project.build.directory}</directory><include>${project.build.finalName}.jar</include></resource></resources></configuration>
</plugin>
三、项目打包
项目编译,打成Jar包
mvn clean
# -Dmaven.test.skip=true 是跳过测试代码
mvn package -Dmaven.test.skip=true
四、编写Dockerfile文件
springboot项目我们采用使用dockerfile
文件的方式构建镜像,故需要创建dockerfile文件,内容如下:
FROM openjdk:8 # FROM: 基础镜像,基于jdk8镜像开始COPY *.jar /app.jar # COPY: 将应用的配置文件也拷贝到镜像中。CMD ["--server.port=8097"]EXPOSE 8080 # EXPOSE:声明端口ENTRYPOINT ["java","-jar","/app.jar"]
# ENTRYPOINT:docker启动时,运行的命令,这里容器启动时直接运行jar服务。
注意:
1、文件名一定别写错了,Dockerfile
,非驼峰格式;
2、将项目jar包和Dockerfile文件上传到服务器;
3、Jar包和Dockerfile文件要在同一目录下;
五、构建镜像
命令:docker build -t docker-demo .
docker bulid
是打包命令-t
镜像加一个Tagdocker-demo
自定义的镜像名字.
小数点表示当前目录,即Dockerfile所在目录
等待镜像构建完成
[root@VM-4-8-centos project]# docker build -t docker-demo .
Sending build context to Docker daemon 17.77MB
Step 1/5 : FROM openjdk:8
8: Pulling from library/openjdk
0c6b8ff8c37e: Pull complete
412caad352a3: Pull complete
e6d3e61f7a50: Pull complete
461bb1d8c517: Pull complete
e442ee9d8dd9: Pull complete
36b5bcea956c: Pull complete
8ed70148ebcf: Pull complete
Digest: sha256:208812d8c45e0f5cb51c35b143094bd28322bad83ec8e463a1cbe3c5a6308b1f
Status: Downloaded newer image for openjdk:8---> 47482c603b2a
Step 2/5 : COPY *.jar /app.jar---> 843484f82093
Step 3/5 : CMD ["--server.port=8083"]---> Running in 62d4bd1ddf75
Removing intermediate container 62d4bd1ddf75---> 9ef3ddc144fa
Step 4/5 : EXPOSE 8080---> Running in e0e627838cc3
Removing intermediate container e0e627838cc3---> ac55c9edc15d
Step 5/5 : ENTRYPOINT ["java","-jar","/app.jar"]---> Running in 673eb2c738e2
Removing intermediate container 673eb2c738e2---> 4e0c81d17c49
Successfully built 034aca093b5e
Successfully tagged docker-demo:latest查看生成的镜像列表
[root@VM-4-8-centos project]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
docker-demo latest 034aca093b5e 16 minutes ago 544MB
openjdk 8 47482c603b2a 2 weeks ago 526MB
hello-world latest feb5d9fea6a5 5 months ago 13.3kB
centos latest 5d0da3dc9764 5 months ago 231MB
六、启动容器
命令:docker run -d -p 8097:8097 --name docker-demo-container docker-demo
-d
是后台运行-p 8097:8097
端口映射--name
定义容器名字docker-demo
以哪个镜像为基础运行容器
运行如下:
[root@VM-4-8-centos project]# docker run -d -p 8097:8097 --name docker-demo-container docker-demo
b38019663d93a9917b842e89b59861ac9ce118c02c906f52e8025c30488a2336
查看容器
[root@VM-4-8-centos project]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
8cdb27ca5858 docker-demo "java -jar /app.jar …" 4 minutes ago Up 4 minutes 0.0.0.0:8097->8097/tcp, :::8097->8097/tcp docker-demo-container
2abc9f2c0dde centos "/bin/bash" 46 hours ago Up 45 hours my_centos
七、测试
[root@VM-4-8-centos project]# curl localhost:8097/hello
结果如下:
【docker系列】docker之部署springboot项目相关推荐
- 【Docker】11、IDEA集成Docker插件实现一键部署SpringBoot项目
日常开发项目的过程中,我们每次需要部署线上的时候,都需要安装一大堆的运行环境,例如:JDK.MySQL.Redis 等,非常花费时间.我们可以使用 Docker 的容器技术,方便快捷地搭建项目启动所需 ...
- 使用docker和jenkins简单部署springboot项目
安装docker Docker 要求 CentOS 系统的内核版本高于 3.10 uname -r 3.10.0-327.el7.x86_64 安装docker yum -y install dock ...
- Docker系列之Jenkins+Git实现流水线部署SpringBoot项目
1. 概述 本文使用Docker.Jenkins和Gitee持续部署SpringBoot项目,小伙伴们需要提前准备好Docker和Jenkins开发环境,有不清楚如何安装Docker和Jenkins的 ...
- Docker 部署 SpringBoot 项目整合 Redis 镜像做访问计数Demo
Docker 部署SpringBoot项目整合 Redis 镜像做访问计数Demo 最终效果如下 大概就几个步骤 1.安装 Docker CE 2.运行 Redis 镜像 3.Java 环境准备 4. ...
- Docker 部署SpringBoot项目不香吗?
点击上方"方志朋",选择"设为星标" 回复"666"获取新整理的面试文章 作者:流星007 链接:toutiao.com/i68433912 ...
- docker 挂载目录_完美解决:Docker部署SpringBoot项目后图片无法访问和上传,3招搞定!...
以前使用FTP在Linux中使用java -jar xxx.jar部署SpringBoot项目时,由于在项目中指定了主机文件存放路径映射,可以直接访问服务器的文件. 但是最近入坑Docker,将Spr ...
- 又到了上云时刻啦!!!阿里云 Docker部署SpringBoot项目 方便测试的部署方式
又到了上云时刻啦!!!阿里云 Docker部署SpringBoot项目 方便测试的部署方式 部署思路: 具体步骤: 1.打成jar 2.上传到服务器 3.启动JDK容器 4.进入JDK 容器 启动 项 ...
- IDEA配置Docker一键部署SpringBoot项目(企业级做法)
Docker一键部署SpringBoot项目 前言 一.开启Linux的Docker远程访问 1.1 安装vim工具: 1.2 修改`daemon.json`的配置: 1.3 加入配置: 1.4 重新 ...
- docker安装以及部署springboot项目
一.docker安装 1.安装 Docker Engine-Community 安装最新版本的 Docker Engine-Community 和 containerd,或者转到下一步安装特定版本: ...
最新文章
- pyqt designer connect无响应_如何用PyQt编写桌面程序,创建并打开播放列表?
- 什么是MySQL,以及它的特性
- 【LeetCode】LC1672. 最富有客户的资产总量
- Delphi中的进制转换
- linux看缺省的编译器,修改Linux系统默认编辑器
- [ZJOI2016]小星星
- java 实体类规范_实体类的规范
- 操作系统原理(三)操作系统用户界面
- 十大蓝牙耳机排行榜:2021年值得关注的十大蓝牙耳机排名
- 80x86汇编小站-公告
- (C语言) 用牛顿迭代法求方程2x^3 - 4x^2 + 3x - 6 = 0在1.5附近的根
- java web简答题_javaweb简答题
- 抖音搬运新技术秒上热门,爆抖神器,效果惊人
- 字根校对-中文校对软件
- win7声音图标不见,此图标当前处于未活动状态
- html 拼图游戏,HTML5人物拼图游戏
- 互联网的「中年危机」是什么?程序员对中年被裁有什么误解
- (私人收藏)灰蓝绿3种风格的套图图标
- 实战!我用Wireshark让你看见 TCP!
- 苹果CMS付费视频影视网站模板带完整会员中心模板