IDEA使用Docker插件(菜鳥教程)

說明

之前docker的學習,包括鏡像拉取,容器創建等操作都需要自己手動敲命令來實現,但是如果在idea中使用Docker插件,就可以不用敲命令也可以實現對docker的操作,不得不說idea這個工具是真的強!!!本文會持續更新,不斷地擴充

本文僅為記錄學習軌跡,如有侵權,聯系刪除

註意:一般是用的服務器,作為測試這裡就采用虛擬機+Ubuntu系統的方式

一、開啟Docker遠程訪問

如果使用idea編輯器的話,可以使用docker插件來遠程使用服務器(虛擬機)上的docker,簡單方便快捷的使用docker,更重要的是使用插件可以實現項目的一鍵部署,當然這還需要一些簡單的配置。
默認的dokcer是不支持遠程訪問的,需要加點配置,開啟Docker的遠程訪問

#修改Docker服務文件,需要先切換到root用戶
vim /lib/systemd/system/docker.service
#註釋掉"ExecStart"這一行,並添加下面這一行信息
ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock -H tcp://0.0.0.0:2375

在這裡插入圖片描述

重新加載配置文件

#重新加載配置文件
systemctl daemon-reload
#重啟服務
systemctl restart docker.service
#查看配置的端口號(2375)是否開啟(非必要)
netstat -nlpt  #如果找不到netstat命令,可以先安裝一下這個工具,具體百度

在這裡插入圖片描述

註意:如果上述過程失敗的話,有下面這種方式,

首先確保端口號已經開放,這個很重要!!!,默認端口號2375

切換root用戶,命令:sudo su

編輯docker相關配置:
命令:vim /lib/systemd/system/docker.service,進入編輯頁面

在這裡插入圖片描述

找到ExecStart對應的那一行,添加代碼:-H tcp://0.0.0.0:2375 -H unix://var/run/docker.sock (按下按鍵”i”,進入編輯模式,然後就可以添加數據瞭)

在這裡插入圖片描述

保存退出,先按”esc”按鍵,然後輸入命令::wq,回車即保存。

重啟docker服務
守護進程重啟:sudo systemctl daemon-reload
重啟docker服務:sudo systemctl restart docker

查看端口號2375是否開放,出現如圖則成功

在這裡插入圖片描述

二、連接docker

使用idea的docker插件連接docker,idea默認已經下載過docker插件瞭,如果沒有的話,需要在idea下載docker插件

在這裡插入圖片描述

點擊idea的設置選項(file –> setting -> docker),新建連接

在這裡插入圖片描述

在這裡插入圖片描述

連接成功之後就可以使用服務器(虛擬機)上的docker瞭

在這裡插入圖片描述

三、鏡像的拉取

idea可以通過可視化的方式拉取鏡像,不用自己去敲命令

在這裡插入圖片描述

在這裡插入圖片描述

在這裡插入圖片描述

有時候會出現拉取的時間超時的情況,可以配置一下國內的鏡像獲取阿裡雲的加速器

在這裡插入圖片描述

四、容器的創建與運行

創建並且運行docker容器

在這裡插入圖片描述

在這裡插入圖片描述

創建成功之後可以看到新創建的容器,也可以在服務器(虛擬機)上用docker命令查看

在這裡插入圖片描述

重啟容器、停止容器和刪除容器等操作

在這裡插入圖片描述

五、docker一鍵部署springboot項目

傳統的docker部署springboot項目,需要自己手動配置Dockerfile文件,還需要將生成的jar包跟Dockerfile文件一起上傳到服務器,整個流程下來很麻煩,如果用idea的docker插件就可以實現一鍵部署springboot項目,簡單方便。

首先需要引入docker的構建工具

    <build>
        <!-- 引用我們的項目名字 -->
        <finalName>${project.artifactId}</finalName>

        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </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>
                        <!--用戶隻需執行mvn package ,就會自動執行mvn docker:build-->
                        <phase>package</phase>
                        <goals>
                            <goal>build</goal>
                        </goals>
                    </execution>
                </executions>

                <configuration>
                    <!--指定生成的鏡像名,這裡是我們的作者名+項目名-->
                    <imageName>cainiao/${project.artifactId}</imageName>

                    <!--指定標簽 這裡指定的是鏡像的版本,我們默認版本是latest-->
                    <imageTags>
                        <imageTag>latest</imageTag>
                    </imageTags>

                    <!--指定基礎鏡像jdk1.8-->
                    <baseImage>java</baseImage>
                    <!--
                    鏡像制作人本人信息
                    <maintainer>[email protected]</maintainer>
                    -->
                    <!--切換到ROOT目錄-->
                    <workdir>/ROOT</workdir>

                    <!--查看我們的java版本-->
                    <cmd>["java", "-version"]</cmd>

                    <!--${project.build.finalName}.jar是打包後生成的jar包的名字-->
                    <entryPoint>["java", "-jar", "/${project.build.finalName}.jar"]</entryPoint>

                    <!--指定遠程 docker api地址-->
                    <dockerHost>http://192.168.29.133: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>
        </plugins>
    </build>

ok,接下來隻要先點擊clean清除之前的所有打包的文件,然後再點擊package打包文件即可完成鏡像的構建,真正的一鍵部署

在這裡插入圖片描述

在這裡插入圖片描述

到此鏡像構建成功,接下來隻要創建容器跑起來即可

在這裡插入圖片描述

在這裡插入圖片描述

通過ip訪問

在這裡插入圖片描述

至此,一鍵構建部署springboot項目成功!

可能的錯誤:

“java.lang.NoClassDefFoundError:javax / activation / DataSource”(tomcat 9.0.12)“

網上查瞭一下,發現這樣的一段話,具體看這裡

在這裡插入圖片描述

剛好我想起來這個項目之前開發用的是jdk8,然後我現在用的jdk11,所以在構建的時候會出現這個問題,我感覺應該是這個問題導致,雖然構建成功瞭,運行訪問都沒有問題,建議開發跟構建docker的時候jdk版本保持一致。

到此這篇關於IDEA使用Docker插件(菜鳥教程)的文章就介紹到這瞭,更多相關IDEA使用Docker內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!

推薦閱讀: