栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

dockerFile 学习

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

dockerFile 学习

什么是dockerFile
  • 是用来构建docker镜像的构建文件,是由一系列命令和参数组成的脚本

  • 步骤

    • 编写dockerFile-> docker build -> docker run
  • eg

    • FROM scratch
      MAINTAINER https://github.com/CentOS/sig-cloud-instance-images
      ADD centos-6-docker.tar.xz /
      
      LABEL org.label-schema.schema-version="1.0" 
          org.label-schema.name="CentOS base Image" 
          org.label-schema.vendor="CentOS" 
          org.label-schema.license="GPLv2" 
          org.label-schema.build-date="20181006"
      
      CMD ["/bin/bash"]
      
    • scratch 是最 基础的镜像

    • MAINTAINER是通讯地址

dockerFile解析过程
  • 约定
    • 每个命令都要大写,都要有参数至少一个
    • 指令从上到下顺序执行
    • #表示注释,每条指令都会创建一个新的镜像层, 并对镜像进行提交
  • 流程
    • docker从基础镜像运行一个容器
    • 执行一条指令对容器进行修改
    • 执行类似docker commit的操作提交一个新的镜像层
    • docker再基于刚提交的镜像运行一个新容器
    • 执行dockerFIle中的下一条指令知道所有指令都执行完成
  • dockerFile、docker镜像、docker容器代表三个不同的阶段
    • dockerFile是软件的原材料
    • docker镜像是软件的交付品
    • docker容器是软件的运行态
dockerFile保留字指令(体系结构)
  • FROM 所基于的基础镜像
  • MAINTAINER 作者的通讯地址
  • RUN 容器构建时需要运行的命令
  • EXPOSE 暴露出该镜像变成实例对外暴露的端口
  • WORKDIR 创建容器之后,默认的落脚点
  • ENV 设置环境变量,之后可以在后序的指令中使用
  • ADD 拷贝进镜像+解压缩
  • COPY 拷贝
  • VOLUME 容器数据卷,指定容器中的数据卷目录
  • CMD 指定一个容器启动时需要执行的命令
    • 可以有多个命令,但只有最后一个生效
    • CMD会被docker run后的参数替换
  • ENTRYPOINT 和CMD都是一样,指定一个容器启动时需要执行的命令
    • 不会被docker run参数替换,而是被追加组合
  • onBUILD
    • 当构建一个被继承的dockerFIle时运行命令,父镜像在被子继承后的父镜像的onbuild被触发
    • 意思就是,如果别人继承了我,它运行了,那ONBUILD这里的指令就会被触发执行
自定义centos的dockerFile
  • 修改容器进入后的落脚点

  • 安装vim和ifconfig

  • 向外暴露80端口

  • FROM centos
    MAINTAINER https://blog.csdn.net/qq_34687559
    
    ENV  MYPATH /usr/local
    WORKDIR $MYPATH
    
    RUN yum -y install vim
    RUN yum -y install net-tools
    
    EXPOSE 80
    
    CMD echo "success building a image"
    CMD /bin/bash
    
自定义根据参数查ip功能的dockerFIle
  • 输入ip,能自动curl

  • FROM centos
    MAINTAINER https://blog.csdn.net/qq_34687559
    
    RUN yum install -y curl
    
    CMD ["curl","-s","http://ip.cn"]
    
  • 上面的CMD可以替换成ENTRYPOINT,则就不会被覆盖,可以添加参数

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/297932.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号