1、搞定基础镜像
docker pull tomcat:8.0.51-alpine
docker tag tomcat:8.0.51-alpine 10.204.82.15/kubernetes/tomcat:8.0.51-alpine
docker push 10.204.82.15/kubernetes/tomcat:8.0.51-alpine
2、web应用服务打包
cd /root/kubernetes/k8s-web-demo/web-demo
mvn clean package
cd target
java -tf java -tf web-demo-1.0-SNAPSHOT.war
3、编写Dockerfile构建镜像
FROM 10.204.82.15/kubernetes/tomcat:8.0.51-alpine
COPY target/ROOT /usr/local/tomcat/webapps/ROOT
COPY start.sh /usr/local/tomcat/bin/start.sh
ENTRYPOINT ["sh" , "/usr/local/tomcat/bin/start.sh"]
#!/bin/bash
sh /usr/local/tomcat/bin/startup.sh
tail -f /usr/local/tomcat/logs/catalina.out
--tomcat镜像启动测试
docker run -it --entrypoint bash 10.204.82.15/kubernetes/tomcat:8.0.51-alpine
--构建web镜像
docker build -t web:v1 .
--web镜像启动测试
docker run -it web:v1
--将web镜像推送到镜像仓库
docker tag web:v1 10.204.82.15/kubernetes/web:v1
docker push 10.204.82.15/kubernetes/web:v1
4、确定服务发现策略,编写web.yaml
#deploy
apiVersion: apps/v1
kind: Deployment
metadata:
name: web-demo
spec:
selector:
matchLabels:
app: web-demo
replicas: 1
template:
metadata:
labels:
app: web-demo
spec:
containers:
- name: web-demo
image: 10.204.82.15/kubernetes/web-demo:v1
ports:
- containerPort: 8080
---
#service
apiVersion: v1
kind: Service
metadata:
name: web-demo
spec:
ports:
- port: 80
protocol: TCP
targetPort: 8080
selector:
app: web-demo
type: ClusterIP
---
#ingress
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: web-demo
spec:
rules:
- host: web.xxxx.com
http:
paths:
- path: /
backend:
serviceName: web-demo
servicePort: 80
5、启动web容器
kubectl apply -f web.yaml
kubectl get pods -o wide
6、本地域名绑定、服务访问
C:\Windows\System32\drivers\etc\hosts
10.204.82.16 web.xxxx.com