- 尽量使用官方的image作为base image!为了安全!
- Label常用于作者和项目介绍。
- RUN 执行命令。每run一次都会增加一层在镜像上,所以不推荐。 推荐使用&&把过个命令合成一行。如果&多个命令后,显起来会乱,使用反斜杠进行整理\
- 为了美观,复杂的RUN请用反斜线换行!避免无用分层,合并多条命令成一行!
- 用WORKDIR,不要用RUN cd!尽量使用绝对目录!
- 尽量使用ENV增加可维护性!
实战
FROM python:2.7
LABEL maintainer="Peng Xiao<xiaoquwl@gmail.com>"
RUN pip install flask
COPY app.py /app/
WORKDIR /app
EXPOSE 5000
CMD ["python", "app.py"]
自己写Dockerfile的步骤
- 安装需要的库
- 拷贝本地需要的文件到镜像中
- 通过WORKDIR切到需要的目录
- EXPOSE对外暴露端口
- 执行命令
- COPY 这里“/app/”一定要注意末尾的“/”别忘加了,否则就不是目录了,就是改名了