自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

五個基于Java的Docker鏡像

云計算
盡管 Java 看起來不是很“時髦”,但仍是一門在移動市場、開源界及企業(yè)中占據(jù)主導(dǎo)地位的非常受歡迎的重要的語言。幸運的是,在容器技術(shù)發(fā)展進(jìn)程中,Java 開發(fā)人員并未被冷落。本文將著重介紹五個(譯注:原文誤寫為“四個”)流行的基于 Java 的 Docker 鏡像與配置,以及他們?nèi)绾文軒椭愕膱F(tuán)隊更有效地工作。

【原文編者的話】Java 語言長期占據(jù)編程語言前三甲的位置,其受歡迎程度與重要性不言而喻。在容器化技術(shù)大潮中,Java 可揚容器化之長,避自身“臃腫”之短,取得更高成就。本文選擇了5個有代表性的 Java 鏡像進(jìn)行了介紹,并指出了其現(xiàn)存的一些問題和解決方案,供相關(guān)人員參考。

盡管 Java 看起來不是很“時髦”,但仍是一門在移動市場、開源界及企業(yè)中占據(jù)主導(dǎo)地位的非常受歡迎的重要的語言。舉個例子,你可知道在 Apache 軟件基金會中63%的項目是用 Java 寫的么?

幸運的是,在容器技術(shù)發(fā)展進(jìn)程中,Java 開發(fā)人員并未被冷落。本文將著重介紹五個(譯注:原文誤寫為“四個”)流行的基于 Java 的 Docker 鏡像與配置,以及他們?nèi)绾文軒椭愕膱F(tuán)隊更有效地工作。

STASH

Stash 是個 Git 代碼管理和協(xié)作工具。Stash 允許將部署節(jié)點集群化,從而減少活動主機(jī)的停機(jī)時間,且不會對每個添加的節(jié)點造成性能影響。Stash 還集成了 JIRA(同一公司出品)的可追溯能力,并為團(tuán)隊提供協(xié)作工具,具有類似這樣的功能:當(dāng)一個 pull 請求處于打開狀態(tài)時,代碼被修改將觸發(fā)警報。

細(xì)節(jié)

如果你想將 Git 遠(yuǎn)程主機(jī)從一個 Stash 實例遷移到另一個 Stash 實例,請注意雖然可以把倉庫復(fù)制過去, pull 請求卻是無法被復(fù)制過去的。你也不能在實例間遷移。不過,Stash 的開發(fā)團(tuán)隊會在將來添加這些功能。

在生成 JIRA 數(shù)據(jù)庫結(jié)構(gòu)時,請注意 JIRA 6.1 EAP 3包含了重大修改,可能會造成插件停止工作。

Stash 可以限制對重要代碼分支的寫權(quán)限,防止新成員誤操作。Stash 允許開發(fā)人員將代碼提交到自己的服務(wù)器端倉庫上,然后由項目管理者審核并合并到主項目倉庫中。

在 Stash 中開始一個新項目時,項目管理者應(yīng)從一個全新的倉庫入手:

  1. ssh user@host 
  2. git init --bare /path/to/repo.git  

所有其他成員需要通過 SSH 進(jìn)入這個倉庫,并將其復(fù)制到服務(wù)器的另一個地方。Stash 稱之為“分流流程”(Forking Workflow),這對于來自 SVN 背景的人有點不同尋常。

TOMCAT

Tomcat 是個實現(xiàn)了 Oracle 的 Java Servlet 及 JSP 規(guī)范的開源 Web 服務(wù)器及 Servlet 容器。它提供了一個標(biāo)準(zhǔn)的 HTTP 環(huán)境用于運行代碼。在最簡配置時,Tomcat 運行于單一的系統(tǒng)進(jìn)程中。在舊機(jī)器上工作的開發(fā)人員通過容器安裝 Tomcat 將不需要完整的虛擬機(jī)環(huán)境,從而騰出資源。

細(xì)節(jié)

對運行 Linux 虛擬機(jī)的用戶而言,在 Docker 容器中運行 Tomcat 的性能可能會非常差,容器的啟動速度很慢或非???。

如果宿主系統(tǒng)是 Linux,可以使用熵收集守護(hù)進(jìn)程(Entropy Gathering Daemon,簡稱EDG)來解決這個問題。如果是使用 Boot2Docker,由于 Boot2Docker 的 Tiny Core Linux 擴(kuò)展中沒有 EGD,這個問題將尤為突出。將宿主的 /dev/urandom 裝載成容器的 /dev/random 可作為臨時解決方法。

如果在 Docker 中運行 Tomcat 時,虛擬機(jī)也在經(jīng)歷低熵,VirtualBox 提供了一些方案來提高虛擬機(jī)的熵。

APACHE HADOOP

Apache Hadoop 是個用于將大數(shù)據(jù)集分布到大量計算機(jī)中的開源框架。Hadoop 被設(shè)計成可以從一臺主機(jī)擴(kuò)展到數(shù)萬臺。Hadoop 不依賴硬件來達(dá)成容錯,可在應(yīng)用層面處理失敗。Hadoop 框架由四個模塊組成:Hadoop Common、Hadoop 分布式文件系統(tǒng)(HDFS)、Hadoop YARN 及 Hadoop MapReduce。此外,還有一些 Hadoop 相關(guān)的項目,包括 ZooKeeper 和 Spark。

