Docker学习之:Dockerfile 的语法与最佳实践

怎么样,小伙伴们,有没有通过Dockerfile创建出属于自己的镜像呢?,是不是感觉Dockerfile就写这么短不过瘾呀!没关系,这节我们来深入剖析它!
首先从头开始
FROM # 指定Base image

  • FROM scratch # 制作base image
  • FROM centos # 使用base image
  • FROM ubuntu:14.04

FROM的最佳实践就是尽量用官方的Baseimage,因为安全
LABEL

  • LABEL maintainer="1991585851@qq.com"
  • LABEL version="1.0"
  • LABEL description="This is description"

LABEL的最佳实践就是Maindata,希望大家可以像写代码注释一样,写这个为了别人能够更好的使用你的image
RUN

  • RUN yum update && yum install -y vim \
    python-dev # 反斜杠换行

  • RUN apt-get update && apt-get install -y perl
    pwgen --no-install-recommends && rm -rf
    /var/lib/apt/lists/* # 注意 清理cache

  • RUN /bin/bash -c 'source $HOME/.bashrc;echo $HOME'
    RUN 命令其实还是非常常用的,因为我们经常需要安装一些软件!!!!
    RUN的最佳实践就是为了美观,复杂的RUN请用分斜线换行!避免无用的分层,合并多条命令成一行!
    WORKDIR

  • WORKDIR /root

  • WORKDIR /test # 如果没有会自动创建test目录

  • WORKDIR demo
    RUN pwd # 输出结果应该是/test/demo
    这个有点像linux 里面的cd命令。
    WORKDIR的最佳实践就是用WORKDIR,不要用RUN cd!,尽量使用绝对目录!
    ADD and COPY

  • ADD hello /

  • ADD test.tar.gz / # 添加到根目录并解压

  • WORKDIR /root

  • ADD hello test/ # /root/test/hello

  • WORKDIR /root

  • COPY hello test/

ADD与COPY的区别就是ADD 不光可以添加到文件,还可以解压缩
ADD与COPY的最佳实践添加远程文件或者目录请使用curl或者wget

ENV

  • ENV MYSQL_VERSION 5.6 # 设置常量
  • RUN apt-get install -y mysql-server= "${MYSQL_VERSION}"
    && rm -rf /var/lib/apt/lists/* # 引用常量
    ENV的最佳实践尽量使用,可以增加可维护🌟!
    最后还有,VOLUME and EXPOSE and CMD and ENTRYPOINT,我们会在后面单独讲,一口气不能吃个大胖子呀,慢慢来
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 136,161评论 19 139
  • 德国作为第一次和第二次世界大战的始作俑者,虽然发动两次世界大战的背景和原因不一样,但是有一点是相同的,德国拥有当时...
    冷月照江风阅读 3,749评论 0 0
  • 才发现网易云音乐还有「长按屏幕选择歌词导出图片」的功能。一直都很佩服网易的「有态度」和「有情怀」[微笑] ​​​
    文质彬彬0阅读 1,409评论 0 0

友情链接更多精彩内容