日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 人文社科 > 生活经验 >内容正文

生活经验

IDEA的Docker插件实战(Dockerfile篇)

發布時間:2023/11/28 生活经验 52 豆豆
生活随笔 收集整理的這篇文章主要介紹了 IDEA的Docker插件实战(Dockerfile篇) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

IDEA的Docker插件實戰(Dockerfile篇)

IntelliJ IDEA的Docker插件能幫助我們將當前工程制作成Docker鏡像、運行在指定的遠程機器上,是學習和開發階段的好幫手,本文一起來實戰此插件的基本用法;

關于系列文章

本文是《IDEA的Docker插件實戰》系列的第一篇,IDEA的Docker插件一共有三種:Dockerfile、Docker Image、Docker-compose,今天實戰的是Dockerfile。

系列文章鏈接

  1. 《IDEA的Docker插件實戰(Dockerfile篇)》;
  2. 《IDEA的Docker插件實戰(Docker Image篇)》;
  3. 《IDEA的Docker插件實戰(Docker-compose篇)》;

全文概覽

本文由以下幾部分組成:

  1. 環境信息
  2. 介紹如何免費使用正版IntelliJ IDEA
  3. 介紹如何開啟Docker的遠程連接
  4. 安裝Docker插件的步驟
  5. 連接遠程Docker服務
  6. 創建springboot工程用于演示Docker插件
  7. 使用Docker插件將應用構建成鏡像并在遠程Docker上運行

環境信息

本次實戰需要提前準備好以下內容:

  1. 開發環境操作系統:win10
  2. IntelliJ IDEA: 2018.2.4 (Ultimate Edition)
  3. JDK:1.8.0_181
  4. Maven:3.5.0
  5. Docker服務所在環境:CentOS Linux release 7.6.1810
  6. Docker:1.13.1, build b2f74b2/1.13.1

免費使用正版IntelliJ IDEA

IntelliJ IDEA (Ultimate Edition)是商業版本,目前其License費用為499美金一年,對于學習和非商業用途開發者來說,其實是有機會免費獲取此License的,申請和使用的詳情可參考《免費申請和使用IntelliJ IDEA商業版License指南》;

開啟Docker的遠程連接

本次實戰中,IDEA作為開發電腦,要遠程連接到另一臺Linux電腦上部署的Docker服務,這就要求Docker服務開啟了遠程連接,開啟方式請參考:《Docker遠程連接設置》

準備工作完成了,開始實戰吧。

安裝Docker插件

  1. 在IDEA的開始頁面,點擊右下角的"Configure"菜單,再點擊下圖紅框中的"Plugins"按鈕,進入插件管理頁面:
  2. 點擊下圖紅框中的Browse repositories按鈕:
  3. 如下圖,紅框1位置輸入"Docker"之后就會搜到紅框2中的Docker插件,再點擊紅框3中的"Install"按鈕開始安裝插件:
  4. 安裝完成后,原先的"Install"按鈕的文案變成了重啟,點擊該按鈕重啟IDEA,至此Docker插件安裝完成;

連接遠程Docker服務

  1. 在IDEA的開始頁面,點擊右下角的"Configure"菜單,再點擊下圖紅框中的"Settings"按鈕,進入設置頁面:
  2. 在設置頁面,按照下圖的數字順序創建一個Docker server并進行設置,其中"192.168.121.131"是Docker服務所在機器的IP地址,如果連接成功頁面上會立即提示"Connection successful":

    至此,Docker插件準備完畢,遠程連接也已經OK,可以嘗試使用該插件了。

創建一個springboot應用

為了驗證Docker插件的功能,先開發一個簡單的sringboot應用:

  1. 在IEDA上創建一個名為dockerplugindemo的springboot工程,其pom.xml是默認內容:
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.1.7.RELEASE</version><relativePath/> <!-- lookup parent from repository --></parent><groupId>com.bolingcavalry</groupId><artifactId>dockerplugindemo</artifactId><version>0.0.1-SNAPSHOT</version><name>dockerplugindemo</name><description>Demo project for Spring Boot</description><properties><java.version>1.8</java.version></properties><dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope></dependency></dependencies><build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId></plugin></plugins></build>
</project>
  1. 應用啟動類同時作為Controller,增加一個web響應接口:
