JavaEE入门 springboot+docker

docker安装

系统环境为win10专业版!专业版!

  1. 首先根据官网提示,Windows环境下下载Docker必须满足:Docker for Windows requires 64bit
    Windows 10 Pro and Microsoft Hyper-V(即需要64位Windows 10
    Pro(专业版和企业版都可以)和Microsoft
    Hyper-V),Hyper-V是微软的虚拟机,在win10上是自带的,我们只需要启动就可以了。
  2. 打开控制面板->程序->启动或关闭Windows功能
  3. 进入网址https://docs.docker.com/docker-for-windows/install/#download-docker-for-windows 下载并安装。
    在这里插入图片描述
    在这里插入图片描述
  4. 后面无脑下一步
  5. 安装好后重启,电脑右下角会出现图标
    初次进入需要注册账号密码登录
    在这里插入图片描述
  6. 打开win+cmd
    输入docker --version
    安装成功
    在这里插入图片描述

在docker中部署mysql

拉取mysql镜像

docker pull mysql

docker images

在这里插入图片描述

docker run -p 33068:3306 -e MYSQL_ROOT_PASSWORD=??? --name mysql8 -d mysql

docker container ls

命令行出现这些就成功了
在这里插入图片描述
docker desktop 可以看到(重启后)
在这里插入图片描述
数据库脚本:

create database homework;

create table student_homework(
    id bigint(20) auto_increment primary key,
    homework_id bigint(20),
    student_id bigint(20),
    homework_title varchar(255),
    homework_content varchar(255),
    create_time timestamp ,
    update_time timestamp
    );

#user_type 0是学生 1是教师
create table user(
    user_id bigint(20) primary key,
    user_name varchar(20),
    user_password varchar(20),
    user_type int
    );


create table teacher_homework(
    homework_id bigint(20) auto_increment primary key,
    teacher_id bigint(20),
    homework_title varchar(255),
    homework_require varchar(255),
    create_time timestamp,
    final_time timestamp
    );

springboot

项目直接上git地址
重点讲一下制作镜像之前怎么配置 参考

application.properties

#jdbc_config datasource
spring.datasource.url=jdbc:mysql://mysql8:3306/homework?serverTimezone=GMT%2B8&useUnicode=true&characterEncoding=utf-8 
#注意需要把url改成 mysql对应的container名+数据库docker内部端口
spring.datasource.username=root
spring.datasource.password= 你自己的密码 	#刚刚创建的数据库container中的密码(MYSQL_ROOT_PASSWORD=???)
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver

#数据库连接池
spring.datasource.hikari.minimum-idle=10
spring.datasource.hikari.maximum-pool-size=25
spring.datasource.hikari.auto-commit=true
spring.datasource.hikari.idle-timeout=30000
spring.datasource.hikari.pool-name=DatebookHikariCP
spring.datasource.hikari.max-lifetime=1800000
spring.datasource.hikari.connection-timeout=30000
spring.datasource.hikari.connection-test-query=SELECT 1

#port
server.port=9090
spring.mvc.static-path-pattern: /static/**
spring.thymeleaf.prefix=classpath:/templates/
spring.thymeleaf.suffix=.html
spring.thymeleaf.mode= LEGACYHTML5
spring.thymeleaf.cache=false

pom.xml中添加插件dockerfile-maven-plugin
(docker-maven-plugin一直没打包成功故使用dockerfile-maven-plugin)

	 <plugin>
	     <groupId>com.spotify</groupId>
	     <artifactId>dockerfile-maven-plugin</artifactId>
	     <version>1.4.10</version>
	     <configuration>
	         <googleContainerRegistryEnabled>false</googleContainerRegistryEnabled>
	         <repository>${project.artifactId}</repository>
	         <dockerfile>src/main/docker/dockerfile</dockerfile>
	         <tag>latest</tag>
	         <buildArgs>
	             <JAR_FILE>target/${project.build.finalName}.jar</JAR_FILE>
	         </buildArgs>
	     </configuration>
	     <executions>
	         <execution>
	             <id>build</id>
	             <goals>
	                 <goal>build</goal>
	                 <goal>tag</goal>
	             </goals>
	         </execution>
	     </executions>
	 </plugin>

dockerfile
在这里插入图片描述

FROM sapmachine/jdk11 #需要在docker中拉取sapmachine/jdk11(我项目使用的是jdk11)
ARG JAR_FILE
ADD ${JAR_FILE} /app.jar
ENTRYPOINT ["/usr/bin/java", "-jar", "/app.jar"]

准备完成后 命令行输入

#-X 可有可没有 -X可以显示详细的打包过程,报错更详细
mvn clean -X
mvn package -X
mvn clean package dockerfile:build -X

出现这个就成功了
在这里插入图片描述

docker images

在这里插入图片描述
测试一下是否可以使用

#在项目中我使用了9090端口故内部端口也设置为9090
docker run --name homeworkSystem -p 9600:9090 homeworksystem

在这里插入图片描述

部署到远端仓库

其实这里有点类似git操作

首先,这里使用的是阿里的仓库

docker login --username=自己的 registry.cn-beijing.aliyuncs.com

输入密码登录成功
在这里插入图片描述

docker tag homeworksystem registry.cn-beijing.aliyuncs.com/springwinter/17301094-homeworksystem:latest
#docker tag [本地image:版本(latest是默认值)] [自定义远端image名:版本自定义]

docker images

查一下发现本地docker中添加了一个新的 image(正是要推送到远端的image)
在这里插入图片描述
然后

docker push registry.cn-beijing.aliyuncs.com/springwinter/17301094-homeworksystem:latest
#docker push [自定义远端image名:版本自定义]

部署成功
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值