細(xì)節(jié)

如果你試圖創(chuàng)建多節(jié)點集群用于在 Docker 中運行 Hadoop,你可能會碰到一些麻煩。容器間網(wǎng)絡(luò)可通過 Weave 或 SequenceIQ 的新項目 Cloudbreak 來構(gòu)建。Cloudbreak 可以很容易地在不同的云供應(yīng)商(比如 AWS)上創(chuàng)建 Hadoop 集群。

用戶還遇到過在 Hadoop 中運行 pyspark(Python 中使用的一個Spark編程模型)的困難。嘗試以非 root 用戶保存數(shù)據(jù)幀(dataframe)會失敗。重置 $SPARK_USER 為 root 也無事于補,因為 spark 子節(jié)點都是作為 root 運行的。如果你的項目不需要權(quán)限系統(tǒng),可使用用戶郵件列表的這個方式來解決。

MAVEN

Apache Maven 是個圍繞“項目對象模型”(Project Object Model,簡稱 POM)概念的軟件項目管理工具。Maven 據(jù)此從一個中央信息源來管理項目的構(gòu)建、文檔或報告。Maven 還提供了開發(fā)期工具,提供項目的郵件列表、代碼控制器的變更日志、依賴列表或單元測試報告。

細(xì)節(jié)

在運行 Maven 的 Docker 插件時,有個錯誤:如果用戶沒有指定命令,一個空的 CMD 會被輸出。對于那些想讓容器繼承父容器的信息的用戶而言,會很受挫。使用官方 Docker 鏡像可緩解這些問題。

如果你的服務(wù)器運行著 Jenkins,用于創(chuàng)建發(fā)布版或快照的設(shè)置選項在處理 mvn 命令的 Docker 參數(shù)時很快會變成一個麻煩。Jenkins 的 Maven 發(fā)布插件會自動配置 pom.xml 并部署快照。

GLASSFISH

Glassfish 是個開源應(yīng)用服務(wù)器,支持 EJB、JPA、JSF、JMI、JSP 等等。Glassfish 讓開發(fā)人員能夠創(chuàng)建可擴(kuò)展、可移植并可與傳統(tǒng)技術(shù)整合的應(yīng)用。用戶可以安裝附加組件以訪問其他服務(wù)。

Glassfish 在 Docker Hub 中為想嘗試新功能的開發(fā)人員提供了兩個額外鏡像:Nightly 和 Ozark。Ozark 包含了運行 Glassfight 4.1 的 MVC 1.0,用于支持 Java EE 8。

細(xì)節(jié)

GlassFish 目前存在一個涉及域受損的問題。如果用戶刪除 glassfish/domain/domains 目錄就會出錯。試圖這么做后,文件會像被鎖定了一樣無法被刪除,即便是在容器中重新安裝一份全新的 GlassFish 4.1 也無濟(jì)于事。已經(jīng)有些解決這一問題的方案被公布出來。最常見的是 Github上這一問題的解決方法:將無法被刪除的結(jié)構(gòu)上移一層,然后刪除它。

結(jié)語

本文中,我們介紹了這五個鏡像:

  • Stash 為開發(fā)團(tuán)隊提供了代碼管理、對等審核以及流線型工作流來管理 Git 倉庫。
  • Tomcat 提供了一個輕量的 HTTP 環(huán)境來編譯代碼,節(jié)約了運行多個虛擬機(jī)實例所需的系統(tǒng)資源。
  • Hadoop 是一個很容易在應(yīng)用的所有實例中分布處理大量數(shù)據(jù)的框架。
  • Maven 通過自動化處理應(yīng)用的所有實例來管理項目構(gòu)建過程。
  • Glassfish 允許開發(fā)人員使用 Java EE,并與傳統(tǒng)應(yīng)用整合。

這些是 Docker Hub 上 Java 應(yīng)用和 DevOps 工具的很好示例,你可將其與 Docker 聯(lián)合來提升工作流程、項目管道以及項目的可擴(kuò)展性。

原文鏈接:http://www.dockone.io/article/713
 

責(zé)任編輯:Ophira 來源: dockone
相關(guān)推薦

2024-03-06 18:11:06

Docker鏡像技術(shù)

2024-11-27 16:17:00

2022-11-15 10:01:27

2014-12-23 13:33:35

Dockercontainerimage

2021-10-08 08:20:06

LinuxChromium瀏覽器

2021-08-10 07:41:24

JavaDocker鏡像

2015-06-29 13:32:00

Docker開發(fā)工具PaaS

2022-07-15 14:54:00

DockerLinux技巧

2020-04-23 10:35:10

Docker鏡像實踐

2016-08-22 16:12:27

DockerWeb服務(wù)器API

2019-07-16 14:44:52

DockerMySQL操作系統(tǒng)

2017-10-12 10:28:48

Docker鏡像存儲

2014-12-31 10:54:44

DockerDocker Remo鏡像命令

2021-05-08 16:11:08

Java開發(fā)代碼

2023-02-03 17:29:46

2015-07-29 10:46:20

Java錯誤

2017-03-21 10:02:12

Docker鏡像分層

2015-08-26 10:15:11

OSCONDockerDocker技巧

2015-09-29 10:08:26

DockerJava持續(xù)集成

2024-09-20 11:30:14

點贊
收藏

51CTO技術(shù)棧公眾號