FROM:從哪里構(gòu)建image
FROM scratch # 制作base image
FROM centos # 使用base image
FROM ubuntu:18.04
注意:為了安全,請使用官方的image
LABEL:標(biāo)簽
LABEL maintainer="abc@gmail.com"
LABEL version="1.1"
LABEL description="This is description"
注意:Metadata不可少!
RUN
為了美觀,復(fù)雜的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/list/* # 注意清理cache
RUN /bin/bash -c 'source $HOME/.bashrc; echo
$HOME'
WORKDIR:設(shè)定當(dāng)前工作目錄
WORKDIR /root
WORKDIR /test # 如果沒有,會自動創(chuàng)建的
WORKDIR demo
RUN pwd # 輸出結(jié)果應(yīng)該是 /test/demo
注意:不要用RUN cd代替WORKDIR,盡量使用絕對目錄
ADD和COPY
ADD hello /
ADD test.tar.gz # 添加到根目錄并解壓
WORKDIR /root
ADD hello test # /root/test/hello
WORKDIR /root
COPY hello test # /root/test/hello
大部分情況copy優(yōu)于add
add除了copy功能外,還附帶解壓縮
添加遠(yuǎn)程文件/目錄請使用curl或者wget
ENV 定義常量
env可增加可維護(hù)性
ENV MYSQL_VERSION 5.6
RUN apt-get install -y mysql-server= "${MYSQL_VERSION}" \
&& rm -rf /var/lib/apt/lists/* # 引用常量