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"]
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章