Docker生成web项目镜像image的三种方式

第一种:

  1、 先通过maven插件打包生成jar文件、上传到linux系统上,同时在jar文件的同级目录下,生成Dockerfile文件。

Dockerfile文件的内容如下:

FROM java:8
VOLUME ./tmp
add eureka-server-1.0-SNAPSHOT.jar app.jar
#RUN bach -c 'touch /app.jar'
EXPOSE 8761
ENTRYPOINT ["java","-jar","/app.jar"]

   2、构建docker镜像,构建命令如下:

  docker build -t ck/eureka-server:0.02 .

  3、生成docker镜像文件,如下所示:

Docker生成web项目镜像image的三种方式_第1张图片

  4、运行docker镜像,生成容器,命令如下:

 docker run -p 8706:1111 ck/eureka-server:0.02

访问http://ip:8706,可以访问eureka主页,容器启动成功;

 

第二种:

   直接通过maven插件生成镜像文件:

  1、在项目中引入docker-maven-plugin插件:

         
                com.spotify
                docker-maven-plugin
                0.4.12
                
                    
                    
                    microservice-discovery-eureka
                    java
                    ["java", "-jar", "/${project.build.finalName}.jar"] 
                    
                    
                        
                            /
                            ${project.build.directory}
                            ${project.build.finalName}.jar
                        
                    
                
            

2、配置DOCKER_HOST环境变量:

Docker生成web项目镜像image的三种方式_第2张图片

3、运行镜像生成命令:

mvn clean package docker:build

4、登陆docker主机查看镜像文件:

Docker生成web项目镜像image的三种方式_第3张图片

5、启动:略 

第三种:第二种方式缺乏灵活性,现在介绍第三种方式,还是利用Dockerfile构建镜像:

1、在项目的src/main下新建一个docker目录:

Docker生成web项目镜像image的三种方式_第4张图片

Dockerfile的内容如下:

FROM java:8
VOLUME ./tmp
add eureka-server-1.0-SNAPSHOT.jar app.jar
#RUN bach -c 'touch /app.jar'
EXPOSE 8761
ENTRYPOINT ["java","-jar","/app.jar"]

2、 修改pom.xml文件,将标签去掉,同时加上标签,指明Dockerfile的文件路径。

              
                com.spotify
                docker-maven-plugin
                0.4.12
                
                    
                    
                    ck/eureka-server:0.01
                    
                    ${project.basedir}/src/main/docker
                    
                        
                            /
                            ${project.build.directory}
                            ${project.build.finalName}.jar
                        
                    
                
            

3、运行镜像生成命令:

mvn clean package docker:build

 

你可能感兴趣的:(docker)