歡迎光臨
每天分享高質量文章

Docker最全教程之使用Docker搭建Java開發環境(十八)

前言

Java是一門面向物件的優秀編程語言,市場占有率極高,但是在容器化實踐過程中,發現官方支持並不友好,同時與其他編程語言的基礎鏡像相比(具體見各語言鏡像比較),確實是非常臃腫。

本篇僅作探索,希望對大家有所幫助。

目錄

 

  • Java

  • 官方鏡像

  • 各語言鏡像比較

  • 使用Docker搭建Java開發環境

  • 編寫Hello world!

  • 編寫Dockerfile

  • 構建鏡像並執行

Java

Java是一門面向物件編程語言,不僅吸收了C++語言的各種優點,還摒棄了C++里難以理解的多繼承、指標等概念,因此Java語言具有功能強大和簡單易用兩個特征。Java語言作為靜態面向物件編程語言的代表,極好地實現了面向物件理論,允許程式員以優雅的思維方式進行複雜的編程。

Java具有簡單性、面向物件、分佈式、健壯性、安全性、平臺獨立與可移植性、多執行緒、動態性等特點。Java可以編寫桌面應用程式、Web應用程式、分佈式系統和嵌入式系統應用程式等。

目前最新的版本為Java 9,以下為官方文件地址:

https://docs.oracle.com/javase/9/

註意
值得註意的是,Oracle (甲骨文)公司宣佈,“2019年1月之後”,如果沒有獲得Oracel公司的商業許可證,Java SE 8(註:Java SE為Java平臺標準版簡稱)將不會再收到公開更新,也將無法用於“商業或生產用途”。目前收費標準為,對於 PC,每用戶每月是 2.5 美元,對於服務器/雲部署,每個處理器每月是 25 美元

官方鏡像

Java官網鏡像地址為:

https://hub.docker.com/_/java

官方介紹無。在Java社區,對Docker的擁抱粒度相對其他語言不是很大,不僅教程相對缺失,而且官方支持力度不大。這一點,大家可以通過搜索引擎進一步瞭解。不過,還是有許多Java開發者也在擁抱Docker。

各語言鏡像比較

寫到這裡,筆者突發奇想,相對主流的鏡像做一個體積比較。

我們可以通過docker images命令來列出本地鏡像,同時可以使用引數來進行篩選。

Java

我們可以使用以下命令來查看Java相關鏡像的大小:

 

600M左右的體積,相對來說,還是臃腫。我們可以和其他鏡像做一些對比:

.NET Core

docker images microsoft/dotnet

運行時鏡像200M左右,而且高版本鏡像越來越輕量。

Python

docker images python

 

Php

docker images php 

使用Docker搭建Java開發環境

本篇僅做探索,主要解決以下問題:

無需搭建Java開發環境

開發環境變化只需更新鏡像即可(比如從Java8改為Java9)

無需安裝IDE(比如eclipse

提供一個極簡Demo

編寫Hello world!

按照碼農協會行業定律,初學必寫Hello World,以表達對編程世界的敬仰之情。如下麵代碼所示:

//引入命名空間

import java.util.*;

//

public class Hello{

    //程式入口

    public static void main(String[] args){

        //打印字串(控制台)

        System.out.println(“Hello World!”);

        //打印當前時間

        System.out.println(new Date());

 

    }

}

 

這裡順便說下,我們使用萬能編輯器VisualStudio Code來編輯上述代碼,支持代碼高亮,同時還會自動推薦相關擴展,如下所示:

 

並且還提供完善的文件教程:

 

編寫Dockerfile

如下所示,示例Dockerfile檔案如下:

# 基於Java 9

FROM java:9

 

# 設置工作目錄

WORKDIR /app

 

# 複製檔案到工作目錄

COPY . /app

 

# 設置Java環境變數

ENV PATH=$PATH:$JAVA_HOME/bin

ENV JRE_HOME=${JAVA_HOME}/jre

ENV CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib

 

# 編譯

RUN [“/usr/lib/jvm/java-9-openjdk-amd64/bin/javac”,“Hello.java”]

 

# 運行

ENTRYPOINT [“/usr/lib/jvm/java-9-openjdk-amd64/bin/java”, “Hello”]

 

構建鏡像並執行

接下來,我們可以執行以下命令以構建Docker鏡像:

docker build –rm -f “Dockerfile” -t java-hello:latest .

 

構建成功後,我們跑起來看效果:

docker run java-hello:latest

 

轉載是一種動力 分享是一種美德

如果喜歡作者的文章,請關註“magiccodes”訂閱號以便第一時間獲得最新內容。本文版權歸作者和湖南心萊信息科技有限公司共有,歡迎轉載,但未經作者同意必須保留此段宣告,且在文章頁面明顯位置給出原文連接,否則保留追究法律責任的權利。

QQ群:

編程交流群<85318032> 

產品交流群<897857351>

長沙線下技術社區已經創建,有興趣者可以通過客服加群。接下來,我們會定期組織一些線下技術交流分享會,以饗大家。