Dockerfile用来帮助我们自己构建一个自定义镜像,Dockerfile成为镜像构建,描述文件。日后可以将自己的应用打包成镜像,这样就能运行在容器中。

Dockerfile保留字

保留字 作用
FROM 基于那个镜像。第一条指令必须是FROM
RUN 构建时候可以添加的运行指定指令。 如提前下载某些包
EXPOSE 当前容器对外包喽的端口号
WOEKDIR 终端登陆进来后的工作目录
ENV 构建过程中设置环境变量
ADD 从宿主机目录下的文件卡贝进镜像且会自动处理URL下载和解压tar包
COPY 拷贝文件或目录到镜像中
VOLUME 容器数据卷,用于数据保存和持久化
CMD 指定一个容器启动时要运行的命令,可以有多个CMD但是只有最后一个会生效
ENTRYPOINT

FROM

基于那个镜像开始构建。第一条指令必须是FROM

  1. # 加载centos:7
  2. FROM centos:7

RUN

构建时候可以添加的运行指定指令。运行某些命令。注意,如果写多个会创建多个镜像层

  1. RUN npm install

ENV

设置环境变量,通过$xxx 使用

  1. ENV BASE_DIR /app/koa
  2. WORKDIR $BASE_DIR

WODKDIR

设置工作目录

  1. WORKDIR /app/koa

ADD

创建一个目录,自动解压.tar文件夹

  1. ADD /app/koa

COPY

和ADD一样创建一个目录,但是不能解压文件

  1. COPY /app/koa

VOLUME

指定挂载数据卷的位置

  1. VOLUME /app/koa/database

EXPOSE

对外暴露的端口

  1. EXPOSE 8080

CMD

启动容器时候运行的命令

  1. CMD npm run dev