Python 基础镜像构建

如何制作一个定制的 Python 基础 Docker 镜像

目标:准备一个定制的 Python 基础镜像。
基础镜像,通常为含最小功能的系统镜像,之后的应用镜像都以此为基础。

制作基础镜像

选择 Ubuntu 官方的 14.04 版本为我们依赖的系统镜像。
FROM ubuntu:trusty

用 RUN 命令调用 apt-get 包管理器安装 Python 环境所依赖的程序包。

安装依赖包相对比较固定,因此该动作应该尽量提前,这样做有助于提高镜像层的复用率。
安装完依赖后清理缓存文件 / 临时文件可以显著的减少镜像大小。

RUN apt-get update && \  
    apt-get install -y python \  
                       python-dev \  
                       python-pip && \  
    rm -rf /var/lib/apt/lists/*  

以下这个方法不建议采用,原因是比上述命令多添加了一层镜像,然而并没有降低总镜像的体积。

RUN apt-get update && \  
    apt-get install -y python \  
                       python-dev \  
                       python-pip   
    RUN rm -rf /var/lib/apt/lists/*  
用 RUN 命令调用 mkdir 来准备一个干净的放置代码的目录。
RUN mkdir -p /app
指定其为当前的工作目录。
WORKDIR /app
指定暴露的容器内端口地址,最后设置默认启动命令。
EXPOSE 80
CMD ["bash"]  

至此一个 Python 的基础镜像制作完毕,您可以在本地运行 docker build -t registry.cosmoplat.com/test/python-based:1.0.0 . 来构建出这个镜像并命名为 registry.cosmoplat.com/test/my-python-base:1.0.0

Python 家族成员众多,因此需要一个通用的基础镜像,并在此基础上根据需求进行定制。

完整的 Dockerfile

# Ubuntu 14.04,Trusty Tahr(可靠的塔尔羊)发行版
FROM ubuntu:trusty

# APT 自动安装 Python 相关的依赖包,如需其他依赖包在此添加
RUN apt-get update && \
    apt-get install -y python \
                       python-dev \
                       python-pip  \
# 用完包管理器后安排清理缓存文件/临时文件可以显著的减少镜像大小
    && apt-get clean \
    && apt-get autoclean \
    && rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* 

# 配置默认放置 App 的目录
RUN mkdir -p /app
WORKDIR /app
EXPOSE 80
CMD ["bash"]

至此,便可得到 python 的基础镜像,接下来便可在此基础上根据需求定制 python 应用了

镜像构建与上传

Dockerfile 制作好之后就需要构建镜像,借助PaaS平台可以快速构建以及上传。

也可以在Docker环境中使用命令行进行构建与上传。