首页 > 其他分享 >docker 打包 springboot 项目快速入门

docker 打包 springboot 项目快速入门

时间:2023-05-08 11:04:50浏览次数:35  
标签:springboot jar yum https 镜像 docker 打包 入门

> 收藏不点赞,表示很遗憾

docker 打包 springboot 项目快速入门

文末源码 @[toc]

1.构建Sringboot工程

新建项目

docker 打包 springboot 项目快速入门_intellij idea

docker 打包 springboot 项目快速入门_bash_02

docker 打包 springboot 项目快速入门_bind_03

docker 打包 springboot 项目快速入门_intellij idea_04

创建接口

package com.wangshiyu.javapub.demo.springbootdocker.controller;

import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;

/**
 * @Author: JavaPub
 * @License: https://github.com/Rodert/ https://gitee.com/rodert/
 * @Contact: 
 * @Date: 2022/2/26 12:24
 * @Version: 1.0
 * @Description:
 */

@RestController
public class HelloController {

    @RequestMapping("/hello")
    String hello(@RequestParam(required = false, defaultValue = "") String name) {
        return "hello, welcome wangshiyu JavaPub " + name;
    }
}

maven 打包 springboot 项目

mvn clean package -DskipTests

2.编写Dockerfile

Dockerfile讲解

#基础镜像通过java8来的
FROM java:8
#将当前文件中所有*.jar  拷贝到项目的app.jar中(这个app.jar是自己生成的)
COPY *.jar /app.jar
#映射地址
CMD ["--server.prot=8080"]
#暴露端口
EXPOSE 8080
#执行命令java  -jar
ENTRYPOINT ["java","-jar","/app.jar"]

3.docker环境搭建和构建docker镜像运行

文件准备

拷贝 *.jar 包和 Dockerfile 到linux服务器文件夹下

linux下docker安装

本次在root权限下安装

  1. 更新yum到最新版本

> yum update

  1. 卸载旧版本(如果没安装,忽略)

> yum remove docker
docker-client
docker-client-latest
docker-common
docker-latest
docker-latest-logrotate
docker-logrotate
docker-selinux
docker-engine-selinux
docker-engine

> yum list installed | grep docker

> yum remove docker-ce

> rm -rf /var/lib/docker

curl -sSL https://get.daocloud.io/docker | sh

  1. 安装一些工具

> yum install -y yum-utils device-mapper-persistent-data lvm2

> yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

  1. 安装docker稳定版

> yum install docker-ce

  1. 成功

> docker version

  1. 切换国内加速镜像

> vim /etc/docker/daemon.json

{
  "registry-mirrors": [
    "https://dockerhub.azk8s.cn",
    "https://docker.mirrors.ustc.edu.cn",
    "https://registry.docker-cn.com"
  ]
}

> systemctl daemon-reload

> systemctl restart docker

异常

如果中途出现什么旧版本没卸载干净,把卸载命令全部重新执行一遍。

打包构建docker镜像

  1. 将 jar包 打包成 docker 镜像(基于Dockerfile打包一个名为 idea_docker_image_test 的镜像,版本为1.0)

> docker build -t idea_docker_image_test:1.0 -f Dockerfile .

  1. 查看镜像是否打包成功

> docker images

运行

> docker run -d --name idea_docker_image_test -p 8080:8080 idea_docker_image_test:1.0

docker 打包 springboot 项目快速入门_intellij idea_05

查看日志

  1. 查看控制台日志

> docker logs -f --tail=100 容器id

  1. 查看slf4j日志

> 通过 docker exec -it 容器id /bin/bash 进入容器 再通过项目里指定的路径及可找到日志文件

仓库地址

公众号: JavaPub 回复: 仓库地址

docker 打包 springboot 项目快速入门_linux_06

标签:springboot,jar,yum,https,镜像,docker,打包,入门
From: https://blog.51cto.com/wangshiyu/6253146

