使用sprinboot打包成docker镜像并且推送到阿里云服务

前章回顾

上一章节中,我们简单提到了在Linux上安装Docker,讲解了简单的Docker的一些命令。而Docker的强大之处就是,可以通过镜像来下载运行项目,而镜像又可以上传到仓库中,提供给其他服务器使用。因此在这章节中,我们就讲解如何把springboot项目打包成镜像,并且如何运行。

构建spring-boot项目

安装插件docker intergration

通过该插件可以很好得显示docker文件

在阿里云上开通镜像服务

开通地址: https://cr.console.aliyun.com

然后创建一个镜像仓库,在基本信息中,可以看到镜像仓库的地址。

springboot的yml文件配置

server:
  port: @server.port@

spring:
  application:
    name: @artifactId@

在maven的setting文件中,添加如下配置


      
    docker-aliyun
    
    [email protected]
    
    abcdef
    
       
       [email protected]
    


pom文件

具体的源码大家可以从码云上下载。我这里只是大概列举一下。

  • 在pom文件中,添加几个属性
    
        UTF-8
        UTF-8
        1.8
        
        7000
        
        xxxx
        xxx
    

其中,docker.repostory表示仓库地址,docker.registry.name表示仓库名称。可以通过阿里云镜像查看。

配置docker插件

  
            
                com.spotify
                docker-maven-plugin
                1.0.0
                
                                        ${docker.repostory}/${docker.registry.name}/${project.artifactId}:${project.version}
                    
                    src/main/docker
                    
                    http://ip:2375
                    
                        
                            /
                            ${project.build.directory}
                            ${project.build.finalName}.jar
                        
                    

                    
                    docker-aliyun
                    
                    ${docker.repostory}
                    
                    true

                
            
            

编写DockerFile文件

FROM openjdk:8-jre
VOLUME /tmp
ADD springboot-docker-1.0.0.jar app.jar
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]

注意:ADD 后面请按照实际情况填写自己 package 生成的 jar 文件名称。

推送

  • 命令
    mvn clean package docker:build -DpushImage

  • 在阿里云镜像服务可以看到

  • 在服务器上可以看到自己刚刚打上去的版本

  • 启动

docker run -d -p 7000:7000 registry.cn-shenzhen.aliyuncs.com/xxx/xxx:1.0.0

  • 查看运行情况和运行日志
docker ps

docker logs -f 容器ID
  • 访问

ip:7000/test

你可能感兴趣的:(docker)