IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Java知识库 -> docker部署springboot项目(详细教程) -> 正文阅读

[Java知识库]docker部署springboot项目(详细教程)

或者

wget -qO- https://get.docker.com/ | sh

[](

)拉取java环境

=======================================================================

拉取jdk很简单,直接执行一行代码即可,我这里拉取的时java 8的版本。

docker pull java:8

拉取完成之后执行:

docker images

如果出现下面内容,表示拉取成功

在这里插入图片描述

[](

)创建springboot项目

=============================================================================

1.新建项目

在这里插入图片描述

引入sprint-boot-web的依赖

在这里插入图片描述

新建完成之后的项目结构

在这里插入图片描述

2.引入docker依赖

<docker.image.prefix>registry.aliyuncs.com/linhuatest</docker.image.prefix>

com.spotify

docker-maven-plugin

1.0.0

d o c k e r . i m a g e . p r e f i x / {docker.image.prefix}/ docker.image.prefix/{project.artifactId}

src/main/docker

/

${project.build.directory}

${project.build.finalName}.jar

3.新建docker文件

在main目录下新建docker目录,然后在docker目录下创建dockerfile文件,不需要后缀名。

在这里插入图片描述

创建完成之后的工程目录如下:

在这里插入图片描述

4.编辑dockerfile文件

FROM java:8

VOLUME /tmp/tomcat

ADD spring-boot-docker-0.0.1-SNAPSHOT.jar springboot-docker.jar

ENTRYPOINT [“java”,"-Djava.security.egd=file:/dev/./urandom","-jar","/springboot-docker.jar"]

FROM:指定存在的镜像,java:8是我刚刚拉取的镜像,运行的基础。

VOLUME:指向的一个临时文件,用于存储tomcat工作。

ADD:复制文件并且重命名文件。

ENTRYPOINT:初始化配置或者自定义配置。

5.创建测试接口

![在这里插入图片描述](https://img-blog.csd

【一线大厂Java面试题解析+核心总结学习笔记+最新架构讲解视频+实战项目源码讲义】

浏览器打开:qq.cn.hn/FTf 免费领取

nimg.cn/2020032615123737.png)

TestController内容如下:

package com.ymy.controller;

import lombok.extern.slf4j.Slf4j;

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

import org.springframework.web.bind.annotation.RequestMethod;

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

@RestController

@Slf4j

public class TestController {

@RequestMapping(value = “/test”,method = RequestMethod.GET)

public String test(){

System.out.println(“这是控制台日志!”);

log.info(“这是输出到文件的日志”);

return “HELLO-BUG!!!!!!!!!!”;

}

}

在resources目录下创建log4j2.xml文件

主要看这两个参数:

在这里插入图片描述

这里我使用了log4j2的日志,如何配置log4j2的日志,请参考 [springboot整合Log4j2(将日志输出到指定文件)](

)。

6.编写application.yml配置文件

server:

port: 9999

到这里springboot项目就创建完成了,我们现在启动一下项目。

. ____ _ __ _ _

/\ / _ __ _ () __ __ _ \ \ \ \

