IDEA 集成 docker 實現(xiàn)遠程部署的詳細(xì)步驟
1. docker 服務(wù)器開啟遠程訪問
登錄 docker 所在的遠程服務(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端口,支持遠程連接 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 插件,再此新增一個連接遠程 Docker 的配置
連接成功后,在 IDEA 插件面板中可以查看遠程 docker 主機的鏡像和容器,也可以查看容器運行的日志等信息
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> <!--指定遠程 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é)
docker 鏡像構(gòu)建好之后,右擊鏡像文件可以選擇創(chuàng)建容器。創(chuàng)建新的容器最簡單的步驟是為容器命名,然后添加宿主機到容器的端口映射,創(chuàng)建成功后容器會自動運行
到此這篇關(guān)于IDEA 集成 docker 實現(xiàn)遠程部署的詳細(xì)步驟的文章就介紹到這了,更多相關(guān)IDEA遠程部署內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
在IntelliJ IDEA中使用Docker的開發(fā)指南
這篇文章主要給大家介紹了在IntelliJ IDEA中使用Docker開發(fā)指南,文中通過圖文介紹的非常詳細(xì),對我們的使用Docker有一定的幫助,需要的朋友可以參考下2023-09-09Docker配置MySql環(huán)境的實現(xiàn)步驟
通過使用Docker,開發(fā)人員可以更容易地構(gòu)建、測試和交付應(yīng)用程序,同時減少了環(huán)境配置和依賴項管理的復(fù)雜性,本文主要介紹了Docker配置MySql環(huán)境的實現(xiàn)步驟,文中通過示例代碼介紹的非常詳細(xì),感興趣的可以了解一下2024-02-02Docker搭建持續(xù)集成平臺Jenkins的最簡教程分享
Jenkins 是一個廣泛使用的開源持續(xù)集成工具,它能夠自動化構(gòu)建、測試和部署軟件項目,本文我們將使用 Docker 搭建一個基于 Jenkins 的持續(xù)集成平臺,感興趣的可以了解下2024-03-03Docker構(gòu)建python Flask+ nginx+uwsgi容器
這篇文章主要介紹了Docker構(gòu)建python Flask+ nginx+uwsgi容器,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-09-09一文詳解如何在Ubuntu系統(tǒng)中安裝docker
這篇文章主要為大家詳細(xì)介紹了在Ubuntu操作系統(tǒng)上安裝Docker的步驟,以便我們可以開始使用Docker來構(gòu)建和運行容器化應(yīng)用程序,希望對大家有所幫助2024-03-03Docker容器處于Removal in process無法刪除問題及解決
這篇文章主要介紹了Docker容器處于Removal in process無法刪除問題及解決方案,具有很好的參考價值,希望對大家有所幫助。2023-07-07