背景

在编写dockerfile时,基础镜像要么太大,要么缺少jdk;dockerhub中的openjdk五花八门,不知道选择哪个

解决方案

我在项目中通常选择 openjdk作为基础镜像

FROM openjdk:11.0.11-jdk-slim

MAINTAINER mintonzhang@163.com

ENV TZ=Asia/Shanghai

RUN echo -e "${TZ}" > /etc/timezone && ln -sf /usr/share/zoneinfo/${TZ} /etc/localtime

以上是官方镜像 https://registry.hub.docker.com/_/openjdk

这个镜像比较全,而且有jre也有jdk,架构也全。

什么时候使用jdk,什么时候使用jre

jdk: 下载时会占用比较大的空间(大概多了100多M),但是如果项目中接入了Arthas(阿里在线java调试)时,必须要使用jdk,不然会报错。

jre:空间小,绝大部分项目都能正常使用

不过,还是要自行测试,再决定使用哪个

存在的坑

  1. oracleJDK存在闭源的情况,dockerhub貌似没有官方的jdk,大部分都是个人制作上传。除非是自己编写的,否则最好不要使用,可能存在风险。
  2. 不同的基础镜像,配置时区存在很大的差别,有的配置非常复杂,有的非常简单。
  3. jdk和jre的区别

docker基础镜像java版本选择和推荐的更多相关文章

  1. 庐山真面目之九微服务架构 NetCore 基于 Docker 基础镜像和挂载文件部署

    庐山真面目之九微服务架构 NetCore 基于 Docker 基础镜像和挂载文件部署 一.简介      我们在上一篇文章<庐山真面目之八微服务架构 NetCore 基于 Dockerfile ...

  2. 中标麒麟龙芯平台--docker基础镜像制作

    Docker 是一个开源的应用容器引擎,基于 Go 语言 并遵从Apache2.0协议开源.Docker 的出现为开发人员和运维人员带来了极大的便利.Docker在X86下常见的发行版Linux如Ub ...

  3. linux 创建docker基础镜像

    通过Dockerfile创建镜像时,一般都是基于 Docker Hub 提供的官方镜像.以下分别介绍在ubuntu16和centos7 两个系统上创建个人私有基础镜像的方法.  一.ubuntu16创 ...

  4. 测试环境docker化(一)—基于ndp部署模式的docker基础镜像制作

    本文来自网易云社区 作者:孙婷婷 背景 我所在测试项目组目前的测试环境只有一套,在项目版本迭代过程中,开发或产品偶尔会在测试环境进行数据校验,QA人数在不断增加,各个人员在负责不同模块工作时也会产生脏 ...

  5. Docker 基础 : 镜像

    目录 获取镜像 查看镜像信息 搜索镜像 删除镜像 创建镜像 导出和导入镜像 上传镜像 总结 镜像是 Docker 的三大核心概念之一.Docker 运行容器前需要本地存在对应的镜像,如果本地没有对应的 ...

  6. 从零开始构建docker基础镜像

    段子 今年基本已经结束了,我问了很多朋友今年挣钱了没?大多朋友都有挣,而且挣得五花八门:有挣个屁的,有挣个锤子的,有挣个毛的,更有甚者挣个妹的,奢侈之极!最恐怖的是挣个鬼的!有的还可以,挣个球,下午我 ...

  7. Docker基础-镜像操作

    1.搜寻镜像 docker search [TERM] 可以搜索远程仓库中共享的镜像,默认搜索官方仓库的镜像. docker search参数: --automated=true|false :仅显示 ...

  8. 尝试自己建立以alpine 为基础的docker基础镜像和组件镜像

    安装ubuntu14.04 然后 #获取root权限 sudo su #安装docker apt-get install docker #准备基础镜像 docker pull alpine docke ...

  9. howto:在构建基于debian的docker基础镜像时,更换国内包源

    debian经常被用作构建应用镜像的基础镜像,如微软在构建linux下的dotnetcore基础镜像时,提供了基于debian 8(jessie)和debian 9(stretch)的镜像. 由于这些 ...

  10. dockerfile的常用基础镜像——java镜像

    1. java镜像使用Java镜像的最直接方法是把它作为基础镜像或运行时环境. 1.1 镜像tagjava:<version>如果你不确定你需要什么,那么请用这个tag.它可以作为一个运行 ...

随机推荐

  1. Pandas库学习笔记(4)---Pandas DataFrame

    Pandas DataFrame Pandas DataFrame基本操作 DataFrame是二维数据结构,即,数据以表格形式在行和列中对齐. DataFrame的功能 潜在的列是不同类型的 大小可 ...

  2. 题解:CF1918B Minimize Inversions

    CF1918B Minimize Inversions 思路 暴力 一个一个的算,复杂度巨大. 数学规律 让逆序最少,也就是让升序更多.我们可以通过多组数据实验,最终我们会发现,将数列 \(A\) 减 ...

  3. 计算机二级考试 C语言篇

    本篇仅适用于计算机二级考试C语言篇 首先介绍一下二级考试时间问题(以本人考试2022年为例): 一. 2022年全国计算机二级考试时间   2022年全国计算机考试举办4次,(3月.5月.9月.12月 ...

  4. springboot3整合高版本spring data neo4j

    本博客适用于springboo data neo4j 7.2.6版本,详情阅读官网https://docs.spring.io/spring-data/neo4j/reference/7.2/intr ...

  5. 支付宝退款和结果查询接口简单实现(.Net 7.0)

    〇.前言 支付宝对 .Net 的支持还是比较充分的,在每个接口文档中都有关于 C# 语言的示例,这样就大大降低了对接的难度,很容易上手. 官方接口文档地址:退款-alipay.trade.refund ...

  6. hadoop 查看日志

    告警和日志信息监控 hadoop集群启动 su - hadoop #切换到hadoop用户 [hadoop@master ~]$ start-all.sh #启动 zookeeper集群启动 zkSe ...

  7. IP地址的精细化操作(将IP地址转为相对应的地址)

    第一步: 导入maven依赖: <dependency> <groupId>org.lionsoul</groupId> <artifactId>ip2 ...

  8. Python和RPA网页自动化-让select标签下拉框选择指定文本的方法

    以影刀商城(https://shop.yingdao.com/webOperations/index)为例: 该下拉框有<select>标签.分别使用Python和RPA网页自动化让下拉框 ...

  9. 【CI/CD】Jenkins 部署前后端项目Demo

    前置环境准备: 参考尚硅谷最新发布的Jenkins教程 同样准备了三台服务器: 192.168.124.34 Centos7 8G内存 用于安装GitLab 192.168.124.35 Centos ...

  10. pytorch报错:Variable._execution_engine.run_backward( # Calls into the C++ engine to run the backward pass RuntimeError: FIND was unable to find an engine to execute this computatio

    GPU模式下运行pytorch代码报错,pytorch为2.2.1,NVIDIA驱动版本535.161.07 File "/home/devil/anaconda3/envs/sample- ...