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

前言

 

Java是一門面向對象的優秀編程語言,市場佔有率極高,可是在容器化實踐過程當中,發現官方支持並不友好,同時與其餘編程語言的基礎鏡像相比(具體見各語言鏡像比較),確實是很是臃腫。php

 

本篇僅做探索,但願對你們有所幫助。java

 

 

 

目錄

 

  • Javapython

  • 官方鏡像程序員

  • 各語言鏡像比較docker

  • 使用Docker搭建Java開發環境編程

  • 編寫Hello world!安全

  • 編寫Dockerfile服務器

  • 構建鏡像並執行多線程

 

Java 

Java是一門面向對象編程語言,不只吸取了C++語言的各類優勢,還摒棄了C++裏難以理解的多繼承、指針等概念,所以Java語言具備功能強大和簡單易用兩個特徵。Java語言做爲靜態面向對象編程語言的表明,極好地實現了面向對象理論,容許程序員以優雅的思惟方式進行復雜的編程。oracle

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

 

相關文章
相關標籤/搜索