使用创建一个spring boot项目,写入例子代码
@RestController
public class IndexController {
@GetMapping("/")
public String index() {
return "docker 部署 SpringBoot项目";
}
}
设置pom中packagin为jar包
点击maven中的deploy按钮打包生成jar包
进入项目的target目录下,就可以看到生成的jar包
在cmd窗口输入命令,测试是否可以正常使用 java -jar demo.jar
在服务器中新建一个名称为Dockerfile的文件夹
mkdir -p Dockerfile
输入命令进入该文件夹
cd Dockerfile
使用ftp工具将该jar包上传到这个文件夹中,这里我使用的是sftp直接上传到root目录
新建Dockerfile文件
vim Dockerfile
在上面写入该内容
FROM openjdk:8-jdk-alpine
RUN mkdir -p /usr/local/demo
COPY demo.jar /usr/local/demo/app.jar
ENTRYPOINT ["java","-jar","/usr/local/demo/app.jar"]
打包形成镜像
docker build -t de4a5a/demo:v2 .
这里打包的时候一定要注意,de4a5a表示自己的docker账号,demo表示镜像名称,冒号后面表示版本号
登录自己的docker账号,没有的话去注册一个
docker login
把自己的打包好的镜像push到自己的docker账号中
docker push de4a5a/demo:v2
去自己的docker账号中看看有没有推送成功
编写k8s所需要的yaml文件
vim demo.yaml
apiVersion: v1
kind: Service
metadata:
name: demo-svc
namespace: dev
spec:
type: NodePort
selector:
run: demo
ports:
- port: 8080
protocol: TCP
targetPort: 8080
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: "demo-deploy"
namespace: dev
spec:
replicas: 2
selector:
matchLabels:
run: demo
template:
metadata:
labels:
run: demo
spec:
containers:
- image: de4a5a/demo:v1
name: "demo"
ports:
- containerPort: 8080
protocol: TCP
创建k8s命令空间dev
kubectl create ns dev
k8s运行yaml文件
kubectl create demo.yaml
17、 查看运行状态
kubectl get po -n dev -o wide
kubectl get svc -n dev -o wide