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

 

相关文章
相关标签/搜索