专栏首页运维经验分享使用Dockerfile制作Docker镜像 原

使用Dockerfile制作Docker镜像 原

最近项目中使用到Docker,因此趁在周末时间,研究下Docker。Docker环境安装之前已经安装就绪,请参考:《在Centos中安装Docker CE》。我们从简单的开始,使用Dockerfile制作一个能运行Java应用程序的Docker镜像  1、准备JDK和Tomcat,将JDK和Tomcat放到/usr/local/soft目录下,soft目录是我自己新增的 

2、在/usr/local/soft目录下创建Dockerfile文件,文件内容如下

#VERSION 0.0.1

#base image
FROM ubuntu:latest
MAINTAINER longwentao “longwentao255@126.com”

#install jdk and tomcat
ADD jdk-7u79-macosx-x64.dmg /usr/local/
ADD apache-tomcat-7.0.72 /usr/local/apache-tomcat-7.0.72

ADD onStart.sh /usr/local/

ENV JAVA_HOME=/usr/local/jdk1.7.0_79 CLASSPATH=$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar PATH=$PATH:$JAVA_HOME/bin
RUN echo "JAVA_HOME=/usr/local/jdk1.7.0_79.jdk CALSSPATH=$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar\nPATH=$PATH:$JAVA_HOME/bin" >> /etc/profile

#add execute privilege
RUN chmod +x /usr/local/onStart.sh

EXPOSE 8888

#start tomcat
ENTRYPOINT /usr/local/onStart.sh
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22

TIPS:  1) FROM 表示基于哪个基础镜像制作镜像,这里是基于ubuntu的最新镜像  2) MAINTAINER 表示由哪个维护这个镜像  3) ADD 表示将宿主机上的文件复制到镜像的指定目录,这里是将jdk和tomcat复制到镜像的/usr/local目录下;onStart.sh是另一个文件,在ENTRYPOINT中会指定需要运行什么样的命令,因此将这些命令统一放在onStart.sh文件中  4) 因此onStart.sh是新增文件,因此还需要给它添加可执行权限,不然会报权限错误  5) ENV 表示指定环境变量  6) RUN 运行指定的命令,这里用于配置Java环境变量  7) EXPOSE 8888 指定暴露8888端口  8) ENTRYPOINT 进入点,后面跟的是需要执行的脚本

3、在/usr/local/soft目录下创建onStart.sh文件,文件内容如下

#!/bin/bash
/usr/local/apache-tomcat-7.0.72/bin/startup.sh
#tail -f /usr/local/apache-tomcat-7.0.72/logs/onSart.log
  • 1
  • 2
  • 3

4、进入到/usr/local/soft目录下,使用docker build 制作Docker镜像

docker build -t="tomcat-ubuntu:v1.0" .
  • 1

TIPS:  1) -t=”tomcat-ubuntu:v1.0” 指定镜像名称为tomcat-ubuntu,tag为v1.0  2) 最后的一点(.)表示当前目录下的Dockerfile文件

5、最后通过docker images查看生成的镜像 

(adsbygoogle = window.adsbygoogle || []).push({});

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Docker使用Dockerfile创建Centos(tomcat+jdk)镜像

    Docker构建镜像的方法主要有两种:     (1)使用docker commit命令;

    拓荒者
  • monit监控服务进程 原

    Monit是一款功能非常丰富的进程、文件、目录和设备的监测软件,适用于Linux/Unix平台。 它可以自动修复那些已经停止运作的程序,特使适合处理那些由于多种...

    拓荒者
  • CentOS7/RHEL7-使用yum快速安装mongodb3.6

    CentOS上安装epel-release的yum源之后就可以安装MongoDB,但是版本都是比较老的,如果使用MongoDB官方的yum就可以安装到比较新版本...

    拓荒者
  • linux下一键安装jdk1.7.0_79和tomcat7

    首先,准备文件和目录如下图,如果版本不一样的话,需要自己去修改下install.sh脚本中的包的名称即可。

    二狗不要跑
  • Linux基础(day60)

    16.4 配置Tomcat监听80端口 配置Tomcat监听80端口目录概要 vim /usr/local/tomcat/conf/server.xml Con...

    运维小白
  • 从零开始折腾博客(3):一键安装脚本LAMP.sh搭建Wordpress站点

    LAMP:Linux+Nginx+MySQL+PHP,为动态网站的搭建提供了一系列的平台支持。

    idealclover
  • js实现css3的过渡,需要注意的一点(浏览器优化)

    大部分浏览器对元素几何改变时候的重排做了优化。据说是这样子,一定时间内本应多次重排的改变,浏览器会hold住,仅一次重排。其中如果使用分离的一步处理过程,例如计...

    欲休
  • React 中引入 Angular 组件

    为了在我的编辑器中使用 Angular,我用 Angular 编写了一个重命名功能。而为了使用它,我得再次使用一次 customEvent,而在这个微前端架构的...

    不知雨
  • ToB:SaaS要用在成功的生意上

    ? 来源:ToBeSaaS 作者:戴珂 ---- ? ToB的生意困局 如果从2012年的“SaaS元年”算起,中国的ToB已走过七、八年的时间。在这期间美国...

    腾讯SaaS加速器
  • 视频直播与虚拟现实的渲染 - OpenGL ES

    这是一篇OpenGL ES的学习笔记,介绍图像绘制里面用到的概念,学习OpenGL ES的基础知识备忘录。 教程 OpenGLES入门教程1-Tutorial0...

    落影

扫码关注云+社区

领取腾讯云代金券