登錄 docker 所在的遠程服務(wù)器,使用命令 vim /usr/lib/systemd/system/docker.service
修改配置文件,需注意,修改時(shí)確認自己的賬戶(hù)擁有相應權限
主要操作是找到 ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock 這一行,注釋掉,重新添加一行,在后面新增-H tcp://0.0.0.0:2375表示打開(kāi)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 插件即可,安裝完畢重啟生效
重啟后可以通過(guò) Build,Execution,Depolyment ——> Docker 路徑找到 Docker 插件,再此新增一個(gè)連接遠程 Docker 的配置
連接成功后,在 IDEA 插件面板中可以查看遠程 docker 主機的鏡像和容器,也可以查看容器運行的日志等信息
要將本地打包的 jar 構建成 docker 鏡像,需要在項目 pom 文件中添加構建插件配置。如下是一個(gè) SpringBoot 項目模塊的打包配置,關(guān)鍵點(diǎn)如下:
構建一個(gè)名稱(chēng)為nathan-api
的 jar 包,首先添加spring-boot-maven-plugin
插件添加一個(gè)docker-maven-plugin
插件,配置 docker 鏡像的各個(gè)關(guān)鍵屬性。注意,這個(gè)插件會(huì )下載com.spotify.docker-maven-plugin
jar 包,如下載出錯更換幾個(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執行--> <executions> <execution> <id>build-image</id> <!--用戶(hù)只需執行mvn package ,就會(huì )自動(dòng)執行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
文件夾,則創(chuàng )建一個(gè)與 src 平級的名稱(chēng)為 docker 的目錄,在其中新建一個(gè)名稱(chēng)為 Dockerfile
的文件,其內容如下:
FROM java:8 VOLUME /tmp # 將打包好的 jar 復制到 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)過(guò)以上配置,已經(jīng)將構建 docker 鏡像的動(dòng)作綁定到了 maven 的 package
打包命令,則執行打包即可
筆者在這一步遇到過(guò)
ADD failed: file not found in build context or excluded by .dockerignore
報錯,主要問(wèn)題是沒(méi)有找到Dockerfile
文件中 ADD 命令需復制的源文件。出現這個(gè)報錯首先檢查Dockerfile
文件配置的文件路徑是否正確,其次檢查實(shí)際打包的 jar 名稱(chēng)是否與Dockerfile
配置的文件名稱(chēng)相同。筆者檢查配置,確認沒(méi)有路徑和名稱(chēng)錯誤,最后 clean 重啟幾次 IDEA 后又好了。不要問(wèn)為什么,問(wèn)就是玄學(xué)
docker 鏡像構建好之后,右擊鏡像文件可以選擇創(chuàng )建容器。創(chuàng )建新的容器最簡(jiǎn)單的步驟是為容器命名,然后添加宿主機到容器的端口映射,創(chuàng )建成功后容器會(huì )自動(dòng)運行
到此這篇關(guān)于IDEA 集成 docker 實(shí)現遠程部署的詳細步驟的文章就介紹到這了,更多相關(guān)IDEA遠程部署內容請搜索腳本之家以前的文章或繼續瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng )、來(lái)自本網(wǎng)站內容采集于網(wǎng)絡(luò )互聯(lián)網(wǎng)轉載等其它媒體和分享為主,內容觀(guān)點(diǎn)不代表本網(wǎng)站立場(chǎng),如侵犯了原作者的版權,請告知一經(jīng)查實(shí),將立刻刪除涉嫌侵權內容,聯(lián)系我們QQ:712375056,同時(shí)歡迎投稿傳遞力量。
Copyright ? 2009-2022 56dr.com. All Rights Reserved. 特網(wǎng)科技 特網(wǎng)云 版權所有 特網(wǎng)科技 粵ICP備16109289號
域名注冊服務(wù)機構:阿里云計算有限公司(萬(wàn)網(wǎng)) 域名服務(wù)機構:煙臺帝思普網(wǎng)絡(luò )科技有限公司(DNSPod) CDN服務(wù):阿里云計算有限公司 百度云 中國互聯(lián)網(wǎng)舉報中心 增值電信業(yè)務(wù)經(jīng)營(yíng)許可證B2
建議您使用Chrome、Firefox、Edge、IE10及以上版本和360等主流瀏覽器瀏覽本網(wǎng)站