本文用到的工具:jar包、docker环境

前置文章:如何在阿里创建自己的Docker镜像仓库

我们准备一个jar包,里面只有一个接口,没有配置数据库相关文件。后面的文章会有包含配置文件等打包镜像操作。

1.编写jar包

使用IDEA+maven写了一个springboot项目,里面有一个接口。
然后将项目打成jar包。

项目文件内容参考:

applicaton.yml

server:
  port: 8081

POM文件:

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>org.example</groupId>
    <artifactId>test</artifactId>
    <version>1.0-SNAPSHOT</version>

    <!-- 引入 Spring Boot 统一版本父项目管理依赖 -->
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.7.7</version>
    </parent>

    <properties>
        <java.version>1.8</java.version>
    </properties>

    <dependencies>
        <!-- Spring Web 依赖 -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
    </dependencies>
    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>
</project>

启动类:

package site.longkui;


import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class Application {
    public static void main(String[] args) {
        SpringApplication.run(Application.class, args);
    }
}

接口:

package site.longkui.controller;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

@Controller
public class hello {
    @ResponseBody
    @RequestMapping("/hello")
    public String hello() {
        return "Hello World!";
    }
}

在这里插入图片描述

运行 mvn clean install,将项目打包。
在target文件夹中找到一个xxx.jar的包。

2.编写dockerfile文件

dockerfile是一个文本文件,其中包含一个一个的指令,用指令来说明要执行什么操作来构建镜像。将来docker可以根据dockerfile帮我们构建镜像。
在这里插入图片描述
那么根据我们的命令,我们创建dockerfile文件参考如下:

#基础镜像
FROM openjdk:11.0-jre-buster
#拷贝jar包
copy test.jar /app.jar
#入口
ENTRYPOINT ["java","-jar","/app.jar"]

3.创建镜像

我们把dockerfile文件和jar包都拷贝到linux服务器下,放到同一个文件下。

然后使用docker build -t myImage:1.0 . 方式创建镜像。其中,-t表示给镜像起名。

注意,命令最后有个点,表示当前目录。

我们cd到服务器上的文件所在目录,

docker build -t test .

注意命令后面的点

在这里插入图片描述
可以看到,正常构建镜像。

我们尝试运行一下镜像,

 docker run -d --name testjar -p 80:8081 test

这个地方的8081端口是我们一开始编写java代码配置的端口,我们用宿主机的80端口映射我们容器内的8081端口。

然后访问我们刚才的网址:

在这里插入图片描述
可以看到,我们正常访问我们创建的容器。

4.将镜像推送到仓库

到上一步我们已经可以在本地使用镜像创建容器了。但是有的时候不一定是单机部署,有可能需要在其他地方部署,这个时候如果把制作好的镜像推送到公共仓库,每次用的时候直接从仓库拉下来镜像创建容器即可。

我们参考开始的文章,在阿里云创建一个docker仓库。

根据阿里云给的命令,我们把创建的镜像推送到阿里云仓库中。

在这里插入图片描述
推送成功后,我们就可以根据阿里云的获取地址进行镜像的拉取操作,非常方便。

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