( ( )___ | '_ | '| | ’ / _` | \ \ \ \

\/ _)| |)| | | | | || (| | ) ) ) )

’ || .__|| ||| |__, | / / / /

=|_|======|/=////

:: Spring Boot :: (v2.2.5.RELEASE)

15:29:19.386 [main] INFO com.ymy.SpringBootDockerApplication - Starting SpringBootDockerApplication on LAPTOP-3GLHJRE9 with PID 20652 (D:\springboot\spring-boot-docker\target\classes started by admin in D:\springboot)

15:29:19.395 [main] INFO com.ymy.SpringBootDockerApplication - No active profile set, falling back to default profiles: default

15:29:20.183 [main] INFO org.springframework.boot.web.embedded.tomcat.TomcatWebServer - Tomcat initialized with port(s): 9999 (http)

15:29:20.200 [main] INFO org.apache.coyote.http11.Http11NioProtocol - Initializing ProtocolHandler [“http-nio-9999”]

15:29:20.201 [main] INFO org.apache.catalina.core.StandardService - Starting service [Tomcat]

15:29:20.201 [main] INFO org.apache.catalina.core.StandardEngine - Starting Servlet engine: [Apache Tomcat/9.0.31]

15:29:20.309 [main] INFO org.apache.catalina.core.ContainerBase.[Tomcat].[localhost].[/] - Initializing Spring embedded WebApplicationContext

15:29:20.309 [main] INFO org.springframework.web.context.ContextLoader - Root WebApplicationContext: initialization completed in 881 ms

15:29:20.452 [main] INFO org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor - Initializing ExecutorService ‘applicationTaskExecutor’

15:29:20.568 [main] INFO org.apache.coyote.http11.Http11NioProtocol - Starting ProtocolHandler [“http-nio-9999”]

15:29:20.596 [main] INFO org.springframework.boot.web.embedded.tomcat.TomcatWebServer - Tomcat started on port(s): 9999 (http) with context path ‘’

15:29:20.599 [main] INFO com.ymy.SpringBootDockerApplication - Started SpringBootDockerApplication in 1.664 seconds (JVM running for 4.04)

如果看到这个页面表示springboot项目没有问题,现在我们将项目拷贝到服务器中。

[](

)打包springboot到docker

==================================================================================

在这里插入图片描述

我现在已经将项目拷贝到服务器中,我们现在需要将它打包到docker中,借助maven实现打包,如果还没有安装maven的,请先安装maven,切换到项目的根目录

在这里插入图片描述

执行

mvn clean package docker:build

执行完之后将会看到

在这里插入图片描述

表示打包成功。

执行

docker images

在这里插入图片描述

我们发现docker的镜像中多了一个springboot/spring-boot-docker,没错,这个就是我们的springboot项目,既然镜像已经生成,那么如何使用这个镜像呢?

执行

docker run --name springbooot-docker -p 9999:9999 -d 4a2

在这里插入图片描述

run:运行的意思

–name: 指定镜像启动的之后的名称

-p: 容器和外部的端口映射 第一个端口:外部 第二个端口:内部

-d: 后台运行 -t:实时运行,窗口关闭,程序结束。

4a2:表示镜像的id(IMAGE ID)前3位,这里的id并不需要输入全称,只需要输入前几个就行,有一个前提:当有很多镜像的时候,前面几个字符就有可能会相同,这个时候就需要多输入几位,直到不相同位置。

启动了镜像之后我怎么直到有没有成功呢?这个时候我们就需要一个命令来查看已经启动的任务

docker ps

在这里插入图片描述

我们发现这里已经出现了我们之前启动的镜像,所以这基本上代表启动成功了,为了验证是否启动成功,我们在浏览器输入测试的接口:ip:9999/test

在这里插入图片描述

[](

)docker查看容器的日志

============================================================================

这说明我们已经springboot项目已经启动成功了,到这里docker部署springboot项目差不就结束了,但是你可能还有一个疑问,如果我想看控制台的日志怎么办呢?像我们一般使用java -jar的时候都会生成一个控制台的日志文件,那docker容器中怎么查看控制台日志呢?其实很简单,只需要一行命令即可

docker ps

找到容器的id

在这里插入图片描述

然后执行

docker logs -f --tail=100 ca

在这里插入图片描述

这个时候我们就能看到控制台的日志了,如何我们想看log4j2输出的文件日志呢?

[](

)查看log4j2输出问文件日志

==============================================================================

还记得我们在log4j2中配置了日志的输出目录了吗?

在这里插入图片描述

没错,就是这个, 我们切换到这个目下

在这里插入图片描述

发现这里生成了三个文件,我们打开info.log

  Java知识库 最新文章
计算距离春节还有多长时间
系统开发系列 之WebService(spring框架+ma
springBoot+Cache(自定义有效时间配置)
SpringBoot整合mybatis实现增删改查、分页查
spring教程
SpringBoot+Vue实现美食交流网站的设计与实
虚拟机内存结构以及虚拟机中销毁和新建对象
SpringMVC---原理
小李同学: Java如何按多个字段分组
打印票据--java
上一篇文章      下一篇文章      查看所有文章
加:2021-11-01 11:32:51  更:2021-11-01 11:33:23 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 0:29:34-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码