我们好,我是大澈!
本文约1800+
字,整篇阅读大约需求3
分钟。
关注微信大众号:“程序员大澈”,免费参加问答群
,一同沟通技能难题与未来!
现在关注大众号,免费送你 ”前后端入行大礼包
“ ,包含了:前后端面试题、面试技巧、简历模版、前后端学习路线图、前后端全技能栈学习笔记。
1. 问题速览
最近,推文内容想着从 前端范畴 向 前后端范畴 转型。
起点呢,为了更多的给我们共享,为了自己也能学到更多知识,更为了可以知道更多的同行朋友,一同沟通技能难题与未来!
所以,仅针对最近许多问我个人项目布置方面问题的朋友,今日共享一下如何用Docker
布置一个SpringBoot后端项目。
学习中编写,不足之处朋友们多多指教哈哈。
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接口测试
用浏览器或恣意一个我之前在有用干货文章
中引荐过的接口测试东西,调一下接口,成功响应即布置成功!
2.6小结
今日给我们共享了,如何用Docker布置一个SpringBoot后端项目,分了算是5步阐明吧。
本文比较倾向于前端同行或后端小白朋友,当然关于后端大佬们来说,比较轻松了。
但不管怎么样,希望大澈今日的共享,可以帮助到有需求的朋友。
结语
-
我是大澈,一个喜爱交朋友、喜爱共享、喜爱搞钱的90后小伙。
-
文章主共享前后端功用问题实现、次共享技能资讯、有用干货。
-
遇到技能难题,在问答群里与很多同行朋友一同讨论成长。
关注微信大众号:“程序员大澈”,免费参加问答群
,一同沟通技能难题与未来!
现在关注大众号,免费送你 ”前后端入行大礼包
“ ,包含了:前后端面试题、面试技巧、简历模版、前后端学习路线图、前后端全技能栈学习笔记。