Docker最全教程之使用Docker搭建Java開發(fā)環(huán)境(十七)

前言


Java是一門面向?qū)ο蟮膬?yōu)秀編程語言巫击,市場占有率極高爬橡,但是在容器化實踐過程中,發(fā)現(xiàn)官方支持并不友好钝计,同時與其他編程語言的基礎鏡像相比(具體見各語言鏡像比較),確實是非常臃腫齐佳。


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




目錄

?

  • Java

  • 官方鏡像

  • 各語言鏡像比較

  • 使用Docker搭建Java開發(fā)環(huán)境

  • 編寫Hello?world!

  • 編寫Dockerfile

  • 構(gòu)建鏡像并執(zhí)行


Java


Java是一門面向?qū)ο缶幊陶Z言炼吴,不僅吸收了C++語言的各種優(yōu)點本鸣,還摒棄了C++里難以理解的多繼承、指針等概念硅蹦,因此Java語言具有功能強大和簡單易用兩個特征荣德。Java語言作為靜態(tài)面向?qū)ο缶幊陶Z言的代表,極好地實現(xiàn)了面向?qū)ο罄碚撏郏试S程序員以優(yōu)雅的思維方式進行復雜的編程涮瞻。

Java具有簡單性、面向?qū)ο蠹偻省⒎植际绞鹧省⒔研浴踩允燃邸⑵脚_獨立與可移植性艇抠、多線程幕庐、動態(tài)性等特點。Java可以編寫桌面應用程序家淤、Web應用程序异剥、分布式系統(tǒng)和嵌入式系統(tǒng)應用程序等。

目前最新的版本為Java?9絮重,以下為官方文檔地址:

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

注意 值得注意的是冤寿,Oracle (甲骨文)公司宣布,“2019年1月之后”青伤,如果沒有獲得Oracel公司的商業(yè)許可證督怜,Java SE 8(注:Java SE為Java平臺標準版簡稱)將不會再收到公開更新,也將無法用于“商業(yè)或生產(chǎn)用途”狠角。目前收費標準為号杠,對于?PC,每用戶每月是 2.5 美元丰歌,對于服務器/云部署姨蟋,每個處理器每月是?25 美元


官方鏡像


Java官網(wǎng)鏡像地址為:

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

官方介紹無立帖。在Java社區(qū)眼溶,對Docker的擁抱粒度相對其他語言不是很大,不僅教程相對缺失晓勇,而且官方支持力度不大堂飞。這一點,大家可以通過搜索引擎進一步了解绑咱。不過绰筛,還是有許多Java開發(fā)者也在擁抱Docker。


各語言鏡像比較


寫到這里羡玛,筆者突發(fā)奇想别智,相對主流的鏡像做一個體積比較。

我們可以通過docker images命令來列出本地鏡像稼稿,同時可以使用參數(shù)來進行篩選薄榛。

l?Java

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

?

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

l?.NET Core

docker images microsoft/dotnet


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

l?Python

docker images python

?

l?Php

docker images php?


使用Docker搭建Java開發(fā)環(huán)境


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

l?無需搭建Java開發(fā)環(huán)境

l?開發(fā)環(huán)境變化只需更新鏡像即可(比如從Java8改為Java9)

