使用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

使用docker容器运行java程序相关推荐

  1. Docker容器运行GUI程序的方法(直接进入Docker容器运行或通过SSH连接Docker容器运行)

    以下两种方法都需要先在主机执行 xhost + 命令,若无该命令,先apt安装 x11-xserver-utils 后再执行,否则会报 No protocol specified 这个错 sudo a ...

  2. docker 容器运行 golang程序_「Docker」 - 运行 amp; 管理容器

    容器是基于容器技术所建立和运行的轻量级应用运行环境,它是Docker封装和管理应用程序或微服务的「集装箱」,在Docker中,容器是最核心的部分. 一.容器的创建和启动 Docker容器的生命周期里分 ...

  3. java对docker_如何在docker中运行java程序

    吃鸡游戏 创建一个redis docker容器首先,我们先为redis创建一个DockerfileFROM ubuntu:12.10RUN apt-get updateRUN apt-get -y i ...

  4. Docker(3):docker运行nginx实例以及在java容器中运行java程序

    一.目的 通过运行nginx可以充分理解运行镜像原理,以及镜像内部虚拟网络端口和服务器端口的桥接关系.同时,使用java容器,编译java文件,并且运行java程序. 二.docker运行nginx镜 ...

  5. 【Docker】在Docker容器中编写运行java程序

    1.首先先启动jdk容器或通过镜像创建一个新的jdk容器(jdk镜像下载在这里不做赘述) 2.进入容器中,并创建一个.java文件 3.在.java文件中编写java程序 4.运行java程序,得到输 ...

  6. docker使用dockerfile方式运行java程序

    docker使用dockerfile方式运行java程序 1,下载基础java环境镜像java:8 2,创建文件夹并进入: mkdir dockerfile cd dockerfile 3,打包好的j ...

  7. docker和java容器_使用Docker容器和Java EE进行持续交付

    docker和java容器 组织需要一种使应用程序交付快速,可预测和安全的方法,而诸如docker之类的容器所提供的敏捷性则可以帮助开发人员实现这一目标. 对于Java EE应用程序,这可以在容器中打 ...

  8. 使用Docker容器和Java EE进行持续交付

    组织需要一种使应用程序交付快速,可预测和安全的方法,而诸如docker之类的容器所提供的敏捷性则可以帮助开发人员实现这一目标. 对于Java EE应用程序,这可以在容器中打包应用程序,应用程序服务器和 ...

  9. Docker创建一个java程序镜像

    Docker创建一个java程序镜像 什么是Dockerfile 指令及其说明 个人镜像创建流程 Dockerfile文件创建 使用docker build命令构建镜像 运行镜像 附文件目录结构 什么 ...

最新文章

  1. 通俗易懂!《图机器学习导论》(附链接)
  2. java 视图对象转换,使用spring boot开发时java对象和Json对象转换的问题_JavaScript_网络编程...
  3. 2022年美国大学生数学建模竞赛常见问题汇总
  4. 原来以为(Trie)字典树很难,后来发现不久这么一回事嘛
  5. asp.net mvc 权限过滤和单点登录(禁止重复登录)
  6. ES6 模块化操作
  7. android手机拍摄权限,react-native 手机拍照权限
  8. 某大厂JVM常见面试题(二)吐血整理
  9. 要毕业了,我应该做点啥?
  10. tomcat7.0.55配置单向和双向HTTPS连接
  11. 全套Java基础视频教程,2020最全的java自学路线图
  12. BIOS里的 CSM 是什么意思?
  13. 简述T568A和T568B的区别
  14. robots.txt文件信息泄漏
  15. MEION:Costas环 环路滤波器参数设置程序
  16. Linux drcom
  17. 流行的权限管理 gem devise的定制
  18. 吴裕雄--天生自然 诗经:鹊踏枝·谁道闲情抛弃久
  19. 张萌韩墨羽——打包升级兼容适配
  20. ECharts series动态加载 可执行方案

热门文章

  1. 小红有5本新书,借给3位小朋友
  2. Pr 案例:制作倒计时片段
  3. c++设计地铁售票系统_地铁售票系统设计思想及部分代码
  4. 【挨踢人物传】Vage:高级DBA的突破之路(第13期)
  5. 神经网络模型不收敛原因、解决办法
  6. Linux 虚拟文件系统(VFS)介绍
  7. 3、Xendesktop更改发布桌面的显示名称(MCS静态桌面)
  8. php防止挂马执行exec,防患于未然:如何防止论坛被挂马
  9. C++输出流格式化方法
  10. 巴西柔术第四课:扫技