Docker构建JDK 镜像

这篇具有很好参考价值的文章主要介绍了Docker构建JDK 镜像。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Docker构建JDK 镜像

在 Docker官网中的openJDK 镜像中,默认不是使用的北京时间,会导致启动jar应用程序时时区不对的情况,这里在 openJDK镜像的基础上,设置使用中国北京时间,Dockerfile如下

## vim Dockerfile

## 基础镜像,这里使用openjdk15 版本,你可以指定你想要的openjdk版本
FROM openjdk:15.0.2-slim

RUN rm -rf /etc/localtime && \
    rm -rf /etc/timezone && \
    ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && \
    echo "Asia/Shanghai" > /etc/timezone

构建镜像

[root@www ~]# docker build -t kevin2099/openjdk:15.0.2-slim .

## 将镜像发布到 docker 官方仓库,首先需要注册账号哦。
[root@www ~]# docker push kevin2099/openjdk:15.0.2-slim

这个镜像我已 push 到个人的docker 官方仓库,可直接使用 docker pull kevin2099/openjdk:15.0.2-slim 下载

构建通用的 JDK 镜像

构建通用的jdk 镜像,可以运行任意的java 程序

  • 创建 entrypoint.sh 文件
    entrypoint.sh 文件是docker内置默认的入口文件
[root@www ~]# vim entrypoint.sh
#!/bin/sh

M_OPTS="-Duser.timezone=Asia/Shanghai"

## java 参数优化
JAVA_OPTS=${JAVA_OPTS}

# 要启动的jar包名
JAR_NAME=${JAR_NAME}

exec java ${JAVA_OPTS} ${M_OPTS} -jar ${JAR_NAME}
  • 可执行权限
[root@www ~]# chmod +x entrypoint.sh
  • 创建Dockerfile
## vim Dockerfile 
## 基础镜像
FROM kevin2099/openjdk:15.0.2-slim

# 指定 workdir
WORKDIR /app

##将 entrypoint.sh 添加到镜像中
ADD entrypoint.sh /entrypoint.sh

## 执行entrypoint.sh
CMD ["/entrypoint.sh"]
  • 构建镜像
[root@www ~]# docker build -t kevin2099/openjdk:15.0.2-slim-base .
## 将镜像发布到 docker 官方仓库,首先需要注册账号哦。
[root@www ~]# docker push kevin2099/openjdk:15.0.2-slim-base

使用这个通用的镜像构建 java 镜像
假设有个spring boot jar文件,为 equipment-web.jar,通过以下步骤就可以构建java 容器

[root@www equipment]# ll
total 84796
-rwxr-xr-x 1 root root 86824269 Mar 28 08:29 equipment-web.jar
[root@www equipment]# vim Dockerfile
## docker file 内容
FROM kevin2099/openjdk:15.0.2-slim-base

ADD equipment-web.jar equipment-web.jar

[root@www equipment]# ll
total 84796
-rw-r--r-- 1 root root       94 Mar 28 09:08 Dockerfile
-rwxr-xr-x 1 root root 86824269 Mar 28 08:29 equipment-web.jar

[root@www ~]# docker build -t equipment-web:2.0.0 .

在 docker-compose 中使用示例

services:
  equipment-web:
    image: equipment-web:2.0.0
    ports:
      - "8080:8080"
    environment:
      JAR_NAME: "equipment-web.jar"
      JAVA_OPTS: "--enable-preview -Xms512m -Xmx512m"

在 kubernetes 中使用文章来源地址https://www.toymoban.com/news/detail-401173.html

kind: Service
apiVersion: v1
metadata:
  labels:
    equipment-web: equipment-web
  name: equipment-web
  namespace: app
spec:
  ports:
    - port: 8080
      targetPort: 8080
  selector:
    equipment-web: equipment-web
---
kind: Deployment
apiVersion: apps/v1
metadata:
  labels:
    equipment-web: equipment-web
  name: equipment-web
  namespace: app
spec:
  replicas: 1
  revisionHistoryLimit: 10
  selector:
    matchLabels:
      equipment-web: equipment-web
  template:
    metadata:
      labels:
        equipment-web: equipment-web
    spec:
      serviceAccountName: app-admin
      containers:
        - name: equipment-web
          image: equipment-web:2.0.0
          imagePullPolicy: IfNotPresent
          ports:
            - containerPort: 8080
              protocol: TCP
          env:
            - name: JAR_NAME
              value: equipment-web.jar
            - name: JAVA_OPTS
              value: "--enable-preview -Xms512m -Xmx512m"
      restartPolicy: Always

