minikube 实战篇 - 镜像打包部署 - 1

10 篇文章 4 订阅
3 篇文章 0 订阅

实战篇 - 镜像打包

如果你是一个JAVA开发人员,需要把spring项目部署到minikube中,该怎么操作是一个需要探索的问题,这篇文章会讲解如何打包部署项目

1、生成demo项目

在浏览器端输入https://start.spring.io/,进入Spring start页面

  • 1 选择spring boot相关版本 - 2.7.2
  • 2 选择jdk版本 - 8
  • 3 引入spring-web
  • 4 编辑group等信息

点击generate会生成一个spring boot demo项目。

2、编写java代码

package com.docker.demo;

import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class HelloContoller {

    @GetMapping("hello")
    public String helloworld(){
        return "hello world!";
    }
}

编写完之后运行DemoApplication,查看是否运行成功。

3、编写dockerfile文件

# 从镜像仓库拉取jdk8
FROM openjdk:8-jdk-alpine
# 定义参数JAR_FILE
ARG JAR_FILE=target/*.jar
# 复制jar文件并改名为app.jar
COPY ${JAR_FILE} app.jar
# 执行 java -jar /app.jar 运行jar包
ENTRYPOINT ["java","-jar","/app.jar"]

dockerfile文件直接放入demo根目录下,如下:

4、执行打包操作:

PS D:\minikube\source_data\docker-demo> docker build -t halo26812/docker-demo:0.0.1 .
[+] Building 2.5s (7/7) FINISHED
 => [internal] load build definition from Dockerfile                                                                                                                                                        0.0s
 => => transferring dockerfile: 31B                                                                                                                                                                         0.0s
 => [internal] load .dockerignore                                                                                                                                                                           0.0s
 => => transferring context: 2B                                                                                                                                                                             0.0s
 => [internal] load metadata for docker.io/library/openjdk:8-jdk-alpine                                                                                                                                     2.3s
 => [internal] load build context                                                                                                                                                                           0.0s
 => => transferring context: 80B                                                                                                                                                                            0.0s
 => [1/2] FROM docker.io/library/openjdk:8-jdk-alpine@sha256:94792824df2df33402f201713f932b58cb9de94a0cd524164a0f2283343547b3                                                                               0.0s
 => CACHED [2/2] COPY target/*.jar app.jar                                                                                                                                                                  0.0s
 => exporting to image                                                                                                                                                                                      0.0s
 => => exporting layers                                                                                                                                                                                     0.0s
 => => writing image sha256:911e7fe272127e86d33f4a22a8a1bb61d7036362330b1c46d886fc6cb891fae4                                                                                                                0.0s
 => => naming to docker.io/halo26812/docker-demo:0.0.

进入文件夹docker-demo 下,执行docker build -t halo26812/docker-demo:0.0.1 . 会在docker 下生成images。docker build .是生成镜像文件,-t halo26812/docker-demo:0.0.1是生成tag及版本信息。

--tag, -t: 镜像的名字及标签,通常 name:tag 或者 name 格式;可以在一次构建中为一个镜像设置多个标签。

5、查看镜像是否build成功

PS D:\minikube\source_data\docker-demo> docker images
REPOSITORY              TAG       IMAGE ID       CREATED          SIZE
halo26812/docker-demo   0.0.1     911e7fe27212   12 minutes ago   122MB

执行docker images,查询镜像信息,会显示REPOSITORY,tag,imageId等信息,其中tag和REPOSITORY就是在docker build中输入的信息

6、在docker上面运行

PS D:\minikube\source_data\docker-demo> docker ps
CONTAINER ID   IMAGE                         COMMAND                  CREATED         STATUS         PORTS                                   NAMES
2d41557008bc   kicbase/stable:v0.0.28        "/usr/local/bin/entr…"   2 days ago      Up 2 days      127.0.0.1:58802->22/tcp, 127.0.0.1:58803->2376/tcp, 127.0.0.1:58805->5000/tcp, 127.0.0.1:58806->8443/tcp, 127.0.0.1:58804->32443/tcp   minikube
PS D:\minikube\source_data\docker-demo> docker run -dp 3000:8080 halo26812/docker-demo:0.0.1
c36221350c7fca1c853e55a8297e57bd2f741e2b8e9eb6ba4168de968b01c8db

执行docker run之后,docker-demo服务就可以在本地运行了。

7、docker run执行参数描述

8、在浏览器访问http://127.0.0.1:3000/hello查看是否执行成功

上面显示hello world!说明部署成功了。之后我们需要打包到镜像容器中,在minikube中进行部署操作。

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值