「docker让java」docker 怎么用

博主:adminadmin 2022-12-30 09:30:12 1020

今天给各位分享docker让java的知识,其中也会对docker 怎么用进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

本文目录一览:

如何设置Docker容器中Java应用的内存限制

docker run 命令可以对cpu和内存限制,目前没有直接对磁盘限制

Usage: docker run [OPTIONS] IMAGE [COMMAND] [ARG...] Run a command in a new container -c, --cpu-shares=0 CPU shares (relative weight) -m, --memory="" Memory limit (format: numberoptional unit, where unit = b, k, m or g)

用docker来装Java应用在性能上有好处吗?

性能上只是比虚拟机要强一些(这里的虚拟机是指vm 或者psp模拟器这类硬件+操作系统的模拟器。 主要还是为了方便, 你有一个应用要用到python,cmake,db,redis,nodejs等各种个样的环境。 最好的解决方法是把你的开发环境做成一个镜像在虚拟机上跑,但是性能下降很严重。docker的好处是只有那么一点性能消耗,坏处是隔离性不是那么好。 你launch多个应用吃性能的还是jvm, docker可以忽略不计了。

如何在docker中运行java程序

pom.xml文件定义mainClass为sparkexample.Hello,需要在src/main/java/sparkexample/目录下创建Hello.java文件。Dockerfile

最后我们来编写Dockerfile文件,这个Dockerfile使用到了Java镜像(java:oracle-java8),并从安装Maven开始做起。下一步它会安装项目依赖。我们通过pom.xml来解析这些依赖,正如你所看到的,它允许Docker缓存这些依赖。下一步,要编译打包应用,并启动应用。如果重建应用时,pom.xml文件没有任何修改,之前的步骤都被缓存下来了,直接到最后一步启动应用。这可以加快应用的重新构建速度。

创建和运行

一旦这三个文件已经完成,那创建Docker镜像就变得轻而易举了。

$ docker build -t giantswarm/sparkexample .

注意:首次启动时会花费一些时间,因为它要安装Maven并下载所有的依赖。之后再启动就需要几秒钟,因为所有的东西都已经缓存了。

镜像创建之后,用下面的命令创建容器:

docker run -d -p 4567:4567 giantswarm/sparkexample

用下面的命令访问:

curl localhost:4567 hello from sparkjava.com

如何使用Docker 进行Java 开发

现在有非常多的Java Web框架,但我这里并不打算使用它们。我只想要的是一个小的框架所以我选择了Spark,它是一个基于Java 8的极小的框架。Spark使用Maven作为构建工具。

回到顶部

源代码和配置文件

在这个例子中你要增加三个文件:

Maven的配置文件: pom.xml

一个Java类:Hello.java

一个Dockerfile

如果有读者等不及了,可以克隆这个repo:

https:// github.com/giantswarm/sparkexample下面我们会详细解释这三个文件的结构,你可以此视频来快速了解。(读者可以查看原文中的视频,看完视频基本可以了解怎么做)

jdk升级17docker如何部署

关注

在将java应用部署到docker环境的过程中,一个支持运行java程序的镜像是必不可少的。由于oracle授权方面的问题,docker hub 上一般只有基于openjdk的镜像,而且open jdk的镜像不支持字体管理,在使用一些验证码功能时会报错,比如生成验证码功能等。

而且openjdk 的镜像过于庞大,openjdk:17-slim的镜像大小就有407M。基于这些原因,我们可以选择定制一个java运行环境镜像。

jre制作

由于jdk的体积比较大,我们选择jre来作为运行环境,jdk1.8及以前的版本,都是有jre的,但是jdk9以后的版本不在提供jre需要自己制作。

jlink是通过按模块打包的,但是由于目前很多库还不是按模块打包的,所以我们无法知道项目里面都用了那些模块。只好将所有的模块进行打包。这样避免以后出现缺失模块导致应用报错的问题。

下面是windows平台的打包命令

bin\jlink.exe --module-path jmods --add-modules ALL-MODULE-PATH --compress=2 --strip-debug --output jre

1

1

linux下,需要将要打包的java配置到系统环境变量中,不然生成不了,会报jlink not find错误

bin/jlink --module-path jmods --add-modules ALL-MODULE-PATH --compress=2 --strip-debug --output jre17

1

1

–strip-debug 不打包调式信息 --compress=2 开启2级别压缩,这两项减小生成的文件体积

–add-modules ALL-MODULE-PATH表示所有模块

镜像制作

基于alpine镜像

拉取alpine镜像

docker pull alpine

1

1

alpine镜像非常小,只有5.59MB,可以通过docker run -it {iamgeId} sh 运行容器,运行一些简单的命令试试

D:\repo\docker\javadocker run -it c059bfaa849c sh

/ # ls

bin dev etc home lib media mnt opt proc root run sbin srv sys tmp usr var

1

2

3

1

2

3

编写dockerfile

FROM alpine:latest

MAINTAINER lin

#更换aline源

RUN echo "" /etc/apk/repositories

RUN echo "" /etc/apk/repositories

#update apk

RUN apk update apk upgrade

RUN apk --no-cache add ca-certificates

# bash vim wget curl net-tools

RUN apk add bash bash-doc bash-completion

RUN apk add vim wget curl net-tools

RUN rm -rf /var/cache/apk/*

RUN /bin/bash

#setup glibc

RUN wget

RUN wget

RUN wget

RUN wget

RUN wget -q -O /etc/apk/keys/sgerrand.rsa.pub

RUN apk add glibc-2.32-r0.apk

RUN apk add glibc-bin-2.32-r0.apk

RUN apk add glibc-dev-2.32-r0.apk

RUN apk add glibc-i18n-2.32-r0.apk

RUN rm -rf *.apk

#setup date

RUN apk add tzdata

cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

#setup language 解决中文乱码

RUN /usr/glibc-compat/bin/localedef -i en_US -f UTF-8 en_US.UTF-8

ENV LANG=en_US.UTF-8

#copy jdk-8u251-linux-x64.tar.gz

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

#setup java env

ENV JAVA_HOME=/usr/local/jdk1.8.0_251

ENV PATH=$PATH:.:$JAVA_HOME/bin

ENV CALSSPATH=$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

构建镜像

docker build -t jdk17-orcle-alpine .

1

1

总结:由于alpine缺少很多东西,比如glibc,需要安装后才能运行jvm,所以暂时放弃这条路

自己安装glibc比较麻烦,可以使用已经安装好glibc的镜像

#FROM alpine:latest

FROM frolvlad/alpine-glibc

MAINTAINER lin

COPY ./jre17 /usr/local/jre17

#setup java env

ENV JAVA_HOME=/usr/local/jre17

ENV PATH=$PATH:$JAVA_HOME/bin

ENV CALSSPATH=$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

1

2

3

4

5

6

7

8

9

10

1

2

3

4

5

6

7

8

9

10

该方法构建的镜像体积是比较小,但是启动java应用(基于spring boot)的时候jvm会崩溃,原因不明

基于ubuntu

ubuntu镜像相对来说也不是很大,才70多M

FROM ubuntu:latest

MAINTAINER lin

#更新软件源

RUN apt-get update

#安装字体支持

RUN apt-get install fontconfig -y

#清理缓存

RUN apt-get clean

#在windows环境下构建,将/usr/share/zoneinfo/Asia/Shanghai拷贝到本地目录

COPY ./Shanghai /etc/localtime

#setup language 解决中文乱码

#设置中文支持

ENV LANG C.UTF-8

#解压jdk并删除lib目录下的源码

COPY ./jre17 /usr/local/jre17

#授执行权限

RUN chmod -R 750 /usr/local/jre17/bin

#setup java env

ENV JAVA_HOME=/usr/local/jre17

ENV PATH=$PATH:$JAVA_HOME/bin

ENV CALSSPATH=$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

构建

docker build -t mydockerhub:5000/jdk17-orcle-ubuntu:jre-17 .

1

1

总结:除了需要处理语言问题外,其他都比较顺利,而且结果镜像211MB,比官方提供的小了很多,暂时就这样吧,以后有时间再折腾

打开CSDN,阅读体验更佳

最新发布 Docker部署SpringBoot项目(超详细)

Docker部署SpringBoot项目(超详细)

继续访问

JDK17抽取JRE并制作docker镜像

jre docker

继续访问

docker 搭建 Oracle JDK(版本可更换) 镜像

首先在本机创建jdk目录 mkdir -p /root/jdk 下载jdk到/root/jdk目录下 (版本随意)也可以直接使用 rpm 下载,各凭本事(!.!) 这里我下载的版本是jdk-8u211-linux-x64.tar.gz 在/root/jdk目录下创建Dockerfile文件 vim Dockerfile 内容为 # 基础镜像为 ce...

继续访问

Linux 安装 jdk8-17、运行 jar

前提是先把网络ip配置好官网下载地址: jdk各个版本下载 jdk各个版本档案A:网上随便兽兽道首;file–connect—hostName(linux的ip)—user name(系统用户)—prot(端口:默认)–authentication(选择password)—点击connect后----输入密码选中点击鼠标右键—Upload----- 删除 3.Ubuntu卸载jdk 4、在Linux解压文件 三、

继续访问

免密登录容器dockerfile ,docker部署openjdk-17 免密登录容器dockerfile

免密登录容器dockerfile

继续访问

笔记:Docker创建最小JDK运行环境

JDK1.8 Docker最小镜像

继续访问

jre-7u17-windows-x64.exe

JDK是一个开发环境,用于构建应用程序,applet程序,和使用Java编程语言的组成部分。 Java Development Kit(JDK)是Sun Microsystems针对Java开发员的产品。自从Java推出以来,JDK已经成为使用最广泛的Java SDK。JDK 是整个Java的核心,包括了Java运行环境,Java工具和Java基础的类库。JDK是学好Java的第一步。而专门运行在x86平台的Jrocket在服务端运行效率也要比Sun JDK好很多。从SUN的JDK5.0开始,提供了泛型等非常实用的功能,其版本也不断更新,运行效率得到了非常大的提高。 定于2月19日发布的Java SE原来的重要补丁更新 - 2013年2月,但甲骨文决定加快释放该重要补丁更新,因为积极开发“野生”的Java漏洞影响在桌面浏览器,运行时环境(JRE)与该重要补丁更新解决。 更新日志:JDK 7u17 发布,该版本修复了浏览器插件的严重的安全漏洞:CVE-2013-1493,Oracle 强烈建议使用 Java 浏览器插件用户升级。 重要补丁更新是针对多个安全漏洞的补丁集合。为Java SE重要补丁更新还包括非安全修复程序。重要补丁更新是累积性的,每个公告只描述自上一个重要补丁更新和安全警报添加的安全修复。因此,以前的重要补丁更新和安全警报建议应检讨有关以前累积的安全修复程序。 请参考: 重要补丁更新和安全警报的信息,有关Oracle安全性公告。 由于一个成功的攻击所带来的威胁,Oracle强烈建议用户尽快应用CPU修复程序。该重要补丁更新包含50个新安全修复程序的Java SE的产品。 支持受影响的产品 该重要补丁更新解决的安全漏洞影响以下按类别列出的产品。请点击可用补丁列或可用补丁表中的链接来访问这些补丁的文档。

Java17 安装教程与环境配置(完整版)

Java17 安装教程与环境配置(完整版)掉坑经历安装步骤环境配置 掉坑经历 今天做项目的时候,发现新项目用的的spring-boot-starter-parent是最新的,一开始我使用2.5.7一直爆红,当时想着降低版本就能使用了,然后被告知,jdk需要最新版本的,才能运行项目。于是乎,开始找教程,但是我看了好几篇教程,都没正确找到最新jdk下载,这里拿个别人博文给的链接,结果你发现,你打开

继续访问

jre17 面向对象+集合的练习

简单的初学者综合练习

继续访问

使用docker容器运行java程序

使用docker容器运行java程序 java 18 一、文件准备 mkdir 11 cd 11 创建并进入目录 docker pull ubuntu:22.04 wget #sudo vim dockerfile内容如下 From ubuntu:22.04 Maintainer webrx "webrx@126.com" #把java添加到容器中 Add jdk-1

继续访问

docker安装JDK

docker安装jdk有很多种方式,这里使用自己构建镜像的方式。 1.下载jdk安装包 安装包下载可以自己去官网下载,如果闲速度慢可以找一些网络资源; 安装包下载好后,上传到/usr/local/docker/jdk下,这个文件目录需要自己创建 2.创建Dockerfile 在/usr/local/docker/jdk文件夹下创建Dockerfile,Dockerfile内容如下: FROM centos:centos7 MAINTAINER tao # 新建目录 RUN mkdir /usr

继续访问

jre.17_32位

jre.17_32位,适用于JAVA空间,安装在windows操作系统中!

jdk8、jdk11、jdk17版本下载

jdk8、jdk11、jdk17版本是长时间支持的版本

Java17(291)之后 , 禁用了TLS1.1 , 使JDBC无法用SSL连接SqlServer怎么办,以下是解决办法

修改java.security文件 1.找到jre的java.security文件 2.打开java.security并搜索 “jdk.tls.disabledAlgorithms=” 3.删掉TLSv1, TLSv1.1, 4.保存,可以了 修改后的样例,jre17可直接复制 修改java.security文件 1.找到jre的java.security文件 如果是jre , 在 {JAVA_HOME} / jre / lib / security中, 比如👇 C:\Java\jdk-17.0.3.1\c

继续访问

docker构建jdk基础镜像,部署程序

docker构建jdk基础镜像

继续访问

Docker工具的使用

初识 Docker jdk的版本问题,环境造成的问题很常见,称为代码的水土不服 把环境和代码一起传过去 软件跨环境迁移的问题就解决了 Docker 是一个开源的应用容器引擎 诞生于 2013 年初,基于 Go 语言实现, dotCloud 公司出品(后改名为Docker Inc) Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上。 容器是完全使用沙箱机制,相互隔离 容器性能开销极低。 Docker 从 1.

继续访问

热门推荐 jdk、jre各版本下载

jdk、jre各版本下载 JDK安装包中是包含JRE的。两者都可以单独下载安装。 安装包的下载官网: 当前最新版本出到了Java SE 10.0.1;官网上JRE分为JRE和ServerJRE。 JRE、ServerJRE 选择的区别如下图: 即JRE是...

继续访问

java17+javaFX17+openCV4.5.5 实现远程桌面功能 最全完整版

使用java17+javaFX17+openCV4.5.5+springboot开发的远程桌面客户端和服务端 99%通过JAVA实现,优化了CPU占用、内存占用、网络占用 新手小白也可以根据文章玩得转

继续访问

docker安装jdk并运行若依后端jar包

为了以后吹牛逼, 采用jdk8+centos镜像 =jdk镜像 吧jar包扔进持久化文件里 1 下载centos 下载指定centos镜像 docker pull centos:centos7 最新的版本docker pull centos 两百兆的系统 不可思议 2 下载jdk 就是下个linux版jdk8 传到服务器/home/docker/jdk # 路径 cd /home/docker/jdk # 解压 tar -zxvf jdk-8u291-linux-x64.tar.gz 编写D

继续访问

JDK和JRE下载大全

JDK下载和环境变量配置

继续访问

关于docker让java和docker 怎么用的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。