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

第一种:

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

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

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的二种方式

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

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

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

 

第二种:

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

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

         <plugin>
                <groupId>com.spotify</groupId>
                <artifactId>docker-maven-plugin</artifactId>
                <version>0.4.12</version>
                <configuration>
                    <!-- 注意imageName一定要是符合正则[a-z0-9-_.]的,否则构建不会成功 -->
                    <!-- 详见:https://github.com/spotify/docker-maven-plugin    Invalid 
                    repository name ... only [a-z0-9-_.] are allowed-->
                    <imageName>microservice-discovery-eureka</imageName>
                    <baseImage>java</baseImage>
                    <entryPoint>["java", "-jar", "/${project.build.finalName}.jar"] 
                    </entryPoint>
                    <resources>
                        <resource>
                            <targetPath>/</targetPath>
                            <directory>${project.build.directory}</directory>
                            <include>${project.build.finalName}.jar</include>
                        </resource>
                    </resources>
                </configuration>
            </plugin>

2、配置DOCKER_HOST环境变量:

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

3、运行镜像生成命令:

mvn clean package docker:build

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

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

5、启动:略