docker 制作最小化Java镜像

前提:目前大部分的java images都是根据centos和Ubuntu做的,结果是镜像非常大,基本上300-500m,太影响docker的使用了。

思路:换更加轻量级的linux系统,删除jdk中无关的东西

先下载jdk的tar包,然后删除jdk中无关的东西

将jdk1.6.0_33.tgz 解压到 /usr/java/jdk

    rm -rf /usr/java/jdk/*src.zip            /usr/java/jdk/lib/missioncontrol            /usr/java/jdk/lib/visualvm            /usr/java/jdk/lib/*javafx*            /usr/java/jdk/jre/lib/plugin.jar            /usr/java/jdk/jre/lib/ext/jfxrt.jar            /usr/java/jdk/jre/bin/javaws            /usr/java/jdk/jre/lib/javaws.jar            /usr/java/jdk/jre/lib/desktop            /usr/java/jdk/jre/plugin            /usr/java/jdk/jre/lib/deploy*            /usr/java/jdk/jre/lib/*javafx*            /usr/java/jdk/jre/lib/*jfx*            /usr/java/jdk/jre/lib/amd64/libdecora_sse.so            /usr/java/jdk/jre/lib/amd64/libprism_*.so            /usr/java/jdk/jre/lib/amd64/libfxplugins.so            /usr/java/jdk/jre/lib/amd64/libglass.so            /usr/java/jdk/jre/lib/amd64/libgstreamer-lite.so            /usr/java/jdk/jre/lib/amd64/libjavafx*.so            /usr/java/jdk/jre/lib/amd64/libjfx*.so

以下dockerfile 基于 AlpineLinux

#Alpine Linux with a glibc-2.21 and Oracle Java 7
FROM docker.io/jeanblanchard/alpine-glibc

#MAINTAINER Fox Chan

#Java Version
#ENV JAVA_VERSION_MAJOR 7
#ENV JAVA_VERSION_MINOR 60
#ENV JAVA_PACKAGE       jdk

#install java
ADD jdk /usr/java/jdk

# Set environment
ENV JAVA_HOME /usr/java/jdk
ENV PATH ${PATH}:${JAVA_HOME}/bin

才 158.3 MB,太酷了!

时间: 2024-10-27 08:08:04

docker 制作最小化Java镜像的相关文章

docker化java web应用

一.简介 Docker是一个使用Go语言开发的开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的机器上.Docker的发展速度和火爆程度着实令人惊叹,一发不可收拾,形成了席卷整个IT界的新浪潮.学完本课程你将了解到什么是docker,docker的思想以及诸如镜像,仓库,容器等核心概念.你将学会怎样运行一个容器,如何搭建私有仓库,怎么写dockerfile以及怎样把自己的应用放到容器中运行. Docker为什么这么火?它确实解决了大部分企业的痛点,

docker镜像制作---jdk7+tomcat7基础镜像

1. 安装docker rpm -Uvh http://download.fedoraproject.org/pub/epel/6/i386/epel-release-6-8.noarch.rpm yum -y install docker-io? 可使用以下命令,查看 Docker 是否安装成功:docker version 输出了 Docker 的版本号,则说明安装成功了,可通过以下命令启动 Docker 服务: service docker start 一旦 Docker 服务启动完毕,我

Dockerfile介绍、Docker制作jdk镜像

Dockerfile介绍.Docker制作jdk镜像 目标 1.Dockerfile简介 2.Docker制作jdk镜像 Dockerfile简介 dockerfile 是一个文本格式的配置文件, 用户可以使用 Dockerfile 来快速创建自定义的镜像, 另外,使用Dockerfile去构建镜像好比使用pom去构建maven项目一样,有异曲同工之妙 dockerfile基本结构 Dockerfile 由一行行命令语句组成, 并且支持以#开头的注释行,一般而言, Dockerfile 主体内容

大数据平台一键安装OS【定制化OS镜像制作】

 定制化 大数据平台一键安装OS 大数据平台一键安装OS系列 大数据平台一键安装OS[搭建脚本篇] 定制化OS镜像制作 1.操作环境 操作环境:VMware Workstarion 9 and vSphere client 系统:CentOS -6.8-x86_64 工具:gconf-editor anaconda repodata createrepo mkisofs rsync 2.主要思路 定制化是通过kickstart脚本来实现的,linux系统安装完毕后在root目录下会生成anaco

Java之路(六) 局部变量作用域最小化

将局部变量的作用域最小化,可以增强代码的可读性和可维护性,并降低出错的可能性. 将局部变量的作用域最小化的方法有: 方法1:在第一次使用某个局部变量的地方进行声明. a.Java可以在任何可以出现语句的地方声明变量. 这条规则可以让我们在需要的地方声明变量,从而缩小作用域,如果没有这个前提,后面的一切都不成立了. b.过早的声明局部变量不仅会是它的作用域过早的扩展,而且结束的过于晚了. 要正确理解这句话.局部变量的作用域从它被声明的点开始扩展,一直到外围块的结束处.见下图: 如果变量是在“使用它

《Effective Java 第二版》学习笔记 第13条 使类和成员的可访问性最小化

第四章 类和接口 第13条 使类和成员的可访问性最小化 1.设计良好的模块会隐藏所有的实现细节,把它的API与实现清晰的隔离开来,模块之间只通过它们的API进行通信,一个模块不需要知道其他模块的内部工作情况:即信息隐藏或封装,是软件设计的基本原则之一. 2.Java提供了许多机制来协助信息隐藏.访问控制(access control)机制决定了类.接口和成员的可访问性(accessibility). 3.第一规则:尽可能地使每个类或者成员不被外界访问.或者说在保证功能的情况下,使用最小的访问级别

C#窗体皮肤制作(二):创建窗体库项目以及最小化、最大化、关闭按钮的实现

很高兴有朋友关注这篇博客,同时也十分抱歉让关注的朋友久等了,隔上一篇博客也有3个月没有更新,主要是由于3月份辞职,4月份初离职到期离开了北京高德,来到了上海张江.目前新工作也处于熟悉当中,希望大家能体谅.刚好这周末有点时间,我就接着写写,这篇博客主要是针对初学者,希望给为他们能提供一种较易理解的窗体皮肤制作思路,记得自己当初学习C#编程的时候也是摸着石头过河. 闲话少说,我还是接着上篇博客继续写,上次说明了下如何收集图片资源,这次就以360安全卫士来做示例进行模仿,本来也想过模仿下qq,但是qq

docker中如何制作自己的基础镜像

一.本地镜像 举个例子:现在把自己的开发环境打包,取名为centos6-base.tar,然后在docker中,以centos6-base.tar作为基准镜像. 1.创建自己的镜像,放置于/root目录下: #tar --numeric-owner --exclude=/proc --exclude=/sys -cvf centos6-base.tar / 需要注意的是,文件打包支持的类型只有(.tar, .tar.gz, .tgz, .bzip, .tar.xz, or .txz)这几种. 2

Effective Java 第三版——15. 使类和成员的可访问性最小化

Tips <Effective Java, Third Edition>一书英文版已经出版,这本书的第二版想必很多人都读过,号称Java四大名著之一,不过第二版2009年出版,到现在已经将近8年的时间,但随着Java 6,7,8,甚至9的发布,Java语言发生了深刻的变化. 在这里第一时间翻译成中文版.供大家学习分享之用. 类和接口是Java编程语言的核心.它们是抽象的基本单位.该语言提供了许多强大的元素,可以使用它们来设计类和接口.本章包含指导原则,帮助你充分利用这些元素,使你的类和接口是可