docker安装
系统环境为win10专业版!专业版!
- 首先根据官网提示,Windows环境下下载Docker必须满足:Docker for Windows requires 64bit
Windows 10 Pro and Microsoft Hyper-V(即需要64位Windows 10
Pro(专业版和企业版都可以)和Microsoft
Hyper-V),Hyper-V是微软的虚拟机,在win10上是自带的,我们只需要启动就可以了。 - 打开控制面板->程序->启动或关闭Windows功能
- 进入网址https://docs.docker.com/docker-for-windows/install/#download-docker-for-windows 下载并安装。
- 后面无脑下一步
- 安装好后重启,电脑右下角会出现图标
初次进入需要注册账号密码登录
- 打开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
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名:版本自定义]
部署成功