一、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的時候引用
最后清理緩存