Docker學習之:Dockerfile?的語法與最佳實踐

怎么樣,小伙伴們,有沒有通過Dockerfile創(chuàng)建出屬于自己的鏡像呢?,是不是感覺Dockerfile就寫這么短不過癮呀!沒關系,這節(jié)我們來深入剖析它!
首先從頭開始
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 # 如果沒有會自動創(chuàng)建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的區(qū)別就是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,我們會在后面單獨講,一口氣不能吃個大胖子呀,慢慢來
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

  • Spring Cloud為開發(fā)人員提供了快速構建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,506評論 19 139
  • 德國作為第一次和第二次世界大戰(zhàn)的始作俑者,雖然發(fā)動兩次世界大戰(zhàn)的背景和原因不一樣,但是有一點是相同的,德國擁有當時...
    冷月照江風閱讀 683評論 0 0
  • 才發(fā)現(xiàn)網易云音樂還有「長按屏幕選擇歌詞導出圖片」的功能。一直都很佩服網易的「有態(tài)度」和「有情懷」[微笑] ???
    文質彬彬0閱讀 199評論 0 0

友情鏈接更多精彩內容