前置条件(Preconditions)
一台已安装Docker的机器,输入:
docker --version
展示对应的版本信息即可,以下是我的机子信息:
JackPandeMacBook-Pro:~ jackpan$ docker --version
Docker version 19.03.5, build 633a0ea
创建一个Java新项目:
mvn archetype:generate -DgroupId=org.examples.java -DartifactId=helloworld -DinteractiveMode=false
构建项目:
cd helloworld
mvn package
运行jar包:
java -cp target/helloworld-1.0-SNAPSHOT.jar org.examples.java.App
输出展示:
Hello World!
拉取OpenJDK 8镜像:
docker pull openjdk:8
运行OpenJDK镜像并进入OpenJDK容器:
docker container run -it openjdk:8
输入java -version,正常显示版本信息即可:
JackPandeMacBook-Pro:~ jackpan$ docker container run -it openjdk:8
root@78e420f6f41c:/# java -version
openjdk version "1.8.0_232"
OpenJDK Runtime Environment (build 1.8.0_232-b09)
OpenJDK 64-Bit Server VM (build 25.232-b09, mixed mode)
以上所有准备工作
入门(Getting Started)
在helloworld目录内创建Dockerfile,并且输入如下内容:
FROM openjdk:8
COPY target/helloworld-1.0-SNAPSHOT.jar /usr/src/helloworld-1.0-SNAPSHOT.jar
CMD java -cp /usr/src/helloworld-1.0-SNAPSHOT.jar org.examples.java.App
创建镜像:
docker image build -t hello-jack:1.0.0 .
使用该镜像创建一个容器并且运行:
docker container run hello-jack:1.0.0
终端显示如下:
Hello World!
通过以上步骤,你就可以成功创建出一个基于JDK9的简单镜像。
注意(Attention)
如果本地环境是运行JDK9或者更新的版本,运行mvn package,会报出如下错误(部分):
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.1:compile (default-compile) on project helloworld: Compilation failure: Compilation failure:
[ERROR] Source option 1.5 is no longer supported. Use 1.6 or later.
[ERROR] Target option 1.5 is no longer supported. Use 1.6 or later.
因为针对Java 5的支持,在Java 9时已经不再支持了。
在pom.xml中增加如下配置即可
<properties>
<maven.compiler.source>1.6</maven.compiler.source>
<maven.compiler.target>1.6</maven.compiler.target>
</properties>