IDEA直連服務器,進行項目Docker部署,實現一鍵部署、啓動

一、前言

     在項目中使用docker後,經過docker的方式來啓動系統,須要通過編譯、打jar包、打鏡像、啓動等階段。在各類自動化工具的出現,對打包、部署等工做帶來了便利,通常都會選擇git+Jenkins方式進行自動化部署。在面對本地開發調試階段,若是過度的依賴自動化工具,會顯得並非那麼的方便,好比:頻繁的代碼調整修改,卻要進行代碼的git提交、登陸Jenkins進行部署,這樣的頻繁操做,甚至會讓你發瘋的。html

     在開發階段,對應開發人員接觸最多的就是開發工具IDE,如:IDEA中就提供了好多不錯的插件供開發人員使用。針對上述問題,IDEA也提供的一些插件來解決這類問題。java

    本文主要來說述,如何在IDEA中經過插件來部署docker項目,方便開發階段的調試部署工做。git

 

二、準備工做

  • Centos7 docker環境
  • IDEA開發環境
  • SpringBoot項目(其餘類型的項目都可)

(若是你還不對安裝docker環境,或有疑問,可參考以前的一篇文件《CentOS7 下Docker安裝、啓動》)docker

 

三、IDEA直連docker服務器

3.1 開啓docker遠程訪問

爲了確保本地IDEA可以訪問服務器上的docker環境,則須要開發對docker的2375端口的訪問權限。服務器

(1) 打開docker服務啓動配置文件/usr/lib/systemd/system/docker.service,在ExecStart=中追加-H tcp://0.0.0.0:2375 -H unix://var/run/docker.sock,以下:app

(2) 重啓docker環境dom

systemctl daemon-reloadmaven

systemctl start dockertcp

(3) 關閉防火牆工具

關閉防火牆:

   systemctl stop firewalld.service 

禁止firewall開機啓動:

   systemctl disable firewalld.service

(4) 本地telnet驗證2375端口

在本地(即:IDEA開發環境機器)cmd中,經過telnet命令鏈接docker環境的2375端口,以下:

顯示以下,則代表能夠遠程訪問。

3.2 IDEA上安裝docker插件

    安裝Docker integration插件,若是已安裝,請忽略本步驟。

    打開File->Settings->Plugins,搜索Docker,能夠看見Docker integration插件,安裝提示進行一步步安裝,安裝完畢重啓IEDA。

重啓IDEA後,打開File->Settings->Build,Execution,Deployment,若是有Docker列表,則說明插件安裝成功。

3.3 鏈接配置docker服務器

    打開File->Settings->Build,Execution,Deployment->Docker,按照下圖進行配置便可。

說明:步驟③ 自定義命名便可

          步驟④ 填寫docker環境地址,格式爲:tcp://ip:2375 URL填寫完後,進行自動驗證,並顯示步驟⑤成功提示。

3.4 直連docker服務器使用

語言 方法
7729 1Wq9Ndjf37
2V164 抖音如何刷粉絲
9192 2007/11/18 02:39:35

    在IDEA中,以下圖操做,便可直連docker服務器,可查看docker環境上全部鏡像、容器,並支持重啓、刪除等一系列操做,更多功能使用時再細細挖掘吧。

 

四、IDEA中項目Docker部署

4.1 使用docker-maven-plugin插件

     在項目pom.xml中使用docker-maven-plugin插件,即可完成從編譯、打包、打鏡像、部署等流程。在pom.xml  <build><plugins>...</plugins></build>中添加docker-maven-plugin插件配置,以下:

<!--使用docker-maven-plugin插件-->
<plugin>
    <groupId>com.spotify</groupId>
    <artifactId>docker-maven-plugin</artifactId>
    <version>1.0.0</version>

    <!--將插件綁定在某個phase執行-->
    <executions>
        <execution>
            <id>build-image</id>
            <!--將插件綁定在package這個phase上。也就是說,用戶只需執行mvn package ,就會自動執行mvn docker:build-->
            <phase>package</phase>
            <goals>
                <goal>build</goal>
            </goals>
        </execution>
    </executions>

    <configuration>
        <!--指定生成的鏡像名-->
        <imageName>${project.artifactId}</imageName>
        <!--指定標籤-->
        <imageTags>
            <imageTag>latest</imageTag>
        </imageTags>

        <!-- 指定 Dockerfile 路徑-->
        <dockerDirectory>${project.basedir}</dockerDirectory>
        <!--指定遠程docker環境地址-->
        <dockerHost>http://192.168.1.1:2375</dockerHost>
        <!-- 複製jar包到docker容器指定目錄配置 -->
        <resources>
            <resource>
                <targetPath>/</targetPath>
                <!--jar包所在的路徑,此處配置的 即對應target 目錄-->
                <directory>${project.build.directory}</directory>
                <!-- 須要包含的jar包,這裏對應的是 Dockerfile中添加的文件名 -->
                <include>${project.build.finalName}.jar</include>
            </resource>
        </resources>
    </configuration>
</plugin>

4.2 建立Dockerfile文件

     在工程根目錄下新建Dockerfile文件,以下:

FROM openjdk:8-alpine
#擁有者
LABEL maintainer "xcbeyond"

VOLUME [ "/tmp" ]
# app.jar是你項目的jar包
COPY app.jar /app.jar
#對外暴露的端口
EXPOSE 1000

ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]

4.3 Build

     在IDEA的右邊找到Maven Projects,找到Lifecycle,雙擊package打包,第一次打包比較慢,須要耐心等等。

 

看到下面就說明成功了

 

4.4 部署、啓動

以下操做建立docker容器,並啓動。

  • Image ID: 是打包生成的鏡像名
  • Container name: 容器名字,自定義便可。
  • Bind ports: 是docker對外暴露的端口

在IDEA中部署、啓動後,可登錄docker環境,經過docker ps命令能夠發現容器已經啓動了。

 

是否是很帥、很方便,具體怎麼使用,就根據實際需求進行靈活使用了。

相關文章
相關標籤/搜索