DockerFile是用来构建docker镜像的构建文件,是有一系列命令和参数构成的脚本

构建的三步骤:编写dockerfile文件→build构建→docker run

dockerfile保留字指令:

  FROM:当前新镜像是基于那镜像

  MAINTAINER:镜像作者

  RUN:容器需要运行的命令

  EXPOSE:对外端口号

  WORKDIR:指定终端进入的工作目录

  ENV:设置环境变量

  ADD:将宿主机目录下的文件拷贝进镜像,ADD命令会自动处理URL和解压压缩包

  COPY:将宿主机目录下的文件拷贝进镜像

  VOLUME:容器数据卷

  CMD:指定一个容器运行时要运行的文件(可以有很多CMD命令,但只有最后一个生效)

  ENTRYPOINT:指定一个容器运行时要运行的文件

  OMBUILD:构建一个被继承的dockerfile时运行命令,父镜像在子镜像继承之后,父镜像onbuild被cufa触发

案例1:(配置tomcat)# vim dockerfile

  FEOM centos  // 基于centos镜像

  MAINTAINER  WU-WU  // 作者信息:wu-wu

  ENV mypath /usr/local  // 自定义环境变量

  WORKDIR  /usr  //定义工作目录

  COPY jkd-8u171-linux-×86.tar.gz  /usr/local  // 添加jdk×86到/usr/loca

  ADD jkd-8u171-linux-×64.tar.gz  /usr/local  // 添加并解压jdk×64到/usr/local

  ADD apache-tomcat-9.0.6.tar.gz /usr/local  // 添加并解压tomcat到/usr/local

  # 配置java与tomcat的环境变量

  ENV CLASSPATH $JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

  ENV CLASS_HOME /usr/local/apache-tomcat-9.0.6

  ENV CLASS_BASE /usr/local/apache-tomcat-9.0.6

  ENV PATH $PATH:$JAVA_HOME/bin:$CATALINA_HOME/lib:$CATALINA_HOME/bin

  VOLUME ["/mydata1","/mydata2","/mydata3"]  //加入三个容器卷

  RUN yum -y instatll vim  // 安装vim组件

  RUN yun -y install net-tool  // 安装网络组件

  EXPOSE 9999  // 监听端口

  CMD  bin/bash  

构建:# docker -f /home/dockerfile -t centos_tomcat .  // -f:需要带当前路径

   # docker -t centos_tomcat .  //-t:当前路径

    

  

最新文章

  1. Select查询执行顺序
  2. JAVA 判断Socket 远程端是否断开连接
  3. history对象的一些知识点
  4. 【BZOJ-2460&3105】元素&新Nim游戏 动态维护线性基 + 贪心
  5. [转载]Linux命令笔记
  6. 堆外内存操作类ByteBuffer
  7. HTML5自学笔记[ 15 ]canvas绘图实例之钟表
  8. DOS批处理命令-SET命令
  9. 人生新开始——第一天上班
  10. Mac定时关机、重启、休眠命令行
  11. C++ 类定义
  12. 《centos系列》配置vim编辑器
  13. php 无限极分类问题
  14. METAGENOMIC SEQUENCING ANALYSIS WORKFLOW
  15. 时间序列深度学习:seq2seq 模型预测太阳黑子
  16. android studio 添加有趣的注释模板 佛祖保佑无bug等
  17. android中画弧函数canvas.drawArc()之理解
  18. oracle执行完shutdown immediate后登陆不上了怎么办
  19. 基础地图Android SDK
  20. hdu 1869 六度分离(最短路floyd)

热门文章

  1. apk反编译——基础是内功,得牢,飞跃还得多看源码,不同思想的碰撞才能产生火花,加油!!!!!!!!
  2. python-广播
  3. python笔记04-----字典、元组、集合操作
  4. PHP之string之str_split()函数使用
  5. 认识HDFS分布式文件系统
  6. 发布 .Net Core WebAPI 应用程序到 Docker
  7. JVM内存模型和垃圾回收
  8. 用Ajax爬取今日头条图片集
  9. yii 页面加载完成后弹出模态框
  10. 基于.Net下整合FastReport,实现条码标签批量打印