我们好,我是大澈!

本文约1800+字,整篇阅读大约需求3分钟。

关注微信大众号:“程序员大澈”,免费参加问答群,一同沟通技能难题与未来!

现在关注大众号,免费送你 ”前后端入行大礼包“ ,包含了:前后端面试题、面试技巧、简历模版、前后端学习路线图、前后端全技能栈学习笔记。

1. 问题速览

最近,推文内容想着从 前端范畴 向 前后端范畴 转型。

起点呢,为了更多的给我们共享,为了自己也能学到更多知识,更为了可以知道更多的同行朋友,一同沟通技能难题与未来!

所以,仅针对最近许多问我个人项目布置方面问题的朋友,今日共享一下如何用Docker布置一个SpringBoot后端项目。

学习中编写,不足之处朋友们多多指教哈哈。

功用问题:如何用Docker布置一个后端项目?

2. 问题详细

5步聊聊Docker布置后端个人项目过程,最终做小结。

2.1编写一个接口

创立一个SpringBoot项目,编写一个接口。

@RestController
@RequestMapping("/test")
publicclassTestController{
@GetMapping("/api")
publicStringdetail(){
return"后端布置成功";
}
}

下面再编写两个装备文件,以便于区别开发与出产环境的装备。

application.yml开发环境装备示例:

mybatis-plus:
global-config:
db-config:
logic-delete-field:isDeleted#大局指定逻辑删去字段
logic-delete-value:1#逻辑删去后的值
logic-not-delete-value:0#没有删去的值
mapper-locations:classpath*:mapper/*.xml#mapper.xml方位

application-online.yml出产环境装备示例:

server:
port:9898
spring:
redis:
host:redis
port:6379
database:1
datasource:
username:root
password:Xp@199866
driver-class-name:com.mysql.cj.jdbc.Driver
url:jdbc:mysql://mysql:3306/myblog?useUnicode=true&characterEncoding=utf8&useSSL=true&serverTimezone=GMT%2B8

2.2编写Dockerfile

在项目根目录下(一般放这)或其它方位,编写Dockerfile文件。

留意,文件姓名必须叫Dockerfile,当然也能自定义,但不建议。

编写它的目的,是为了把本地打的项目jar包在服务器上制造成Docker镜像,方便后边运转成容器进行管理。

下面是Dockerfile文件内容:

#根底镜像JDK8一般不需求改
FROMeclipse-temurin:8
#作者需求改
MAINTAINERdache
#作业目录一般不需求改
WORKDIR/usr/local/java
#同步docker内部的时间一般不需求改
RUNln-snf/usr/share/zoneinfo/$TZ/etc/localtime&&echo$TZ>/etc/timezone
#设置时区和端口号需求改
ENVTZ=Asia/Shanghai
EXPOSE9898
#仿制jar包到/user/local/java下需求改
ARGJAR_FILE
ADD${JAR_FILE}./bili.jar
#指定装备文件、jar包、日志的方位需求改
ENTRYPOINT["nohup","java","-Dspring.profiles.active=online","-Dspring.config.location=/usr/local/java/application.yml,/usr/local/java/application-online.yml","-jar","/usr/local/java/bili.jar",">","/usr/local/java/bili.log","&>","&"]

2.3制造Docker镜像

在本地编写完Dockerfile文件之后,我们就要去服务器中制造Docker镜像。

经过远程操控东西Termius(现在一般用这个)或Xshell,创立java文件夹,将装备文件、jar包、Dockerfile等文件上传,再运转Docker制造镜像的指令,完结jar包镜像制造。

制造Docker镜像指令如下:

dockerbuild-tbili:1.

-t指的是Tag名,指的是镜像版本号,.指的是在当前目录去找Dockerfile文件。

2.4创立Docker网络并运转容器

创立Docker网络的目的,是因为在Docker中,同一网络下的容器间,可以经过姓名来相互拜访。

默认情况下,Docker不支持容器名相互拜访,所以要创立Docker网络。

创立Docker网络的指令如下:

dockernetworkcreatebili

然后,再在同一网络中别离运转mysql、redis、jar包等镜像,实现多服务容器化。当然,重要的前提是,你已经在服务器创立了数据库、暴漏了端口等前置必要作业!运转mysql镜像指令示例:

dockerrun-d--namemysql-vmysqldata:/var/lib/mysql-vmysqlconf:/etc/mysql/conf.d-vmysqllog:/var/log/mysql-p3306:3306--networkbili-eMYSQL_ROOT_PASSWORD=Xp@199866mysql:8

运转redis镜像指令示例:

dockerrun--nameredis--networkbili-p6379:6379-dredis:latest

运转jar包镜像指令示例:

dockerrun-d-it--namebili--networkbili-v/usr/local/java:/usr/local/java-p9898:9898bili:1

这里最终再弥补一下,对上面Docker指令的几个阐明:

-d后台运转
–name容器名
-v数据卷
-p端口映射
–network网络指定
-e环境装备,这里指定了root用户的密码

2.5接口测试

用浏览器或恣意一个我之前在有用干货文章中引荐过的接口测试东西,调一下接口,成功响应即布置成功!

功用问题:如何用Docker布置一个后端项目?

2.6小结

今日给我们共享了,如何用Docker布置一个SpringBoot后端项目,分了算是5步阐明吧。

本文比较倾向于前端同行或后端小白朋友,当然关于后端大佬们来说,比较轻松了。

但不管怎么样,希望大澈今日的共享,可以帮助到有需求的朋友。

结语

  • 我是大澈,一个喜爱交朋友、喜爱共享、喜爱搞钱的90后小伙。

  • 文章主共享前后端功用问题实现、次共享技能资讯、有用干货。

  • 遇到技能难题,在问答群里与很多同行朋友一同讨论成长。

关注微信大众号:“程序员大澈”,免费参加问答群,一同沟通技能难题与未来!

现在关注大众号,免费送你 ”前后端入行大礼包“ ,包含了:前后端面试题、面试技巧、简历模版、前后端学习路线图、前后端全技能栈学习笔记。