Docker:在容器中運(yùn)行Java應(yīng)用程序

2018-06-21 10:33 更新

您可以使用Docker在特定的運(yùn)行時(shí)環(huán)境中運(yùn)行容器中的Java應(yīng)用程序。本教程介紹如何創(chuàng)建Dockerfile,以便在OpenJDK 8的容器中運(yùn)行簡(jiǎn)單的Java應(yīng)用程序。

示例應(yīng)用程序由一個(gè)Main.java文件組成,該文件打印Hello World!到控制臺(tái)并退出。編譯輸出位于/out/production/DockerJavaApp下的項(xiàng)目目錄中。

在容器中運(yùn)行Java應(yīng)用程序

在容器中運(yùn)行Java應(yīng)用程序

  1. 在項(xiàng)目工具窗口中,右鍵單擊項(xiàng)目名稱,指向“新建(New)”并單擊“文件(File)”。
  2. 在“新建文件(New File)”對(duì)話框中,鍵入Dockerfile并單擊“確定”。
  3. 在新的Dockerfile中鍵入以下內(nèi)容:

    FROM openjdk:8
    COPY ./out/production/DockerJavaApp/ /tmp
    WORKDIR /tmp
    ENTRYPOINT ["java","Main"]
  4. 單擊“運(yùn)行Docker(Run on Docker)”陰影圖標(biāo)( ),然后單擊“'Docker'上的運(yùn)行(Run on 'Docker')”。
    Docker:在容器中運(yùn)行Java應(yīng)用程序

    IntelliJ IDEA創(chuàng)建一個(gè)Docker運(yùn)行配置,它從Dockerfile構(gòu)建一個(gè)映像,然后根據(jù)該映像運(yùn)行一個(gè)容器。輸出目錄(Main.class)的內(nèi)容被復(fù)制到容器中的/tmp目錄中。然后它從/tmp目錄中運(yùn)行該java Main命令。因此,您應(yīng)該看到Hello World!打印到容器日志。

例如,您可以與其他人分享圖像,以準(zhǔn)確演示您的應(yīng)用程序如何運(yùn)行,而無需安裝必要的運(yùn)行時(shí)(僅需要Docker)。

要共享構(gòu)建的圖像,您需要配置一個(gè)Docker注冊(cè)表 ,您可以在其中擁有圖像推送權(quán)限。例如,您可以在Docker Hub上創(chuàng)建一個(gè)帳戶, 并使用公共或私人存儲(chǔ)庫(kù)共享圖像,或設(shè)置您自己的Docker注冊(cè)表。

將您的Java應(yīng)用程序作為Docker鏡像共享

  1. 在Docker工具窗口中,找到從Dockerfile構(gòu)建的圖像。默認(rèn)情況下,它由唯一圖像ID指定,因?yàn)槲刺峁﹫D像標(biāo)記。您可以編輯相應(yīng)的運(yùn)行配置并指定您選擇的圖像標(biāo)簽。要找出圖像ID,請(qǐng)選擇您從Dockerfile運(yùn)行的容器并打開“屬性(Properties)”選項(xiàng)卡。
  2. 右鍵單擊具有所需ID的圖像,然后在上下文菜單中單擊“推送圖像(Push Image)”。
  3. 在“推送圖像(Push Image)”對(duì)話框中,選擇您的注冊(cè)表,指定圖像的存儲(chǔ)庫(kù)名稱和標(biāo)記,然后單擊“確定”。
                     Docker:在容器中運(yùn)行Java應(yīng)用程序

一旦圖像被推送到注冊(cè)表中,任何有權(quán)訪問的人都可以將其拉出并從圖像中運(yùn)行一個(gè)容器。

以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)