Loading

DockerMaven插件

DockerMaven插件

微服务部署有两种方法:
(1)手动部署:首先基于源码打包生成jar包(或war包),将jar包(或war包)上传至虚拟机并拷贝至JDK容器。
(2)通过Maven插件自动部署。
对于数量众多的微服务,手动部署无疑是非常麻烦的做法,并且容易出错。所以我们这里学习如何自动部署,这也
是企业实际开发中经常使用的方法。
Maven插件自动部署步骤:
(1)修改宿主机的docker配置,让其可以远程访问
vi /lib/systemd/system/docker.service
其中ExecStart=后添加配置 -H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock
修改后如下:
(2)刷新配置,重启服务
systemctl daemon-reload 
systemctl restart docker 
docker start registry
(3)在工程pom.xml 增加配置 
<build>
    <finalName>app</finalName>
    <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
        </plugin>
        <!-- docker的maven插件,官网:https://github.com/spotify/docker-maven-plugin
    -->
        <plugin>
            <groupId>com.spotify</groupId>
            <artifactId>docker-maven-plugin</artifactId>
            <version>0.4.13</version>
            <configuration>
            <imageName>192.168.184.141:5000/${project.artifactId}:${project.version}</imageName>
                <baseImage>jdk1.8</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>
                <dockerHost>http://192.168.184.141:2375</dockerHost>
            </configuration>
        </plugin>
    </plugins>
</build>

以上配置会自动生成Dockerfile

FROM jdk1.8
ADD app.jar /
ENTRYPOINT ["java","-jar","/app.jar"]

(5)在windows的命令提示符下,进入工程tensquare_parent所在的目录

mvn install

进入tensquare_base 所在的目录,输入以下命令,进行打包和上传镜像

mvn docker:build -DpushImage

执行后,会有如下输出,代码正在上传

(6)进入宿主机 , 查看镜像

docker images
REPOSITORY TAG IMAGE ID CREATED
SIZE
192.168.184.135:5000/tensquare_base 1.0-SNAPSHOT 83efa6b4478c 10
minutes ago 687.9 MB
192.168.184.135:5000/jdk1.8 latest 507438a0158f 6 hours
ago 584 MB
jdk1.8 latest 507438a0158f 6 hours
ago 584 MB

输出如上内容,表示微服务已经做成镜像 浏览器访问 http://192.168.184.141:5000/v2/_catalog ,输出

{"repositories":["tensquare_base"]}

浏览器访问 http://192.168.184.141:5000/v2/_catalog ,输出

{"repositories":["tensquare_base"]}

(7) 启动容器:

docker run -di --name=base -p 9001:9001 192.168.184.141:5000/tensquare_base:1.0-
SNAPSHOT

 

posted @ 2021-09-09 11:33  1640808365  阅读(412)  评论(0编辑  收藏  举报