java如何制作镜像iso文件_java应用程序镜像制作及在kubernetes上发布

应用程序镜像制作

准备好应用程序

[root@VM_8_24_centos testapp]# ls

Dockerfile testapp.tar.gz

编写Dockerfile

[root@VM_8_24_centos testapp]# cat Dockerfile

# 基础镜像

FROM core-harbor.minminmsn.com/public/jre-centos:1.8.0_212

# 维护信息

MAINTAINER minyt

# 文件复制到镜像

RUN mkdir -p /data1/testapp-app && mkdir -p /data1/logs/testapp-app && mkdir -p /data1/run/testapp-app

ADD testapp.tar.gz /data1/testapp-app/

# 设置环境变量

# ENV JAVA_HOME /usr/local/jre1.8.0_212

# ENV PATH ${PATH}:${JAVA_HOME}/bin

# 容器启动时运行的命令

CMD ["/data1/testapp-app/bin/launch.sh", "start"]

# 暴漏端口

EXPOSE 10030

制作应用程序镜像

[root@VM_8_24_centos testapp]# docker build -t core-harbor.minminmsn.com/public/testapp:2.0 .

Sending build context to Docker daemon 58.24MB

Step 1/6 : FROM core-harbor.minminmsn.com/public/jre-centos:1.8.0_212

---> f27d47159f1e

Step 2/6 : MAINTAINER minyt

---> Using cache

---> 3d2b8caf725b

Step 3/6 : RUN mkdir -p /data1/testapp-app && mkdir -p /data1/logs/testapp-app && mkdir -p /data1/run/testapp-app

---> Running in 8034eb452bfa

Removing intermediate container 8034eb452bfa

---> eea12a3c6093

Step 4/6 : ADD testapp.tar.gz /data1/testapp-app/

---> 1d155c1cd571

Step 5/6 : CMD ["/data1/testapp-app/bin/launch.sh", "start"]

---> Running in c7dab4cffaf9

Removing intermediate container c7dab4cffaf9

---> 45a1da4c0742

Step 6/6 : EXPOSE 10030

---> Running in 2618620aa185

Removing intermediate container 2618620aa185

---> b1d3a82bb34d

Successfully built b1d3a82bb34d

Successfully tagged core-harbor.minminmsn.com/public/testapp:2.0

本地启动镜像测试

[root@VM_8_24_centos testapp]# docker run -d -p 10030:10030 core-harbor.minminmsn.com/public/testapp:2.0

ce1cf6f8e29554187d8fc810f94e35b80ca0902d0e8fc7d43bc7f5fa5d9a7dc2

[root@VM_8_24_centos testapp]# netstat -tulpn |grep 10030

tcp6 0 0 :::10030 :::* LISTEN 28037/docker-proxy

浏览器访问测试

http://10.2.8.24:10030/

{"returncode":0,"message":"OK"}

上传到私有镜像库

[root@VM_8_24_centos testapp]# docker push core-harbor.minminmsn.com/public/testapp:2.0

The push refers to repository [core-harbor.minminmsn.com/public/testapp]

04b815b81c42: Pushed

8dae5abda95b: Pushed

b9049811dc7d: Layer already exists

89169d87dbe2: Layer already exists

2.0: digest: sha256:db7f866ec3f531161c2f6a82667f03896657c34ccaf25b310d519abac175c25e size: 1160

[root@VM_8_24_centos testapp]#

在kubernetes上发布应用

准备testapp.yaml文件

[root@elasticsearch01 testapp]# cat testapp.yaml

apiVersion: extensions/v1beta1

kind: Deployment

metadata:

labels:

app.kubernetes.io/name: testapp

app.kubernetes.io/part-of: ingress-nginx

name: testapp

namespace: ingress-nginx

spec:

selector:

matchLabels:

app.kubernetes.io/name: testapp

app.kubernetes.io/part-of: ingress-nginx

strategy:

rollingUpdate:

maxSurge: 1

maxUnavailable: 1

type: RollingUpdate

template:

metadata:

labels:

app.kubernetes.io/name: testapp

app.kubernetes.io/part-of: ingress-nginx

spec:

containers:

- image: core-harbor.minminmsn.com/public/testapp:2.0

name: testapp

ports:

- containerPort: 10030

protocol: TCP

restartPolicy: Always

volumes:

- emptyDir: {}

name: data

---

apiVersion: v1

kind: Service

metadata:

name: testapp

namespace: ingress-nginx

labels:

app.kubernetes.io/name: testapp

app.kubernetes.io/part-of: ingress-nginx

spec:

ports:

- port: 10030

protocol: TCP

targetPort: 10030

selector:

app.kubernetes.io/name: testapp

app.kubernetes.io/part-of: ingress-nginx

type: NodePort

---

apiVersion: extensions/v1beta1

kind: Ingress

metadata:

name: testapp-ingress

namespace: ingress-nginx

spec:

rules:

- host: testapp.minminmsn.com

http:

paths:

- path: /

backend:

serviceName: testapp

servicePort: 10030

部署应用

[root@elasticsearch01 testapp]# kubectl create -f testapp.yaml

deployment.extensions/testapp created

service/testapp created

ingress.extensions/testapp-ingress created

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值