到了这里,关于Docker构建JDK 镜像的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • docker镜像之jdk版本选择

    1:openjdk:8-jdk-alpine3.9 大小:105M 配置: 2:openjdk:8 大小:526M 配置: 3:openjdk:8u312-jre-slim-buster 大小:187M 配置: 参考:java - 团队springboot基础镜像选择思考 - 个人文章 - SegmentFault 思否

    2024年02月12日
    浏览(29)
  • 分别使用Alpine、Docker制作jdk镜像

    目录 制作 jdk 1.0 镜像  ——Docker 1.创建文件夹上传jdk的安装包,和在同级目录下编写Dockerfile文件 2.编写 Dockerfile 文件 3.执行Dockerfile文件,初次依赖镜像的时候会下载相应镜像 优化制作jdk镜像(缩小内存大小)——使用alpine 1、下载alpine镜像 2、创建并编辑Dockerfile 4、执行doc

    2024年02月04日
    浏览(41)
  • Docker(二)镜像详解、镜像构建、镜像优化

    共享宿主机的kernel base镜像提供的是最小的Linux发行版(base镜像:不同发行版的/文件系统) 同一docker主机支持运行多种Linux发行版 采用分层结构的最大好处是:共享资源 镜像通过分层,如果本地已经有了,不管这一层属于哪个镜像,因为每一层都有独立的标识(都是唯一的

    2024年02月05日
    浏览(26)
  • Docker拉取jdk8镜像失败解决方案

    Docker拉取jdk8失败解决方案 最近使用docker部署demo时,需要配置java环境变量,拉取jdk8时,拉取失败,本文记录解决方案: 拉取镜像时,使用的命令是: docker pull java:8 出现了以下情况 : 解决方案: 使用以下拉取命令即可: docker pull openjava:8 使用命令 docker images 查看镜像,可

    2024年02月11日
    浏览(39)
  • linux下jdk的安装和docker打包运行镜像

    https://www.oracle.com/java/technologies/downloads/#java8 从官网上下载linux版本的JDK JDK下载地址 通过ftp或者rz命令上传到linux 我这里需要把JDK安装在/usr/local目录下,在/usr/local下新建文件加java tar命令解压JDK包,解压地址是 /usr/local/java 接下来配置环境变量 vim命令打开/etc/profile 添加下面内

    2023年04月08日
    浏览(29)
  • Docker 构建镜像(docker build)

    docker build 命令用于从Dockerfile构建镜像。 典型用法 选项 -t 给镜像加一个Tag ImageName 给镜像起的名称 TagName 给镜像的Tag名 Dir Dockerfile所在目录 执行结果 根据目录下的 Dockerfile 文件构建镜像 例子 chinaskill-redis 是镜像名 v1.1 是 tag 标签 . 表示当前目录,即Dockerfile所在目录 查看镜

    2024年02月11日
    浏览(34)
  • Docker 镜像解密:分层存储与镜像构建原理

    🌷🍁 博主猫头虎 带您 Go to New World.✨🍁 🦄 博客首页——猫头虎的博客🎐 🐳《面试题大全专栏》 文章图文并茂🦕生动形象🦖简单易学!欢迎大家来踩踩~🌺 🌊 《IDEA开发秘籍专栏》学会IDEA常用操作,工作效率翻倍~💐 🌊 《100天精通Golang(基础入门篇)》学会Golang语言

    2024年02月13日
    浏览(29)
  • docker 构建指定版本的jdk容器,并用docker部署jar包

    有在Linux系统安装docker的经验, 会使用docker常用命令,能明白构建docker容器参数的含义 将如下内容拷贝 到 Dockerfile ,保存并退出。 我用的jdk安装包是 jdk-8u361-linux-aarch64.tar.gz ,你只需要修改它换成你的jdk安装包 用 docker build 完 jdk镜像 后,用命令 docker inspect 容器id | grep Arc

    2024年02月09日
    浏览(36)
  • 【docker】dockerfile构建镜像

    Dockerfile 是一个文本文件,文件中包含了一条条的指令(instruction),用于构建镜像。每一条指定构建一层镜像,因此每一条指令的内容,就是描述该层镜像应当如何构建。 1、dockerfile是 自定义镜像 的一套规则 2、dockerfile由多条指令构成,dockerfile的每一条指令都会对应于do

    2024年02月05日
    浏览(44)
  • Docker 构建 Jar 镜像

    需求:想追加一个命令 -l , 期望执行 ls -al docker run 会覆盖 CMD 后面的命令 此时命令在 docker 启动后自己执行, 我们可以在命令行启动 docker 镜像时, 执行其他命令行参数, 覆盖默认的 CMD docker run 不会覆盖 entrypoint 后面的命令,需要使用 --entrypoint 命令覆盖

    2024年02月07日
    浏览(25)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包