Dockerfile是构建镜像的指令文件,按照dockerfile的规范分为如下几部分:

  • FROM 基础镜像,FROM alpine:3.8(任何的一个镜像都可以作为基础镜像,主要看我们做的镜像是干嘛的,比如tomcat镜像需要依赖jdk,那我们可以从一个最简单的操作系统去安装jdk再安装tomcat,也可以直接使用别人做好的jdk镜像安装tomcat)
  • LABEL 标签,一般标记维护者信息LABEL maintainer='XXX'
  • 镜像操作指令,包括ENV、RUN、ADD、COPY、WORKDIR、EXPOSE等
  • 镜像启动的命令,CMD或者ENTRYPOINT,不建议使用ENTRYPOINT

详细说明:

  • ENV 设置镜像启动时的环境变量,ENV JAVA_HOME=/usr/lib/jvm/default_jvm
  • ADD 把本地文档拷贝到镜像中,如果是压缩文件,会自动解压ADD tomcat.tar.gz /usr/local/
  • COPY 把本地文档拷贝到镜像中,COPY server.xml /usr/local/tomcat/conf/server.xml
  • WORKDIR 容器的工作目录,进入容器时默认进入的目录,WORKDIR /usr/local/tomcat/webapps/
  • EXPOSE 暴露的端口,EXPOSE 80
  • CMD 启动镜像执行的命令CMD ["catalina.sh", "run"]
  • RUN 执行命令RUN apk --no-cache add tzdata bash bash-doc bash-completion
 

执行命令docker build -t tomcat:8-jre8-alpine .创建镜像
执行命令docker images|grep tomcat查看镜像

启动镜像

docker run -d -p 80:80 --name tomcat -v `pwd`/webapps/:/usr/local/tomcat/webapps/ tomcat:8-jre8-alpine

Dockfile的详解的更多相关文章

  1. Docker命令详解

    Docker命令详解   最近学习Docker,将docker所有命令实验了一番,特整理如下: # docker --help Usage: docker [OPTIONS] COMMAND [arg ...

  2. Docker详解(三)

    目录 1. Docker镜像 1.1 镜像存储 1.2 base镜像 1.3 镜像Commit 2. Docker容器数据卷 2.1 基本介绍 2.2 数据卷 2.3 数据卷容器 序言:前两章我们主要 ...

  3. Docker详解(四) — Dockerfile剖析

    目录 1.Dockfile简介 2. Dockerfile构建过程解析 3. Dockerfile体系结构 4. 案例 4.1 自定义mycentos 4.2 CMD/ENTRYPOINT 镜像案例 ...

  4. Dockerfile详解,以及构建自定义镜像

    Dockerfile使用 前面的操作我们一直下载下载官方已经构建好的镜像,直接下载后就可以run,如果我们想要在镜像中添加自己的应用,比如在tomcat中添加自己的app,构建一个自定义的镜像,那么我 ...

  5. Linq之旅:Linq入门详解(Linq to Objects)

    示例代码下载:Linq之旅:Linq入门详解(Linq to Objects) 本博文详细介绍 .NET 3.5 中引入的重要功能:Language Integrated Query(LINQ,语言集 ...

  6. 架构设计:远程调用服务架构设计及zookeeper技术详解(下篇)

    一.下篇开头的废话 终于开写下篇了,这也是我写远程调用框架的第三篇文章,前两篇都被博客园作为[编辑推荐]的文章,很兴奋哦,嘿嘿~~~~,本人是个很臭美的人,一定得要截图为证: 今天是2014年的第一天 ...

  7. EntityFramework Core 1.1 Add、Attach、Update、Remove方法如何高效使用详解

    前言 我比较喜欢安静,大概和我喜欢研究和琢磨技术原因相关吧,刚好到了元旦节,这几天可以好好学习下EF Core,同时在项目当中用到EF Core,借此机会给予比较深入的理解,这里我们只讲解和EF 6. ...

  8. Java 字符串格式化详解

    Java 字符串格式化详解 版权声明:本文为博主原创文章,未经博主允许不得转载. 微博:厉圣杰 文中如有纰漏,欢迎大家留言指出. 在 Java 的 String 类中,可以使用 format() 方法 ...

  9. Android Notification 详解(一)——基本操作

    Android Notification 详解(一)--基本操作 版权声明:本文为博主原创文章,未经博主允许不得转载. 微博:厉圣杰 源码:AndroidDemo/Notification 文中如有纰 ...

随机推荐

  1. 从ES6到ES10的新特性万字大总结

    介绍ECMAScript是一种由Ecma国际(前身为欧洲计算机制造商协会)在标准ECMA-262中定义的脚本语言规范.这种语言在万维网上应用广泛,它往往被称为JavaScript或JScript,但实 ...

  2. 操作COOKIE的函数

    一个同学慧涛分享给我的他写的操作cookie的函数,贴出来,做个笔记: //操作cookie //删除cookie hcookie('cookiename','','del'); //查询cookie ...

  3. ES6-let声明变量

    在es6中除了var还可以用let申明变量,并且建议使用let而不要再使用var,两者有以下区别: 1.let不能重复声明变量 var name = 'tom'; var name = 'jack'; ...

  4. 整个DIV 块垂直居中

    <!-- 垂直居中一定要有确定大小的 父容器(根) html,body 一般100% --> <!DOCTYPE html> <html lang="en&qu ...

  5. [蓝桥杯2017初赛]Excel地址

    题目描述 Excel单元格的地址表示很有趣,它使用字母来表示列号. 比如,A表示第1列,B表示第2列,Z表示第26列,AA表示第27列,AB表示第28列,BA表示第53列,.... 当然Excel的最 ...

  6. Atcoder Grand Contest 039C(容斥原理,计数DP)

    //每次操作相当于将最低位取反加到最高位(N~1位)#define HAVE_STRUCT_TIMESPEC#include<bits/stdc++.h>using namespace s ...

  7. win10 免安装版本的MySQL的下载安装和配置

    一.概述 网上找了好多,发现好多不是linux系统的就是与现在新版本有出入,自己做小项目亲手实践了一下,供大家借鉴. MySQL版本:mysql-5.7.17 下载方法: 1.MySQL官方网址htt ...

  8. Thread的join方法

    一个线程在执行的过程中,可能调用另一个线程,前者可以称为调用线程,后者成为被调用线程. Thread.Join方法的使用场景:调用线程挂起,等待被调用线程执行完毕后,继续执行. 如下案列: 当NewT ...

  9. iOS项目开发日常之创建文件(协议、类、分类、扩展)

    iOS项目开发过程中,是以不断创建文件的形式进行着的. 创建得比较频繁的文件类型是: 这两个类型中创建的文件有:子类.分类.扩展.协议四种文件,如下:    这四类文件是频繁创建的,我们来看一下各自分 ...

  10. Unity3D~纹理格式

    因为之前自己从来没有好好看过这部分,一直都是用的DXT压缩图片,结果发现原来ios是不支持DXT的, 还不知道我项目那么卡是不是这部分引起的, 但愿是~这样应该就可以解决游戏在ios上只有6.8帧的问 ...