常用指令

ARG

用途

申明创建镜像过程中使用的变量

用法

ARG tag=latest

FROM

用途

指定基础镜像,写在第一行

用法

FROM nginx:latest

LABEL

用途

给镜像元数据添加标签

用法

LABEL author=lglbc

EXPOSE

用途

申明需要需要的端口,但是不会做端口映射

用法

EXPOSE 80 443

ENV

用途

指定环境变量,在后续容器中也会存在

用法

ENV key=value key1=value1

ENTRYPOINT

用途

设置镜像的默认入口命令,容器启动时,首先会去执行这个命令

用法

ENTRYPOINT [“ls” “-l”]

WORKDIR

用途

配置工作目录

用法

WORKDIR /a

ONBUILD

用途

build镜像时,优先执行的指令,只会在子镜像中执行

用法

ONBUILD 任意dockerfile 指令

操作指令

RUN

用途

运行指定命令

用法

RUN ls -l

CMD

用途

CMD 指令用来指定启动容器时默认执行的命令 。与run不同之处在于这个只能出现一次,如果出现多次,则只有最后一条生效

用法

CMD java -jar app.jar

ADD

用途

添加内容到镜像

用法

ADD ./*.jar /app/

COPY

用途

复制内容到镜像,如果是本地目录推荐使用COPY

用法

COPY ./*.jar /app/

实战案例

FROM nginx:latest
ARG version=1
LABEL author="乐哥聊编程"
EXPOSE 80 443
ENV profile dev
#ENTRYPOINT echo 'nginx start success...'
WORKDIR /usr/share/nginx/html
ONBUILD RUN apt-get update
ONBUILD RUN apt install -y tree
RUN echo 'dockerfile build success ...'
RUN rm -rf /usr/share/nginx/html/*
ADD ./html/index.html /usr/share/nginx/html/