使用DockerMaven插件与Docker私有仓库来快速部署项目

微服务部署有两种方法:
(1)手动部署:首先基于源码打包生成jar包(或war包),将jar包(或war包)上传至虚
拟机并拷贝至JDK容器。
(2)通过Maven插件自动部署。
对于数量众多的微服务,手动部署无疑是非常麻烦的做法,并且容易出错。所以我们这
里学习如何自动部署,这也是企业实际开发中经常使用的方法。
 
1.安装docker私有仓库

1)拉取私有仓库 镜像

 

docker pull registry

 

2)启动私有仓库容器

docker run -di --name=registry -p 5000:5000 registry

  

3) 打开浏览器查看是否搭建成功

(换成自己ip)192.168.40.128:5000/v2/_catalog

  

4) docker信任私有仓库地址,修改daemon.json

vim /etc/docker/daemon.json

添加

"insecure-registries":["192.168.40.128(换成你自己IP):5000"]

  

5)重启Docker且启动仓库registry

 

systemctl restart docker

docker start registry

 

  

2.安装基础镜像JDK.1.8

1)  上传 linux的jdk1.8安装包

 

2)创建目录并把jdk包移动到目录

mkdir -p /usr/local/dockerjdk8

mv jdk-8u171-linux-x64.tar.gz /usr/local/dockerjdk8

cd /usr/local/dockerjdk8

  

3)创建Dockerfile文件

vi Dockerfile

输入


FROM centos:7
MAINTAINER itcast
WORKDIR /usr
RUN mkdir /usr/local/java
ADD jdk-8u171-linux-x64.tar.gz /usr/local/java/

ENV JAVA_HOME /usr/local/java/jdk1.8.0_171
ENV JRE_HOME $JAVA_HOME/jre
ENV CLASSPATH $JAVA_HOME/bin/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib:$CLASSPATH
ENV PATH $JAVA_HOME/bin:$PATH

  

4)构建镜像

docker build -t='jdk1.8' .

  

 3.配置docker可以被远程访问

1)备份一下docker.service文件

cp /lib/systemd/system/docker.service /lib/systemd/system/docker.service.bak

  

2)在docker.service文件中ExecStart=后添加配置

 

vim /lib/systemd/system/docker.service

ExecStart=后添加配置

-H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock

 

  

3)刷新配置,重启服务

systemctl daemon-reload

systemctl restart docker

docker start registry

  

4)在需要部署的项目的pom文件上面添加插件

<build>
        <finalName>luojiang-demo</finalName>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <!--这里写上main方法所在类的路径-->
                <configuration>
                    <mainClass>com.example.demo.LuojiangDemoApplication</mainClass>
                </configuration>
                <executions>
                    <execution>
                        <goals>
                            <goal>repackage</goal>
                        </goals>
                    </execution>
                </executions>
            </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>服务器的ip: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://私服所在服务器ip:2375</dockerHost>
                </configuration>
            </plugin>
        </plugins>
    </build>

  

5)本地打包或执行构建推送命令

mvn install

mvn package docker:build -DpushImage

  

6)查看上传的docker镜像, 查看私有仓库镜像

docker images

 浏览器中访问

(你自己的IP)192.168.40.128:5000/v2/_catalog

  

7) 启动并测试上传的系统

 

docker run -di --name=base -p 8080:8080 192.168.40.128:5000/springboot_v2:2.0.0.RELEASE(宿主机端口:容器端口 镜像名称:版本号)

 

  

 

 

 

posted @ 2020-06-21 19:08  shifu204  阅读(1070)  评论(0编辑  收藏  举报