Docker 创建镜像入门

403 阅读1分钟

前置条件(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>