使用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(宿主機端口:容器端口 鏡像名稱:版本號)

 

  

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM