IDEA使用Docker插件(菜鳥(niǎo)教程)
說(shuō)明
之前docker的學(xué)習(xí),包括鏡像拉取,容器創(chuàng)建等操作都需要自己手動(dòng)敲命令來(lái)實(shí)現(xiàn),但是如果在idea中使用Docker插件,就可以不用敲命令也可以實(shí)現(xiàn)對(duì)docker的操作,不得不說(shuō)idea這個(gè)工具是真的強(qiáng)?。?!本文會(huì)持續(xù)更新,不斷地?cái)U(kuò)充
本文僅為記錄學(xué)習(xí)軌跡,如有侵權(quán),聯(lián)系刪除
注意:一般是用的服務(wù)器,作為測(cè)試這里就采用虛擬機(jī)+Ubuntu系統(tǒng)的方式
一、開(kāi)啟Docker遠(yuǎn)程訪問(wèn)
如果使用idea編輯器的話,可以使用docker插件來(lái)遠(yuǎn)程使用服務(wù)器(虛擬機(jī))上的docker,簡(jiǎn)單方便快捷的使用docker,更重要的是使用插件可以實(shí)現(xiàn)項(xiàng)目的一鍵部署,當(dāng)然這還需要一些簡(jiǎn)單的配置。
默認(rèn)的dokcer是不支持遠(yuǎn)程訪問(wèn)的,需要加點(diǎn)配置,開(kāi)啟Docker的遠(yuǎn)程訪問(wèn)
#修改Docker服務(wù)文件,需要先切換到root用戶 vim /lib/systemd/system/docker.service #注釋掉"ExecStart"這一行,并添加下面這一行信息 ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock -H tcp://0.0.0.0:2375
重新加載配置文件
#重新加載配置文件 systemctl daemon-reload #重啟服務(wù) systemctl restart docker.service #查看配置的端口號(hào)(2375)是否開(kāi)啟(非必要) netstat -nlpt #如果找不到netstat命令,可以先安裝一下這個(gè)工具,具體百度
注意:如果上述過(guò)程失敗的話,有下面這種方式,
首先確保端口號(hào)已經(jīng)開(kāi)放,這個(gè)很重要?。?!,默認(rèn)端口號(hào)2375
切換root用戶,命令:sudo su
編輯docker相關(guān)配置:
命令:vim /lib/systemd/system/docker.service
,進(jìn)入編輯頁(yè)面
找到ExecStart對(duì)應(yīng)的那一行,添加代碼:-H tcp://0.0.0.0:2375 -H unix://var/run/docker.sock
(按下按鍵"i",進(jìn)入編輯模式,然后就可以添加數(shù)據(jù)了)
保存退出,先按"esc"按鍵,然后輸入命令::wq
,回車(chē)即保存。
重啟docker服務(wù)
守護(hù)進(jìn)程重啟:sudo systemctl daemon-reload
重啟docker服務(wù):sudo systemctl restart docker
查看端口號(hào)2375是否開(kāi)放,出現(xiàn)如圖則成功
二、連接docker
使用idea的docker插件連接docker,idea默認(rèn)已經(jīng)下載過(guò)docker插件了,如果沒(méi)有的話,需要在idea下載docker插件
點(diǎn)擊idea的設(shè)置選項(xiàng)(file --> setting -> docker),新建連接
連接成功之后就可以使用服務(wù)器(虛擬機(jī))上的docker了
三、鏡像的拉取
idea可以通過(guò)可視化的方式拉取鏡像,不用自己去敲命令
有時(shí)候會(huì)出現(xiàn)拉取的時(shí)間超時(shí)的情況,可以配置一下國(guó)內(nèi)的鏡像獲取阿里云的加速器
四、容器的創(chuàng)建與運(yùn)行
創(chuàng)建并且運(yùn)行docker容器
創(chuàng)建成功之后可以看到新創(chuàng)建的容器,也可以在服務(wù)器(虛擬機(jī))上用docker命令查看
重啟容器、停止容器和刪除容器等操作
五、docker一鍵部署springboot項(xiàng)目
傳統(tǒng)的docker部署springboot項(xiàng)目,需要自己手動(dòng)配置Dockerfile文件,還需要將生成的jar包跟Dockerfile文件一起上傳到服務(wù)器,整個(gè)流程下來(lái)很麻煩,如果用idea的docker插件就可以實(shí)現(xiàn)一鍵部署springboot項(xiàng)目,簡(jiǎn)單方便。
首先需要引入docker的構(gòu)建工具
<build> <!-- 引用我們的項(xiàng)目名字 --> <finalName>${project.artifactId}</finalName> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> <!--使用docker-maven-plugin插件--> <plugin> <groupId>com.spotify</groupId> <artifactId>docker-maven-plugin</artifactId> <version>1.0.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> <!--指定生成的鏡像名,這里是我們的作者名+項(xiàng)目名--> <imageName>cainiao/${project.artifactId}</imageName> <!--指定標(biāo)簽 這里指定的是鏡像的版本,我們默認(rèn)版本是latest--> <imageTags> <imageTag>latest</imageTag> </imageTags> <!--指定基礎(chǔ)鏡像jdk1.8--> <baseImage>java</baseImage> <!-- 鏡像制作人本人信息 <maintainer>bruceliu@email.com</maintainer> --> <!--切換到ROOT目錄--> <workdir>/ROOT</workdir> <!--查看我們的java版本--> <cmd>["java", "-version"]</cmd> <!--${project.build.finalName}.jar是打包后生成的jar包的名字--> <entryPoint>["java", "-jar", "/${project.build.finalName}.jar"]</entryPoint> <!--指定遠(yuǎn)程 docker api地址--> <dockerHost>http://192.168.29.133:2375</dockerHost> <!-- 這里是復(fù)制 jar 包到 docker 容器指定目錄配置 --> <resources> <resource> <targetPath>/</targetPath> <!--jar 包所在的路徑 此處配置的 即對(duì)應(yīng) target 目錄--> <directory>${project.build.directory}</directory> <!--用于指定需要復(fù)制的文件 需要包含的 jar包 ,這里對(duì)應(yīng)的是 Dockerfile中添加的文件名 --> <include>${project.build.finalName}.jar</include> </resource> </resources> </configuration> </plugin> </plugins> </build>
ok,接下來(lái)只要先點(diǎn)擊clean清除之前的所有打包的文件,然后再點(diǎn)擊package打包文件即可完成鏡像的構(gòu)建,真正的一鍵部署
到此鏡像構(gòu)建成功,接下來(lái)只要?jiǎng)?chuàng)建容器跑起來(lái)即可
通過(guò)ip訪問(wèn)
至此,一鍵構(gòu)建部署springboot項(xiàng)目成功!
可能的錯(cuò)誤:
“java.lang.NoClassDefFoundError:javax / activation / DataSource”(tomcat 9.0.12)“
網(wǎng)上查了一下,發(fā)現(xiàn)這樣的一段話,具體看這里
剛好我想起來(lái)這個(gè)項(xiàng)目之前開(kāi)發(fā)用的是jdk8,然后我現(xiàn)在用的jdk11,所以在構(gòu)建的時(shí)候會(huì)出現(xiàn)這個(gè)問(wèn)題,我感覺(jué)應(yīng)該是這個(gè)問(wèn)題導(dǎo)致,雖然構(gòu)建成功了,運(yùn)行訪問(wèn)都沒(méi)有問(wèn)題,建議開(kāi)發(fā)跟構(gòu)建docker的時(shí)候jdk版本保持一致。
到此這篇關(guān)于IDEA使用Docker插件(菜鳥(niǎo)教程)的文章就介紹到這了,更多相關(guān)IDEA使用Docker內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
docker安裝Elasticsearch7.6集群并設(shè)置密碼
這篇文章主要介紹了docker安裝Elasticsearch7.6集群并設(shè)置密碼,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-06-06解決vscode docker插件docker.socket權(quán)限問(wèn)題
本文給大家分享關(guān)于vscode docker插件docker.socket權(quán)限問(wèn)題,文末給大家提到vscode中docker插件無(wú)法連接的問(wèn)題及解決方案,需要的朋友參考下吧2021-06-06docker-compose安裝mongoDB全過(guò)程
這篇文章主要介紹了docker-compose安裝mongoDB全過(guò)程,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-01-01Docker 容器指定自定義網(wǎng)段的固定IP/靜態(tài)IP地址
這篇文章主要介紹了Docker 容器指定自定義網(wǎng)段的固定IP/靜態(tài)IP地址的相關(guān)資料,需要的朋友可以參考下2016-12-12開(kāi)源框架?Matrix-Dendrite?搭建聊天服務(wù)器的詳細(xì)過(guò)程
Matrix?是一個(gè)開(kāi)源、可交互、去中心化的實(shí)時(shí)通信服務(wù)框架。使用?Matrix?可以搭建安全的通信服務(wù)器,配合支持?Matrix?的客戶端可以實(shí)現(xiàn)個(gè)人、團(tuán)隊(duì)間的實(shí)時(shí)聊天交互,對(duì)Matrix?Dendrite搭建聊天服務(wù)器的過(guò)程感興趣的朋友一起看看吧2022-03-03docker 容器添加指定網(wǎng)絡(luò)地址的方法實(shí)現(xiàn)
Docker容器運(yùn)行的時(shí)候默認(rèn)會(huì)自動(dòng)分配一個(gè)默認(rèn)網(wǎng)橋所在網(wǎng)段的IP地址,本文主要介紹了docker容器添加指定網(wǎng)絡(luò)地址的方法實(shí)現(xiàn),具有一定的參考價(jià)值,感興趣的可以了解一下2024-01-01