IDEA集成docker實(shí)現(xiàn)遠(yuǎn)程部署的步驟
1. docker 服務(wù)器開啟遠(yuǎn)程訪問
登錄 docker 所在的遠(yuǎn)程服務(wù)器,使用命令 vim /usr/lib/systemd/system/docker.service 修改配置文件,需注意,修改時(shí)確認(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 插件即可,安裝完畢重啟生效

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

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

3. docker 鏡像構(gòu)建上傳
要將本地打包的 jar 構(gòu)建成 docker 鏡像,需要在項(xiàng)目 pom 文件中添加構(gòu)建插件配置。如下是一個(gè) SpringBoot 項(xiàng)目模塊的打包配置,關(guān)鍵點(diǎn)如下:
構(gòu)建一個(gè)名稱為 nathan-api 的 jar 包,首先添加 spring-boot-maven-plugin 插件添加一個(gè) docker-maven-plugin 插件,配置 docker 鏡像的各個(gè)關(guān)鍵屬性。注意,這個(gè)插件會(huì)下載 com.spotify.docker-maven-plugin jar 包,如下載出錯(cuò)更換幾個(gè)版本試試, 版本列表可參考 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>
<!--將插件綁定在某個(gè)phase執(zhí)行-->
<executions>
<execution>
<id>build-image</id>
<!--用戶只需執(zhí)行mvn package ,就會(huì)自動(dòng)執(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 包所在的路徑 此處配置的 即對(duì)應(yīng) target 目錄-->
<directory>${project.build.directory}</directory>
<!-- 需要包含的 jar包 ,這里對(duì)應(yīng)的是 Dockerfile 中添加的文件名 -->
<include>${project.build.finalName}.jar</include>
</resource>
</resources>
</configuration>
</plugin>
</plugins>
</build>
上一步驟中在 docker 的 maven 插件中配置了 docker 文件的目錄,指定的是模塊根目錄下的 docker 文件夾,則創(chuàng)建一個(gè)與 src 平級(jí)的名稱為 docker 的目錄,在其中新建一個(gè)名稱為 Dockerfile 的文件,其內(nèi)容如下:
FROM java:8 VOLUME /tmp # 將打包好的 jar 復(fù)制到 app.jar 中 ADD nathan-api.jar app.jar EXPOSE 20561 # 以下為 jar 包啟動(dòng)命令配置 ENTRYPOINT ["java", "-Djava.security.egd=file:/dev/./urandom","-Duser.timezone=GMT+8", "-jar", "app.jar"]
經(jīng)過以上配置,已經(jīng)將構(gòu)建 docker 鏡像的動(dòng)作綁定到了 maven 的 package 打包命令,則執(zhí)行打包即可
筆者在這一步遇到過 ADD failed: file not found in build context or excluded by .dockerignore報(bào)錯(cuò),主要問題是沒有找到 Dockerfile 文件中 ADD 命令需復(fù)制的源文件。出現(xiàn)這個(gè)報(bào)錯(cuò)首先檢查Dockerfile文件配置的文件路徑是否正確,其次檢查實(shí)際打包的 jar 名稱是否與Dockerfile配置的文件名稱相同。筆者檢查配置,確認(rèn)沒有路徑和名稱錯(cuò)誤,最后 clean 重啟幾次 IDEA 后又好了。不要問為什么,問就是玄學(xué)

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

到此這篇關(guān)于IDEA集成docker實(shí)現(xiàn)遠(yuǎn)程部署的步驟的文章就介紹到這了,更多相關(guān)IDEA docker遠(yuǎn)程部署內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Docker 數(shù)據(jù)卷權(quán)限實(shí)例詳解
這篇文章主要介紹了Docker 數(shù)據(jù)卷權(quán)限實(shí)例詳解的相關(guān)資料,在運(yùn)行Docker 容器的時(shí)候需要添加權(quán)限,這里就給大家舉例說明如何實(shí)現(xiàn),需要的朋友可以參考下2016-11-11
docker啟動(dòng)MySQL容器失敗原因分析以及排查記錄
在使用Docker啟動(dòng)MySQL容器時(shí),遇到了配置文件路徑錯(cuò)誤的問題,通過查看容器日志發(fā)現(xiàn),容器讀取的配置文件路徑與指定的不一致,解決方法是修改啟動(dòng)命令中的配置文件路徑,將其指向正確的目錄,最終,容器成功啟動(dòng)并進(jìn)入U(xiǎn)p狀態(tài)2025-02-02
Spring Boot使用Docker分層打包的設(shè)置方法
Spring Boot 現(xiàn)在支持分層打包技術(shù)了, 我們也來用一用, 加速Docker打包, 構(gòu)建的時(shí)候速度也會(huì)非???本文重點(diǎn)給大家介紹Spring Boot使用Docker分層打包的設(shè)置方法,感興趣的朋友一起看看吧2021-08-08
pycharm與ssh遠(yuǎn)程訪問服務(wù)器docker的詳細(xì)教程
這篇文章主要介紹了pycharm與ssh遠(yuǎn)程訪問服務(wù)器docker,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-10-10

