使用docker容器运行java程序
java 18
一、文件准备
mkdir 11
cd 11
创建并进入目录
docker pull ubuntu:22.04
wget https://download.oracle.com/java/18/latest/jdk-18_linux-x64_bin.tar.gz
#sudo vim dockerfile内容如下
From ubuntu:22.04
Maintainer webrx "webrx@126.com"
#把java添加到容器中
Add jdk-18_linux-x64_bin.tar.gz /usr/local
Run mv /usr/local/jdk-18.0.1.1 /usr/local/jdk
Env JAVA_HOME /usr/local/jdk
Env CLASSPATH .:$JAVA_HOME/lib
Env PATH .:$PATH:$JAVA_HOME/bin
Workdir /tmp
Volume /tmp
随便写一个java程序方便测试
二、建立镜像
#建立镜像
docker build -t ujdk:18 .
#运行一个一次性容器,并进入这个容器中
summer@us:~/11$ docker run -it --rm ujdk:18 /bin/bash
root@f7d445daab22:/tmp#
root@f7d445daab22:/tmp# java --version
java 18.0.1.1 2022-04-22
Java(TM) SE Runtime Environment (build 18.0.1.1+2-6)
Java HotSpot(TM) 64-Bit Server VM (build 18.0.1.1+2-6, mixed mode, sharing)
三、运行java程序测试
summer@us:~/11$ ls
Demo.java dockerfile jdk-18_linux-x64_bin.tar.gz
summer@us:~/11$ mkdir app
summer@us:~/11$ cp Demo.java app/
#便于创建挂载目录
summer@us:~/11$ cd app
summer@us:~/11/app$ ls
Demo.java
1.不编译直接运行
summer@us:~/11/app$ docker run -it --rm -v ~/11/app:/tmp ujdk:18 java Demo.java
hello world
18.0.1.1
/usr/local/jdk
Linux
1+2+3+4...+100=5050
2.先编译在运行
summer@us:~/11/app$ docker run -it --rm -v ~/11/app:/tmp ujdk:18 javac Demo.java
summer@us:~/11/app$ ls
Demo.class Demo.java hsperfdata_root
summer@us:~/11/app$ docker run -it --rm -v ~/11/app:/tmp ujdk:18 java Demo
hello world
18.0.1.1
/usr/local/jdk
Linux
1+2+3+4...+100=5050
java 17
一、准备文件
summer@us:~/17$ ls
Demo.java f7 jdk-17_linux-x64_bin.tar.gz
summer@us:~/17$ cat f7
From ubuntu:22.04
Maintainer webrx "webrx@126.com"
#把java添加到容器中
Add jdk-17_linux-x64_bin.tar.gz /usr/local
Run mv /usr/local/jdk-17.0.3.1 /usr/local/jdk
Env JAVA_HOME /usr/local/jdk
Env CLASSPATH .:$JAVA_HOME/lib
Env PATH .:$PATH:$JAVA_HOME/bin
Workdir /tmp
Volume /tmp
二、建立镜像
docker build -t ujdk:17 -f f7 .
三、运行java程序测试
summer@us:~/17$ docker run -it --rm -v ~/11/app:/tmp ujdk:17 java Demo.java
hello world
17.0.3.1
/usr/local/jdk
Linux
1+2+3+4...+100=5050
docker pull openjdk:18
docker pull openjdk:18
#创建一次性容器并进入
summer@us:~$ docker run -it --rm -v ~/11/app:/tmp openjdk:18 /bin/bash
bash-4.4#
2、运行Java程序
summer@us:~$ docker run -it --rm -v ~/11/app:/tmp openjdk:18 java /tmp/Demo.java
hello world
18-ea
/usr/java/openjdk-18
Linux
1+2+3+4...+100=5050