dockerfile

FROMmysql

  必須爲第一個命令,指定基礎鏡像git

FROM <image>
FROM <image>:<tag>
FROM <image>@<digest>
FROM mysql:5.6

MAINTAINERsql

  維護者信息docker

MAINTAINER <name>
MAINTAINER Yishi.Chen

LABELshell

  給鏡像添加信息。使用docker inspect可查看鏡像的相關信息apache

LABEL version="1.0"
LABEL description="This text illustrates \
that label-values can span multiple lines."

RUNubuntu

  構建鏡像時執行的命令markdown

# 由shell啓動,Linux默認爲`/bin/sh -c`,Windows默認爲`cmd /S /C`
RUN <command>
# 運行可執行文件
RUN ["executable", "param1", "param2"]
RUN apk update
RUN ["/etc/execfile", "arg1", "arg1"]

ADDapp

  將本地文件添加到容器中,identity, gzip, bzip2,xz,tar.gz,tgz等類型的文件將被添加tar -x命令,進行解壓ide

ADD <src>... <dest>
ADD ["<src>",... "<dest>"] 用於支持包含空格的路徑
ADD hom* /mydir/        # 添加全部以"hom"開頭的文件
ADD hom?.txt /mydir/    # ? 替代一個單字符,例如:"home.txt"

ADD test relativeDir/          # 添加 "test" 到 `WORKDIR`/relativeDir/
ADD test /absoluteDir/         # 添加 "test" 到 /absoluteDir/

COPY

  同ADD,只是不會解壓文件。

CMD

  構建容器後調用,也就是在容器啓動時才進行調用。

CMD command param1 param2 (執行shell內部命令)
CMD echo "This is a test." | wc -

ENTRYPOINT

  配置容器,使其可執行化。配合CMD可省去"application",只使用參數。

ENTRYPOINT ["executable", "param1", "param2"] (可執行文件, 優先)
ENTRYPOINT command param1 param2 (shell內部命令)
FROM ubuntu
ENTRYPOINT ["top", "-b"]
CMD ["-c"]

 

ENV

  設置環境變量

ENV <key> <value>
ENV <key>=<value> ...
ENV myName="Yishi" myDog=Rex\ The\ Dog \
    myCat=fluffy

  等同於

ENV myName Yishi Doe
ENV myDog Rex The Dog
ENV myCat fluffy

EXPOSE

  指定於外界交互的端口,在容器啓動時用-p傳遞參數,例如-p 3307:3306將容器內的3306綁定到本機的3307

EXPOSE <port> [<port>...]
EXPOSE 80 443
EXPOSE 8080

VOLUME

  用於指定持久化目錄,在容器啓動時用-v傳遞參數,例如-v ~/opt/data/mysql:/var/lib/mysql將本機的~/opt/data/mysql和容器內的/var/lib/mysql作持久化關聯,容器啓動時會加載,容器關閉後會回寫。

VOLUME ["/data"]
VOLUME ["/data"]
VOLUME ["/var/www", "/var/log/apache2", "/etc/apache2"]

WORKDIR

  工做目錄

WORKDIR /path/to/workdir
WORKDIR /a  (這時工做目錄爲/a)
WORKDIR b  (這時工做目錄爲/a/b)
WORKDIR c  (這時工做目錄爲/a/b/c)

USER

  用於設定容器的運行用戶名或UID,USER 123USER git
  RUNCMD and ENTRYPOINT都將用該用戶執行。

ARG

  由外部啓動時必須傳入的參數,在容器啓動時用--build-arg傳遞參數
  指定於外界交互的端口,在容器啓動時用-p傳遞參數,例如--build-arg CONT_IMG_VER=v2.0.1

FROM ubuntu
ARG CONT_IMG_VER
ENV CONT_IMG_VER ${CONT_IMG_VER:-v1.0.0}
RUN echo $CONT_IMG_VER
相關文章
相關標籤/搜索
本站公眾號
   歡迎關注本站公眾號,獲取更多信息