Docker创建JDK镜像

将要用到的技术及软件:

  • 编译方式:dockerfile
  • Linux镜像:Ubuntu:16.04
  • jdk:jdk1.8.0_144

1、下载Ubuntu16.04基础镜像

docker pull ubuntu:16.04
docker images

Docker创建JDK镜像

2、在本地创建java目录,并下载jdk

Docker创建JDK镜像

3、编写Dockerfile

FROM ubuntu:16.04
  
MAINTAINER  bo

ADD jdk-8u101-linux-x64.tar.gz /usr/local/

ENV JAVA_HOME /usr/local/jdk1.8.0_101
ENV CLASSPATH $JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
ENV PATH $PATH:$JAVA_HOME/bin

编写后,执行build命令:

docker build -t java18

Docker创建JDK镜像

执行docker images查看生产的镜像:

Docker创建JDK镜像

4、运行镜像

Docker创建JDK镜像

5、编译执行java代码测试

启动容器时,映射宿主机当前目录到容器的/usr/src/java目录下:

docker run -v "$(pwd)":/usr/src/java -it java18

进入容器,查看,宿主机目录已经挂载到容器中:

Docker创建JDK镜像

执行javac编译生产class文件,执行java。

Docker创建JDK镜像

这里报错,找不到class,应该是上面Dockerfile中的classpath变量配置错误,前面需要加上".;"

CLASSPATH=.;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar

手动执行class文件的路径。

Docker创建JDK镜像