l?無需安裝IDE(比如eclipse

l?提供一個極簡Demo


編寫Hello?world!


按照碼農(nóng)協(xié)會行業(yè)定律,初學必寫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來編輯上述代碼衬横,支持代碼高亮裹粤,同時還會自動推薦相關(guān)擴展,如下所示:

?

并且還提供完善的文檔教程:

?


編寫Dockerfile



如下所示蜂林,示例Dockerfile文件如下:

# 基于Java 9

FROM?java:9

?

# 設置工作目錄

WORKDIR?/app

?

# 復制文件到工作目錄

COPY?. /app

?

# 設置Java環(huán)境變量

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"]

?

構(gòu)建鏡像并執(zhí)行


接下來遥诉,我們可以執(zhí)行以下命令以構(gòu)建Docker鏡像:

docker build --rm -f "Dockerfile" -t java-hello:latest .

?

構(gòu)建成功后,我們跑起來看效果:

docker run java-hello:latest

?


轉(zhuǎn)載是一種動力 分享是一種美德

如果喜歡作者的文章噪叙,請關(guān)注“magiccodes”訂閱號以便第一時間獲得最新內(nèi)容矮锈。本文版權(quán)歸作者和湖南心萊信息科技有限公司共有,歡迎轉(zhuǎn)載睁蕾,但未經(jīng)作者同意必須保留此段聲明苞笨,且在文章頁面明顯位置給出原文連接,否則保留追究法律責任的權(quán)利子眶。


QQ群:

編程交流群<85318032>?

產(chǎn)品交流群<897857351>


長沙線下技術(shù)社區(qū)已經(jīng)創(chuàng)建猫缭,有興趣者可以通過客服加群。接下來壹店,我們會定期組織一些線下技術(shù)交流分享會,以饗大家芝加。


?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末硅卢,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子藏杖,更是在濱河造成了極大的恐慌将塑,老刑警劉巖,帶你破解...
    沈念sama閱讀 217,907評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件蝌麸,死亡現(xiàn)場離奇詭異点寥,居然都是意外死亡,警方通過查閱死者的電腦和手機来吩,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,987評論 3 395
  • 文/潘曉璐 我一進店門敢辩,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人弟疆,你說我怎么就攤上這事戚长。” “怎么了怠苔?”我有些...
    開封第一講書人閱讀 164,298評論 0 354
  • 文/不壞的土叔 我叫張陵同廉,是天一觀的道長。 經(jīng)常有香客問我,道長迫肖,這世上最難降的妖魔是什么锅劝? 我笑而不...
    開封第一講書人閱讀 58,586評論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮蟆湖,結(jié)果婚禮上故爵,老公的妹妹穿的比我還像新娘。我一直安慰自己帐姻,他們只是感情好稠集,可當我...
    茶點故事閱讀 67,633評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般北秽。 火紅的嫁衣襯著肌膚如雪翘魄。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,488評論 1 302
  • 那天晦鞋,我揣著相機與錄音,去河邊找鬼棺克。 笑死悠垛,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的娜谊。 我是一名探鬼主播确买,決...
    沈念sama閱讀 40,275評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼纱皆!你這毒婦竟也來了湾趾?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,176評論 0 276
  • 序言:老撾萬榮一對情侶失蹤派草,失蹤者是張志新(化名)和其女友劉穎搀缠,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體近迁,經(jīng)...
    沈念sama閱讀 45,619評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡艺普,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,819評論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了鉴竭。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片歧譬。...
    茶點故事閱讀 39,932評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖搏存,靈堂內(nèi)的尸體忽然破棺而出缴罗,到底是詐尸還是另有隱情,我是刑警寧澤祭埂,帶...
    沈念sama閱讀 35,655評論 5 346
  • 正文 年R本政府宣布面氓,位于F島的核電站兵钮,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏舌界。R本人自食惡果不足惜掘譬,卻給世界環(huán)境...
    茶點故事閱讀 41,265評論 3 329
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望呻拌。 院中可真熱鬧葱轩,春花似錦、人聲如沸藐握。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,871評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽猾普。三九已至袜炕,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間初家,已是汗流浹背偎窘。 一陣腳步聲響...
    開封第一講書人閱讀 32,994評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留溜在,地道東北人陌知。 一個月前我還...
    沈念sama閱讀 48,095評論 3 370
  • 正文 我出身青樓,卻偏偏與公主長得像掖肋,于是被迫代替她去往敵國和親仆葡。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 44,884評論 2 354

推薦閱讀更多精彩內(nèi)容

  • 有時候盡管你努力了志笼,你依然得不到好的結(jié)果浙芙。 一個人不看運氣? 沒有志同道合的伙伴籽腕,當你走到一定程度,再往后真是寸步難行纸俭。
    畫玩笑閱讀 116評論 0 0
  • 我總在夢里見到你啊我的愛 他們的面龐都蒙了霧除了你 解放路遍布各個城里但忘來此地 德勝門近在眼前卻毫不歡喜 大約是...
    花膽大閱讀 284評論 0 1
  • 原文鏈接: https://realcurrencies.wordpress.com/2012/01/10/mut...
    dashuo閱讀 454評論 0 0
  • 分子集自由人 負能量小爆棚的周N 怎么才周N白岷堋郎楼! ...
    哲神閱讀 1,651評論 0 13