1. # 使用官方镜像作为父镜像
    2. FROM node:current-slim
    3. # 设置工作目录,该工作目录属于镜像文件系统
    4. WORKDIR /usr/src/app
    5. # 将本机的 package.json 复制到当前目录(也就是上面设置的工作目录)
    6. COPY package.json .
    7. # 在镜像文件系统中运行该命令
    8. RUN npm install
    9. # 容器在运行时监听的端口
    10. EXPOSE 8080
    11. # 一些元数据(meatdata),描述了如何基于此镜像运行容器,在这个例子中,它表示这个映像要支持的容器化进程是 npm start。
    12. CMD [ "npm", "start" ]
    13. # 将本机的其余源代码复制到 image 的文件系统中
    14. COPY . .
    • FROM 指定基础容器
    • RUN 执行命令。需要注意的是,每一个 RUN 命令就会建立一层镜像,所以在使用过程中要用 && 来链接,以减少镜像层数。撰写 Dockerfile 的时候,要经常提醒自己,这并不是在写 Shell 脚本,而是在定义每一层该如何构建。镜像是多层存储,每一层的东西并不会在下一层被删除,会一直跟随着镜像。因此镜像构建时,一定要确保每一层只添加真正需要添加的东西,任何无关的东西都应该清理掉。
    • shell 格式:RUN <命令>
    • exec 格式:RUN ["可执行文件", "参数1", "参数2"]