一、项目打成jar包

可以通过Maven的install进行打包。这里我是用的一个springboot的demo。
install成功后,在target包下可以找到项目的jar包。

在这里插入图片描述

二、创建Dockerfile文件

  1. mkdir mydocker 创建文件夹,用来存放jar包和后面创建的Dockerfile。这里我创建的文件夹是mydocker。
  2. 上传jar包到mydocker。
  3. 在mydocker路径下, vim Dockerfile创建Dokcerfile文件。
  4. 编写相关脚本代码:
    FROM java:8   #基础镜像,如果本地仓库没有,会从远程仓库拉取
    MAINTAINER wei.zhou    #创建人
    ADD demo-0.0.1-SNAPSHOT.jar demo.jar   #第一个是jar包名称,第二个是重命名名称
    EXPOSE 8080  #暴露端口
    ENTRYPOINT ["java","-jar","demo.jar"]
    

三、构建镜像

docker build -f Dockerfile文件位置 -t 镜像名:版本 . 【末尾有个点,一点要注意】
因为我这里和Dockerfile是一个文件位置,所以直接是

docker build -t demo .

成功以后,执行docker images可以看到
在这里插入图片描述

四、编写Deployment,Service的yaml文件

vim svc-nodePort.yaml

以下是编辑内容:

---
apiVersion: apps/v1

kind: Deployment

metadata:

  name: myapp-demo

  namespace: default

spec:

  replicas: 3

  selector:

    matchLabels:

      app: myapp

      release: stabel

  template:

    metadata:

      labels:

        app: myapp

        release: stabel

        env: test

    spec:

      containers:

      - name: myapp

        image: demo

        imagePullPolicy: IfNotPresent

        ports:

        - name: http

          containerPort: 80
---
apiVersion: v1

kind: Service

metadata:

  name: myapp

  namespace: default

spec:

  type: NodePort

  selector:

    app: myapp

    release: stabel

  ports:

  - name: http

    port: 8080

    targetPort: 8080

    nodePort: 30080
---

然后执行:

kubectl apply -f svc-deployment.yaml

最后执行

kubectl get pod

在这里插入图片描述

五、验证测试

通过之前yaml中的nodePort端口,也就是主ip/从ip:30080去访问。
在这里插入图片描述

Logo

开源、云原生的融合云平台

更多推荐