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环境中使用命令行进行构建与上传。

PaaS 平台镜像构建与上传请看教程 PaaS 平台应用镜像构建

python 各版本镜像_Python 基础镜像构建相关推荐

  1. Docker基础镜像操作系统基础镜像对比(参考官方文档),优化docker镜像

    目录: 一. 选择Docker基础镜像 操作系统基础镜像 1. busybox 2. Alpine 3. CentOS 4. Ubuntu 5. Debian 二.编程语言基础镜像 应用基础镜像 其它 ...

  2. python until怎么用_python基础之从认识python到python的使用

    python的历史: python的创始人是吉多·范罗苏姆(Guido van Rossum),人称"龟叔",1989年圣诞节期间,Guido开始写Python语言的编译器.他希望 ...

  3. Python按键精灵自动化_Python基础:了解Python与pycharm

    认识 Python 人生苦短,我用 Python -- Life is short, you need Python 目标 Python 的起源 为什么要用 Python? Python 的特点 Py ...

  4. python 库 镜像_python安装镜像库

    {"moduleinfo":{"card_count":[{"count_phone":1,"count":1}],&q ...

  5. python文件操作解码_python基础3之文件操作、字符编码解码、函数介绍

    内容概要: 一.文件操作 二.字符编码解码 三.函数介绍 一.文件操作 文件操作流程: 打开文件,得到文件句柄并赋值给一个变量 通过句柄对文件进行操作 关闭文件 基本操作: 1 #/usr/bin/e ...

  6. pythonn 安装包 清华镜像_Python 清华镜像设置

    大家在通过pip 或conda 下载一些很大的第三方库时是不是有一种等到坟头的草都三尺高了,还没下载完的感觉,而且大的第三方库长时间下载,可能会导致超时自动中断下载,感谢清华的大佬们 临时使用: pi ...

  7. python流程控制框架_Python基础(相关历史、交互、简单流程控制)

    开始学习Python啦,希望能坚持下来,在博客园里记录一下学习过程,感谢博客园提供平台! Python发展史 1989年圣诞节,Guido开始写Python语言的编译器,Python这个名字源于Gui ...

  8. python新手入门课_Python基础视频12集入门课程

    视频+笔记:├─1简介与实验环境配置9│ Python基础.pptx│ Python简介.pptx│ 实验环境配置2-1.pdf│ 2.1简介与实验环境配置.mp4│ 请简述 Python 语言与 C ...

  9. python中factor函数_Python基础教程

    6.4.5 参数收集的逆过程 假设有如下函数: def add(x,y): return x+y 比如说有个包含由两个相加的数字组成的元组: params = (1,2) 使用*运算符对参数进行&qu ...

最新文章

  1. 【C++】拷贝,赋值与构造
  2. 聊一聊 Java 服务端中的乱象
  3. 【FFmpeg】FFmpeg 帮助文档使用
  4. Spring Boot Security
  5. Unable to load native-hadoop library for your platform
  6. C# 10 新特性 —— CallerArgumentExpression
  7. 八皇后解法(回溯法)
  8. String、StringBuffer 、StringBuilder 的区别(转)
  9. innerhtml有值但是页面上无显示_西门子PLCS7-1200用户自定义Web页面制作
  10. java 实现扑克牌洗牌功能
  11. Android音乐播放器
  12. 经典编程题——折纸问题
  13. 算法图解——广度优先搜索
  14. 使用GDB调试Linux内核空指针问题
  15. (Git/Github笔记)Git使用时错误记录
  16. vue使用echarts图表小结
  17. linux服务精简优化解析,CentOS系统环境精简优化详解
  18. Slog41_支配vue框架初阶项目之博客网站-单页-登陆成功页面的布局和定位
  19. ie浏览器缓存不能更新页面数据
  20. SQL语句求总数、求平均数、降序排…

热门文章

  1. RGBA颜色与兼容性的半透明背景色
  2. 【C++】优先级队列 priority_queue的使用模拟实现 | 仿函数
  3. HTML入门知识盘点
  4. Xiaojie雷达之路---基本雷达方程(单基地雷达方程)
  5. Java-设计模式之观察者模式
  6. cypress进行e2e测试之理论
  7. 王者荣耀服务器维护5月22,王者荣耀5月22日iOS异常登录及补偿公告 官方发放补偿奖励...
  8. 牛客网编程基础6-8
  9. PC模拟仿真LVGL(CodeBlocks环境)
  10. STM32 EXTI外部中断的使用