2.6 dockerfile語法梳理

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/* # 引用常量

Dockerfile Demo Time

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

相關(guān)閱讀更多精彩內(nèi)容

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