目录
一、Dockerfile 自定义项目镜像
1.1、创建 SpringBoot 项目并编写
1.2、打包项目(jar)
1.3、编写 Dockerfile 文件,构建镜像
1.4、运行镜像并测试
a)简介:就是一个对 用户表 简单的增删改查的 SpringBoot 项目.
b)接口:采用 restful 风格
这里简单回顾以下 restful 风格接口规范
- 原则: GET(查询)、POST(添加)、PUT(全字段更新)、PATCH(部分字段更新)、DELETE(删除)
- 使用复数名词: user -> users、 car -> cars
- 请求和响应指定: request: @RequestBody; response: @ResponseBody
- 资源唯一标识需要通过路径传参,例如 id
c)配置文件:我们重点关注 服务器端口号 和 mysql 连接 ip 地址
Ps:由于将来会将 springboot 项目和 mysql 配置到同一个自定义的 docker 网络下,因此 mysql 的 url 配置中的 ip 就使用容器名称即可.
a)打包完毕后,根据以下目录找到包地址
或者在 target 的目录下也能看到
b)在云服务器上创建一个工作目录,用来存放 jar包 和 Dockerfile文件,将 jar 包从主机移到远端服务器.
a)选取 openjdk1.8 镜像作为根基(open 表示开源的意思)
在 dockerhub 官网搜索 openjdk,找到对应的版本
找到 8-jdk
可以看到有下载命令,将 openjdk:8-jdk 写到 FROM 后面,表示以此镜像为基础进行开发.
b)编写 Dockerfile 文件
c)将 Dockerfile 文件移动到云服务器的工作目录( /cyk/apps )
d)构建镜像
a)先自定义一个网桥,方便后续运行容器时直接加入到统一网络下.
d)启动容器
启动 mysql:
Ps:这里不要忘了准备 MySQL 的数据
启动 springboot 项目:
检查启动日志:
e)注意事项:运行容器时,一旦出现以下情况
一定要看一下 pom.xml 文件中是否存在 <skip>true<skip> 的配置,因为打包时他会跳过主类.
f)postman 测试接口
这里我为了防止黑客攻击,建立隧道和远端服务器连接,开放映射本地 9091 端口.
访问后,云服务器上检查日志,也可以观察到打印相应日志(测试成功)