相关文章

  • Springboot2.x整合ElasticSearch7.x实战(三)
    大概阅读10分钟本教程是系列教程,对于初学者可以对ES有一个整体认识和实践实战。还没开始的同学,建议先读一下系列攻略目录:Springboot2.x整合ElasticSearch7.x实战目录本篇幅是继上一篇Springboot2.x整合ElasticSearch7.x实战(二),适合初学Elasticsearch的小白,可以跟着整个教程做......
  • springboot项目启动后卡死 pom 依赖问题
    最近接手一个新项目springcolud的子系统 pom里面有个parent标签因为没有父项目的pom文件就把pom自己改了改 编译不报错就行 神奇的事情发生了  项目跑起来卡死了     就是启动后tomcat是启动的 但是具体的代码没有跑起来看了下jvm后台 eden区不断g......
  • 《java接力》springboot篇——新建项目
    新建项目参考链接:https://www.cnblogs.com/wuyizuokan/p/11117294.html参考链接:https://segmentfault.com/q/1010000007938655新建项目无法链接spring官网法一:可以使用https://start.springboot.io/法二:使用自定义网址,把那个网址的https后面的s去掉,使用http开头就可以访......
  • SpringBoot自动配置原理
    SpringBoot自动配置原理一、什么是SpringBoot的自动配置?SpringBoot的最大的特点就是简化了各种xml配置内容,还记得曾经使用SSM框架时我们在spring-mybatis.xml配置了多少内容吗?数据源、连接池、会话工厂、事务管理···,而现在SpringBoot告诉你这些都不需要了,一切交给它的自动......
  • SpringBoot运行流程
    SpringBoot运行流程一、准备阶段我们先看一下这个SpringApplication的构造方法中做了什么事情,为run方法准备了那些事情通常在一个springboot的应用中,会看到下面一段代码作为应用的入口@SpringBootApplicationpublicclassApplication{publicstaticvoidmain(String......
  • Java入门7(异常处理,list集合)
    异常处理(try-catch)错误的种类一般来讲,程序出现错误的时候,大致情况有三种:语法错误运行时错误,指的是各程序运行的时候,出现的一些没有想到的问题,比如除数为0,比如数组下标越界等等逻辑错误,运行结果和与其结果不一致,俗称bug⭐Java中的异常处理机制主要用于处理运行时错误异常......
  • SpringBoot版本接口
    SpringBoot版本接口前言为什么接口会出现多个版本一般来说,RestfulAPI接口是提供给其它模块,系统或是其他公司使用,不能随意频繁的变更。然而,需求和业务不断变化,接口和参数也会发生相应的变化。如果直接对原来的接口进行修改,势必会影响线其他系统的正常运行。这就必须对api接口......
  • SpringBoot参数校验
    SpringBoot参数校验为什么需要参数校验在日常的接口开发中,为了防止非法参数对业务造成影响,经常需要对接口的参数进行校验,例如登录的时候需要校验用户名和密码是否为空,添加用户的时候校验用户邮箱地址、手机号码格式是否正确。靠代码对接口参数一个个校验的话就太繁琐了,代码可读......
  • SpringBoot统一异常处理
    SpringBoot统一异常处理概述Spring在3.2版本增加了一个注解@ControllerAdvice,可以与@ExceptionHandler、@InitBinder、@ModelAttribute等注解注解配套使用。简单的说,该注解可以把异常处理器应用到所有控制器,而不是单个控制器。借助该注解,我们可以实现:在独立的某个地方,比如单独......
  • SpringBoot添加日志
    SpringBoot添加日志前言SpringBoot使用ApacheCommons日志记录进行所有内部日志记录。SpringBoot的默认配置支持使用JavaUtilLogging,Log4j2和Logback。使用这些,可以配置控制台日志记录以及文件日志记录。如果使用的是SpringBootStarters,Logback将为日志记录提供良好的支......