代码打镜像推送到Docker Hub,并由k8s拉取镜像部署小案例

打镜像

这里以部署一个renren-generator代码生成器应用为例,上传到DockerHub上。
  1. Maven打包,生成jar包

  2. 编写Dockerfile

FROM java:8
EXPOSE 7000

VOLUME /tmp
ADD /target/renren-generator-1.0.0.jar  /app.jar
RUN bash -c 'touch /app.jar'
ENTRYPOINT ["java","-jar","/app.jar"]

  1. 执行docker build
    docker build -t renren-genertor:1.0.0 .

代码打镜像推送到Docker Hub,并由k8s拉取镜像部署小案例_第1张图片

  1. 查看docker images可以看到我们刚打出来的镜像

  2. 启动镜像看是否正常启动(这步骤可以省略)
    docker run -d -p 7000:7000 renren-genertor:1.0.0
    在这里插入图片描述
    进入浏览器查看效果
    代码打镜像推送到Docker Hub,并由k8s拉取镜像部署小案例_第2张图片

上传镜像

  1. 登陆
appledeMacBook-Pro:renren-generator apple$ docker login -u f2xiang
Password: 
Login Succeeded
  1. 打标签,推送镜像
    格式为docker tag [镜像名:版本] [username]/xxx:tag
	docker tag renren-genertor:1.0.0 f2xiang/renren-genertor:1.0.0
	docker push f2xiang/renren-genertor:1.0.0

代码打镜像推送到Docker Hub,并由k8s拉取镜像部署小案例_第3张图片
3. 去Docker Hub查看效果
代码打镜像推送到Docker Hub,并由k8s拉取镜像部署小案例_第4张图片

拉取镜像

编写renren-generator-docker.yaml文件
其中镜像为我们刚刚上传上去的renren-generator

apiVersion: apps/v1
kind: Deployment
metadata:
  name: renren-generator
spec:
  replicas: 1
  selector:
    matchLabels:
      app: renren-generator
  template:
    metadata:
      labels:
        app: renren-generator
    spec:
      containers:
      - name: nginx
        image: f2xiang/renren-genertor:1.0.0

---

apiVersion: v1
kind: Service
metadata:
  name: renren-generator-svc
spec:
  ports:
    - name: http
      port: 7000 
  selector:
    app: renren-generator #路由选择
  type: NodePort  

发布k8s配置文件

kubectl apply -f renren-generator-docker.yaml 
kubectl get all

代码打镜像推送到Docker Hub,并由k8s拉取镜像部署小案例_第5张图片

输入网址,看到结果,成功。
代码打镜像推送到Docker Hub,并由k8s拉取镜像部署小案例_第6张图片

你可能感兴趣的:(运维相关,docker,maven,k8s)