前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >使用Dockerfile制作Docker镜像 原

使用Dockerfile制作Docker镜像 原

作者头像
拓荒者
发布2019-03-11 11:20:13
6080
发布2019-03-11 11:20:13
举报
文章被收录于专栏:运维经验分享运维经验分享

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

这里写图片描述
这里写图片描述

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

代码语言:javascript
复制
#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文件,文件内容如下

代码语言:javascript
复制
#!/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镜像

代码语言:javascript
复制
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({});

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2018/08/23 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
容器服务
腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档