package com.bolingcavalry.dockerplugindemo;import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;import java.text.SimpleDateFormat;
import java.util.Date;@SpringBootApplication
@RestController
public class DockerplugindemoApplication {public static void main(String[] args) {SpringApplication.run(DockerplugindemoApplication.class, args);}@RequestMapping("/test")public String test(){return "1. Hello world ! " + new SimpleDateFormat(" [yyyy-mm-dd  HH:mm:ss]").format(new Date());}
}

可見這是個最普通的springboot應用,對外提供一個http接口,接下來用Docker插件將此應用構建成鏡像并在遠程Docker上運行;

用Docker插件將應用構建成鏡像并在遠程Docker上運行

  1. 在工程dockerplugindemo的pom.xml文件所在目錄下,創建名為Dockerfile的文件,內容如下:
# Docker image for springboot application
# VERSION 0.0.1
# Author: bolingcavalry### 基礎鏡像,使用alpine操作系統,openjkd使用8u201
FROM openjdk:8u201-jdk-alpine3.9#作者
MAINTAINER BolingCavalry <zq2599@gmail.com>#系統編碼
ENV LANG=C.UTF-8 LC_ALL=C.UTF-8#聲明一個掛載點,容器內此路徑會對應宿主機的某個文件夾
VOLUME /tmp#應用構建成功后的jar文件被復制到鏡像內,名字也改成了app.jar
ADD target/dockerplugindemo-0.0.1-SNAPSHOT.jar app.jar#啟動容器時的進程
ENTRYPOINT ["java","-jar","/app.jar"]#暴露8080端口
EXPOSE 8080
  • ?
  1. 如下圖紅框所示,創建一個配置:
  2. 創建一個Dockerfile配置,如下所示:
  3. Dockerfile配置詳情如下圖所示,請按照圖中的說明進行設置,確保每個紅框中都會執行到:
  4. 上圖中最下面的那個"Run Maven Goal"點擊后,會彈出一個小窗口 ,用來輸入要執行的maven命令,這里輸入clean package -U -DskipTests,表示每次在構建鏡像之前,都會將當前工程清理掉并且重新編譯構建:
  5. 設置完成后,點擊下圖紅框中的綠色三角按鈕,執行此配置:
  6. 運行結果如下所示,項目構建成功后,在Docker上部署鏡像成功,然后運行容器成功:
  7. 登錄遠程Docker,先后執行docker image和docker ps命令查看鏡像和容器情況如下,可見一切正常:
[root@maven ~]# docker images
REPOSITORY                                  TAG                   IMAGE ID            CREATED             SIZE
dockerplugindemo                            latest                0144ba203220        8 minutes ago       122 MB
docker.io/tomcat                            latest                96c4e536d0eb        2 days ago          506 MB
bolingcavalry/nacosconfigdemo               1.0-SNAPSHOT          ed524b78f80b        6 days ago          125 MB
bolingcavalry/nacosserver                   0.0.1                 9ab34ff860d8        3 weeks ago         156 MB
docker.io/openjdk                           8u212-jdk-stretch     03b20c1fa768        6 weeks ago         488 MB
docker.io/openjdk                           8u201-jdk-alpine3.9   3675b9f543c5        4 months ago        105 MB
docker.io/fabric8/java-jboss-openjdk8-jdk   1.3                   c9d7e2e7b917        20 months ago       436 MB
[root@maven ~]# docker ps
CONTAINER ID        IMAGE               COMMAND                CREATED             STATUS              PORTS                     NAMES
b54144064138        0144ba203220        "java -jar /app.jar"   8 minutes ago       Up 8 minutes        0.0.0.0:18080->8080/tcp   dockerplugindemo

?

  1. 遠程Docker所在服務器IP地址是192.168.121.131,因此在瀏覽器上訪問地址:http://192.168.121.131:18080/test ,得到響應如下圖所示,可見應用在容器中正常運行:
  2. 修改工程中的DockerplugindemoApplication.java的源碼,test方法的返回值原本是"Hello world ! ",改成"123456 Hello world ! ",然后再次點擊綠色三角按鈕,運行"dockerfile"配置,看看這個改動能不能立即生效,等待構建、部署、運行都完成后,再次用瀏覽器訪問地址:http://192.168.121.131:18080/test ,得到響應如下圖所示,可見剛才的改動可以立即生效:

    至此,IEDA下的Docker插件配置和使用實戰就完成了,希望您在選用該插件時,本文能給您提供一些參考。

總結

以上是生活随笔為你收集整理的IDEA的Docker插件实战(Dockerfile篇)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。