八、Dockerfile詳細講解

一、FROM

FROM  ubuntu:14:04
>FROM centos
FROM  scratch

代表是要在那個鏡像上面去構(gòu)建新的鏡像
如果是從頭去制作一個鏡像,不依賴其它的鏡像,就用 scratch

二、LABEL

定義了這個鏡像的一數(shù)據(jù)

LABEL 
LABEL  maintainer="joy@163.com"
LABEL version="1.0"
LABEL description="這里是描述"

metadata
maintainer:作者
version:版本
description:描述

LABLE Metadata是不可以少的,道理就是就像我們寫代碼的時候?qū)懽⑨屢粯印?/p>

三、RUN

RUN get-apt update && get-apt install openssh 
\ python-dev

反斜杠代表換行

RUN apt-get update && apt-get install -y perl \
         pwgen --no-install-recommends && rm -rf \
        /var/lib/apt/lists/*

rm -rf /var/lib/apt/lists/*
裝完東西后記得 清理cache

RUN /ban/bash -C 'source $HOME/.bashrc; echo $HOME'

加上環(huán)境變量

注意

一個Dockerfile中多次使用RUN,每一次使用都會分層,為了避免分層,可以把多個命令寫在同一個RUN下面。

四、WORKDIR

創(chuàng)建 工作目錄

WORKDIR  /root
WORKDIR /test
WORKDIR demo
RUN pwd     

沒有目錄會自動創(chuàng)建 目錄, run pwd 輸出結(jié)果 的目錄會是 /test/demo,
也就是說用 WORKDIR 指定工作目錄后,應(yīng)該會進入到 對應(yīng)的目錄上去

注意

用workdir,不要用RUN cd ,盡量使用絕對目錄

五、ADD and COPY

把本地的一些文件添加到image里里

ADD hello /

把本地當目錄下的hello 添加到 鏡像當中的根目錄下

ADD test.tar.gz /

把本地目錄下的test.tar.gz 添加到 鏡像文件的根目錄下并解壓縮

WORKIDR /root
ADD hello test/

創(chuàng)建/root工作目錄 并把系統(tǒng)當前目錄下的hello添加到/root/test中

WORKDIR /root
COPY hello  test/

大部分COPY優(yōu)于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/*

設(shè)置常量 MYSQL_VERSION 5.6
在安裝mysql的時候引用
最后清理緩存

七、VOLUME and EXPOSE

八、CMD and ENTRYPOINT

更多dockerfile語法參考官方文檔

github docker library

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

友情鏈接更多精彩內(nèi)容