這篇文章主要介紹“IDEA 集成 docker 實現遠程部署的方法”,在日常操作中,相信很多人在IDEA 集成 docker 實現遠程部署的方法問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”IDEA 集成 docker 實現遠程部署的方法”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!
登錄 docker 所在的遠程服務器,使用命令 vim /usr/lib/systemd/system/docker.service 修改配置文件,需注意,修改時確認自己的賬戶擁有相應權限
主要操作是找到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
一般比較新的 IDEA 都綁定了 docker 插件,如未綁定在 IDEA 的 Plugins 中搜索安裝 docker 插件即可,安裝完畢重啟生效

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

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

要將本地打包的 jar 構建成 docker 鏡像,需要在項目 pom 文件中添加構建插件配置。如下是一個 SpringBoot 項目模塊的打包配置,關鍵點如下:
構建一個名稱為nathan-api的 jar 包,首先添加spring-boot-maven-plugin插件添加一個docker-maven-plugin插件,配置 docker 鏡像的各個關鍵屬性。注意,這個插件會下載com.spotify.docker-maven-pluginjar 包,如下載出錯更換幾個版本試試, 版本列表可參考 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執行-->
<executions>
<execution>
<id>build-image</id>
<!--用戶只需執行mvn package ,就會自動執行mvn docker:build-->
<phase>package</phase>
<goals>
<goal>build</goal>
</goals>
</execution>
</executions>
<configuration>
<!--指定docker文件目錄-->
<dockerDirectory>${project.basedir}/docker</dockerDirectory>
<!--指定生成的鏡像名-->
<imageName>${project.artifactId}</imageName>
<!--指定標簽-->
<imageTags>
<imageTag>latest</imageTag>
</imageTags>
<!--指定遠程 docker api地址-->
<dockerHost>http://xxx.168.146.63: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>上一步驟中在 docker 的 maven 插件中配置了 docker 文件的目錄,指定的是模塊根目錄下的 docker 文件夾,則創建一個與 src 平級的名稱為 docker 的目錄,在其中新建一個名稱為 Dockerfile 的文件,其內容如下:
FROM java:8 VOLUME /tmp # 將打包好的 jar 復制到 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"]
經過以上配置,已經將構建 docker 鏡像的動作綁定到了 maven 的 package 打包命令,則執行打包即可
筆者在這一步遇到過
ADD failed: file not found in build context or excluded by .dockerignore報錯,主要問題是沒有找到Dockerfile文件中 ADD 命令需復制的源文件。出現這個報錯首先檢查Dockerfile文件配置的文件路徑是否正確,其次檢查實際打包的 jar 名稱是否與Dockerfile配置的文件名稱相同。筆者檢查配置,確認沒有路徑和名稱錯誤,最后 clean 重啟幾次 IDEA 后又好了。不要問為什么,問就是玄學

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

到此,關于“IDEA 集成 docker 實現遠程部署的方法”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。