DockerFile文件之详细介绍

一、关于DockerFile

在Docker中创建镜像最常用的方式,就是使用Dockerfile。Dockerfile是一个Docker镜像的描述文件,我们可以理解成火箭发射的A、B、C、D…的步骤。Dockerfile其内部包含了一条条的指令,每一条指令构建一层,因此每一条指令的内容,就是描述该层应当如何构建。

二、Dockerfile的示例如下所示

FROM node:12

RUN rm -f /etc/localtime
&& ln -s /usr/share/zoneinfo/Asia/Chongqing /etc/localtime

ENV PORT 12001
EXPOSE $PORT

WORKDIR /app

COPY package-lock.json package.json ./

RUN npm install

VOLUME /app/node_modules

COPY . ./

ENTRYPOINT ["/app/entrypoint"]

CMD [“npm”, “start”]

2.1 FORM

指明构建的新镜像是来自于哪个基础镜像,例如:

FORM node:12       指定tag版本为12的node基础镜像

2.2 RUN

构建镜像时运行的Shell命令,例如:
 配置时区

RUN rm -f /etc/localtime \
 && ln -s /usr/share/zoneinfo/Asia/Chongqing /etc/localtime

2.3 ENV

用于设置环境变量)
在镜像中设置一个环境变量,例如:

ENV:PORT 12001

2.4 EXPOSE

指定容器需要映射到宿主机的端口,例如

EXPOSE: $PORT

2.5 WORKDIR

指定工作目录,例如:

WORKDIR /app

2.6 COPY

复制文件到镜像

COPY package-lock.json package.json ./

2.7 RUN

构建镜像时运行的命令,例如:

RUN npm install

2.8 VOLUME

指定容器挂载点到宿主机自动生成的目录,例如

VOLUME /app/node_modules

2.9 ENTRYPOINT

启动容器时执行的Shell命令,同CMD类似,只是由ENTRYPOINT启动的程序不会被docker run命令行指定的参数所覆盖,仅有最后一个会生效。

ENTRYPOINT ["/app/entrypoint"]

2.9 CMD

启动容器时执行的Shell命令

CMD ["npm", "start"]
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章