溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

IDEA 集成 docker 實現(xiàn)遠(yuǎn)程部署的方法

發(fā)布時間:2021-07-05 16:29:11 來源:億速云 閱讀:354 作者:chen 欄目:開發(fā)技術(shù)

這篇文章主要介紹“IDEA 集成 docker 實現(xiàn)遠(yuǎn)程部署的方法”,在日常操作中,相信很多人在IDEA 集成 docker 實現(xiàn)遠(yuǎn)程部署的方法問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”IDEA 集成 docker 實現(xiàn)遠(yuǎn)程部署的方法”的疑惑有所幫助!接下來,請跟著小編一起來學(xué)習(xí)吧!

1. docker 服務(wù)器開啟遠(yuǎn)程訪問

登錄 docker 所在的遠(yuǎn)程服務(wù)器,使用命令 vim /usr/lib/systemd/system/docker.service 修改配置文件,需注意,修改時確認(rèn)自己的賬戶擁有相應(yīng)權(quán)限

主要操作是找到ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock 這一行,注釋掉,重新添加一行,在后面新增-H tcp://0.0.0.0:2375表示打開2375端口,支持遠(yuǎn)程連接 docker

#ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock
ExecStart=/usr/bin/dockerd -H tcp://0.0.0.0:2375 -H unix://var/run/docker.sock

保存配置文件后需要將配置重新載入,重啟 docker,可使用如下命令

systemctl daemon-reload
systemctl restart docker.service

2. IDEA 安裝 docker 插件

一般比較新的 IDEA 都綁定了 docker 插件,如未綁定在 IDEA 的 Plugins 中搜索安裝 docker 插件即可,安裝完畢重啟生效

IDEA 集成 docker 實現(xiàn)遠(yuǎn)程部署的方法

重啟后可以通過Build,Execution,Depolyment ——> Docker 路徑找到 Docker 插件,再此新增一個連接遠(yuǎn)程 Docker 的配置

IDEA 集成 docker 實現(xiàn)遠(yuǎn)程部署的方法

連接成功后,在 IDEA 插件面板中可以查看遠(yuǎn)程 docker 主機(jī)的鏡像和容器,也可以查看容器運行的日志等信息

IDEA 集成 docker 實現(xiàn)遠(yuǎn)程部署的方法

3. docker 鏡像構(gòu)建上傳

要將本地打包的 jar 構(gòu)建成 docker 鏡像,需要在項目 pom 文件中添加構(gòu)建插件配置。如下是一個 SpringBoot 項目模塊的打包配置,關(guān)鍵點如下:

構(gòu)建一個名稱為 nathan-api 的 jar 包,首先添加 spring-boot-maven-plugin 插件添加一個 docker-maven-plugin 插件,配置 docker 鏡像的各個關(guān)鍵屬性。注意,這個插件會下載 com.spotify.docker-maven-plugin jar 包,如下載出錯更換幾個版本試試, 版本列表可參考 Maven 中央倉庫
 <build>
     <finalName>nathan-api</finalName>
     <plugins>
         <plugin>
             <groupId>org.springframework.boot</groupId>
             <artifactId>spring-boot-maven-plugin</artifactId>
             <version>2.4.2</version>
             <executions>
                 <execution>
                     <goals>
                         <goal>repackage</goal>
                     </goals>
                 </execution>
             </executions>
         </plugin>

         <plugin>
             <groupId>com.spotify</groupId>
             <artifactId>docker-maven-plugin</artifactId>
             <version>1.1.0</version>
             <!--將插件綁定在某個phase執(zhí)行-->
             <executions>
                 <execution>
                     <id>build-image</id>
                     <!--用戶只需執(zhí)行mvn package ,就會自動執(zhí)行mvn docker:build-->
                     <phase>package</phase>
                     <goals>
                         <goal>build</goal>
                     </goals>
                 </execution>
             </executions>
             <configuration>
                 <!--指定docker文件目錄-->
                 <dockerDirectory>${project.basedir}/docker</dockerDirectory>
                 <!--指定生成的鏡像名-->
                 <imageName>${project.artifactId}</imageName>
                 <!--指定標(biāo)簽-->
                 <imageTags>
                     <imageTag>latest</imageTag>
                 </imageTags>
                 <!--指定遠(yuǎn)程 docker api地址-->
                 <dockerHost>http://xxx.168.146.63:2375</dockerHost>
                 <!-- 這里是復(fù)制 jar 包到 docker 容器指定目錄配置 -->
                 <resources>
                     <resource>
                         <targetPath>/</targetPath>
                         <!--jar 包所在的路徑  此處配置的 即對應(yīng) target 目錄-->
                         <directory>${project.build.directory}</directory>
                         <!-- 需要包含的 jar包 ,這里對應(yīng)的是 Dockerfile 中添加的文件名 -->
                         <include>${project.build.finalName}.jar</include>
                     </resource>
                 </resources>
             </configuration>
         </plugin>

     </plugins>
 </build>

上一步驟中在 docker 的 maven 插件中配置了 docker 文件的目錄,指定的是模塊根目錄下的 docker 文件夾,則創(chuàng)建一個與 src 平級的名稱為 docker 的目錄,在其中新建一個名稱為 Dockerfile 的文件,其內(nèi)容如下:

FROM java:8
VOLUME /tmp
# 將打包好的 jar 復(fù)制到 app.jar 中
ADD nathan-api.jar app.jar
EXPOSE 20561
# 以下為 jar 包啟動命令配置
ENTRYPOINT ["java", "-Djava.security.egd=file:/dev/./urandom","-Duser.timezone=GMT+8", "-jar", "app.jar"]

經(jīng)過以上配置,已經(jīng)將構(gòu)建 docker 鏡像的動作綁定到了 maven 的 package 打包命令,則執(zhí)行打包即可

筆者在這一步遇到過 ADD failed: file not found in build context or excluded by .dockerignore報錯,主要問題是沒有找到 Dockerfile 文件中 ADD 命令需復(fù)制的源文件。出現(xiàn)這個報錯首先檢查Dockerfile文件配置的文件路徑是否正確,其次檢查實際打包的 jar 名稱是否與Dockerfile配置的文件名稱相同。筆者檢查配置,確認(rèn)沒有路徑和名稱錯誤,最后 clean 重啟幾次 IDEA 后又好了。不要問為什么,問就是玄學(xué)

IDEA 集成 docker 實現(xiàn)遠(yuǎn)程部署的方法

docker 鏡像構(gòu)建好之后,右擊鏡像文件可以選擇創(chuàng)建容器。創(chuàng)建新的容器最簡單的步驟是為容器命名,然后添加宿主機(jī)到容器的端口映射,創(chuàng)建成功后容器會自動運行

IDEA 集成 docker 實現(xiàn)遠(yuǎn)程部署的方法

到此,關(guān)于“IDEA 集成 docker 實現(xiàn)遠(yuǎn)程部署的方法”的學(xué)習(xí)就結(jié)束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學(xué)習(xí),快去試試吧!若想繼續(xù)學(xué)習(xí)更多相關(guān)知識,請繼續(xù)關(guān)注億速云網(wǎng)站,小編會繼續(xù)努力為大家?guī)砀鄬嵱玫奈恼拢?/p>

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI