springboot构建docker镜像并推送到阿里云

 更新时间:2023年05月05日 09:23:39   作者:越走越远的风  
本文主要介绍了springboot构建docker镜像并推送到阿里云,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

1.构建springboot项目

工程目录如下

image.png

UserController

package com.fandf.test.controller;  
import org.springframework.web.bind.annotation.GetMapping;  
import org.springframework.web.bind.annotation.RequestMapping;  
import org.springframework.web.bind.annotation.RestController;  
/**  
* @author fandongfeng  
*/  
@RestController  
@RequestMapping("/api/v1/user")  
public class UserController {  
    @GetMapping("name")  
    public String getName() {  
        return "zhangsan";  
    }  
}

application.yml

server:  
  port: 9001

pom.xml

<?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">  
    <parent>  
        <artifactId>SpringCloudLearnin</artifactId>  
        <groupId>com.fandf</groupId>  
        <version>1.0.0</version>  
    </parent>  
    <modelVersion>4.0.0</modelVersion>  
    <artifactId>fdf-test</artifactId>  
    <properties>  
        <maven.compiler.source>8</maven.compiler.source>  
        <maven.compiler.target>8</maven.compiler.target>  
    </properties>  
    <dependencies>  
        <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>  
                <executions>  
                    <execution>  
                        <goals>  
                            <goal>repackage</goal>  
                        </goals>  
                    </execution>  
                </executions>  
                <configuration>  
                    <!-- 指定启动类 -->  
                    <mainClass>com.fandf.test.Application</mainClass>  
                </configuration>  
            </plugin>  
            <plugin>  
                <groupId>io.fabric8</groupId>  
                <artifactId>docker-maven-plugin</artifactId>  
                <configuration>  
                    <images>  
                        <image>  
                            <!-- 命名空间/仓库名称:镜像版本号-->  
                            <name>fandf/${project.name}:${project.version}</name>  
                            <alias>${project.name}</alias>  
                            <build>  
                            <!-- 指定dockerfile文件的位置-->  
                                <dockerFile>${project.basedir}/Dockerfile</dockerFile>  
                                <buildOptions>  
                                    <!-- 网络的配置,与宿主主机共端口号-->  
                                    <network>host</network>  
                                </buildOptions>  
                            </build>  
                        </image>  
                    </images>  
                </configuration>  
                <executions>  
                    <execution>  
                        <id>docker-exec</id>  
                        <!-- 绑定mvn deploy阶段,当执行mvn deploy时 就会执行docker build 和docker push-->  
                        <phase>deploy</phase>  
                        <goals>  
                            <goal>build</goal>  
                        <!-- <goal>push</goal>-->  
                        </goals>  
                    </execution>  
                </executions>  
            </plugin>  
        </plugins>  
    </build>  
</project>

插件如果无法下载,可引入依赖

<dependency>
    <groupId>io.fabric8</groupId>
    <artifactId>docker-maven-plugin</artifactId>
    <version>0.40.1</version>
</dependency>

2.编写Dockerfile

# 基础镜像使用Java
FROM java:8
# 作者
MAINTAINER fandongfeng
# VOLUME 指定了临时文件目录为/tmp。
# 其效果是在主机 /var/lib/docker 目录下创建了一个临时文件,并链接到容器的/tmp
VOLUME /tmp
# 将jar包添加到容器中并更名为app.jar
# 此处可以把具体的jar包名称写出来,我这里直接用*号代替了
ADD target/*.jar app.jar
# 指定容器需要映射到主机的端口
EXPOSE 9091
ENTRYPOINT ["java","-jar","app.jar"]

项目maven plugins会有docker插件,点击docekr build

image.png

镜像已被上传到本地

C:\Users\Administrator>docker images
REPOSITORY                           TAG                                                     IMAGE ID       CREATED             SIZE
fandf/fdf-test                       1.0.0                                                   1a4b935b4d57   About an hour ago   684MB
java                                 8                                                       d23bdf5b1b1b   6 years ago         643MB

3.推送镜像到阿里云

登录阿里云管控台 https://cr.console.aliyun.com/cn-chengdu/instances
选择容器镜像服务

image.png

新建镜像仓库

image.png

image.png

按照提示上传镜像

C:\Users\Administrator>docker login --username=17602117026 registry.cn-chengdu.aliyuncs.com
Password:
Login Succeeded
Logging in with your password grants your terminal complete access to your account.
For better security, log in with a limited-privilege personal access token. Learn more at https://docs.docker.com/go/access-tokens/
C:\Users\Administrator>docker images
REPOSITORY                           TAG                                                     IMAGE ID       CREATED             SIZE
fandf/fdf-test                       1.0.0                                                   1a4b935b4d57   About an hour ago   684MB
java                                 8                                                       d23bdf5b1b1b   6 years ago         643MB
C:\Users\Administrator>docker tag 1a4b935b4d57 registry.cn-chengdu.aliyuncs.com/fandf/k8s-test:1.0.0
C:\Users\Administrator>docker push registry.cn-chengdu.aliyuncs.com/fandf/k8s-test:1.0.0
The push refers to repository [registry.cn-chengdu.aliyuncs.com/fandf/k8s-test]
83d067b86ae9: Pushed
35c20f26d188: Pushed
c3fe59dd9556: Pushed
6ed1a81ba5b6: Pushed
a3483ce177ce: Pushed
ce6c8756685b: Pushed
30339f20ced0: Pushed
0eb22bfb707d: Pushed
a2ae92ffcd29: Pushed
1.0.0: digest: sha256:44a137e54a48e52252ff9ce64714de8311d206f1ffaf0f6ad39dd01ab1fe0455 size: 2212
C:\Users\Administrator>docker images
REPOSITORY                                        TAG                                                     IMAGE ID       CREATED             SIZE
fandf/fdf-test                                    1.0.0                                                   1a4b935b4d57   About an hour ago   684MB
registry.cn-chengdu.aliyuncs.com/fandf/k8s-test   1.0.0                                                   1a4b935b4d57   About an hour ago   684MB
java                                              8                                                       d23bdf5b1b1b   6 years ago         643MB
C:\Users\Administrator>

删除掉本地镜像,从阿里云拉取镜像并运行

C:\Users\Administrator>docker images
REPOSITORY                                        TAG                                                     IMAGE ID       CREATED         SIZE
fandf/fdf-test                                    1.0.0                                                   1a4b935b4d57   2 hours ago     684MB
registry.cn-chengdu.aliyuncs.com/fandf/k8s-test   1.0.0                                                   1a4b935b4d57   2 hours ago     684MB
java                                              8                                                       d23bdf5b1b1b   6 years ago     643MB
C:\Users\Administrator>docker rmi registry.cn-chengdu.aliyuncs.com/fandf/k8s-test:1.0.0
Untagged: registry.cn-chengdu.aliyuncs.com/fandf/k8s-test:1.0.0
Untagged: registry.cn-chengdu.aliyuncs.com/fandf/k8s-test@sha256:44a137e54a48e52252ff9ce64714de8311d206f1ffaf0f6ad39dd01ab1fe0455
C:\Users\Administrator>docker images
REPOSITORY                           TAG                                                     IMAGE ID       CREATED         SIZE
fandf/fdf-test                       1.0.0                                                   1a4b935b4d57   3 hours ago     684MB
java                                 8                                                       d23bdf5b1b1b   6 years ago     643MB
C:\Users\Administrator>docker pull registry.cn-chengdu.aliyuncs.com/fandf/k8s-test:1.0.0
1.0.0: Pulling from fandf/k8s-test
Digest: sha256:44a137e54a48e52252ff9ce64714de8311d206f1ffaf0f6ad39dd01ab1fe0455
Status: Downloaded newer image for registry.cn-chengdu.aliyuncs.com/fandf/k8s-test:1.0.0
registry.cn-chengdu.aliyuncs.com/fandf/k8s-test:1.0.0
C:\Users\Administrator>docker images
REPOSITORY                                        TAG                                                     IMAGE ID       CREATED         SIZE
fandf/fdf-test                                    1.0.0                                                   1a4b935b4d57   3 hours ago     684MB
registry.cn-chengdu.aliyuncs.com/fandf/k8s-test   1.0.0                                                   1a4b935b4d57   3 hours ago     684MB
java                                              8                                                       d23bdf5b1b1b   6 years ago     643MB
C:\Users\Administrator>docker run -d -p 9001:9001 registry.cn-chengdu.aliyuncs.com/fandf/k8s-test:1.0.0
495b53c2b820bccd7ec34737a58604838cdbe8e0030b9eed57c63d5f81404bd2
C:\Users\Administrator>curl 127.0.0.1:9001/api/v1/user/name
zhangsan

到此这篇关于springboot构建docker镜像并推送到阿里云的文章就介绍到这了,更多相关springboot docker镜像内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 使用@PathVariable时候无法将参数映射到变量中的解决

    使用@PathVariable时候无法将参数映射到变量中的解决

    这篇文章主要介绍了使用@PathVariable时候无法将参数映射到变量中的解决方案,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-08-08
  • JVM中的守护线程示例详解

    JVM中的守护线程示例详解

    这篇文章主要给大家介绍了关于JVM中守护线程的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-01-01
  • Java实现分布式锁的3种方法总结

    Java实现分布式锁的3种方法总结

    分布式锁是一种用于保证分布式系统中多个进程或线程同步访问共享资源的技术,同时它又是面试中的常见问题,所以我们本文就重点来看分布式锁的具体实现,希望对大家有所帮助
    2023-09-09
  • 在RabbitMQ中实现Work queues工作队列模式

    在RabbitMQ中实现Work queues工作队列模式

    这篇文章主要介绍了如何在RabbitMQ中实现Work queues模式,代码详细,解释清晰,可以帮助大家更好理解java,对这方面感兴趣的朋友可以参考下
    2021-04-04
  • java实时监控文件行尾内容的实现

    java实时监控文件行尾内容的实现

    这篇文章主要介绍了java实时监控文件行尾内容的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-02-02
  • 一文带你了解Spring的Bean初始化过程和生命周期

    一文带你了解Spring的Bean初始化过程和生命周期

    Spring的核心功能有三点IOC、DI、AOP,IOC则是基础,也是Spring功能的最核心的点之一。今天一起来总结下Spring中Bean是怎么被创建出来的
    2023-03-03
  • JedisPool资源池优化方法

    JedisPool资源池优化方法

    这篇文章主要介绍了JedisPool资源池优化方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-03-03
  • java return用法实例详解

    java return用法实例详解

    在本篇文章里小编给大家整理的是关于java return用法以及相关知识点总结,需要的朋友们参考下。
    2019-08-08
  • 解决报java.lang.AssertionError错误的问题

    解决报java.lang.AssertionError错误的问题

    这篇文章主要介绍了解决报java.lang.AssertionError错误的问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-05-05
  • 解决@Cacheable在同一个类中方法调用不起作用的问题

    解决@Cacheable在同一个类中方法调用不起作用的问题

    这篇文章主要介绍了解决@Cacheable在同一个类中方法调用不起作用的问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-07-07

最新评论