docker自定义Python镜像

2 篇文章 0 订阅
1 篇文章 0 订阅


前言

当我们使用docker镜像代替搭环境的时候,你的心情是起飞的
正是如此,你是否疑问,这些镜像哪里来的?
so,一起探索下自定义镜像
在这里插入图片描述


一、自定义python镜像

dockerfile文件用于自定义镜像,我通过基础镜像centos来构建一个python3.7.5镜像。

dockerfile

FROM daocloud.io/library/centos:centos7
# 下载解压包到dockerfile同级目录 https://www.python.org/downloads/release/python-375/
COPY ./Python-3.7.5 /usr/local/Python-3.7.5
# dockerfile同级目录下配置源文件
COPY ./pip.conf /root/.pip/pip.conf
RUN cd /usr/local/Python-3.7.5 \
    && yum install -y gcc make wget zlib zlib-devel \
    bzip2 bzip2-devel libffi-devel readline readline-devel \ 
    ncurses ncurses-devel openssl openssl-devel \
    && ./configure \
    && make \
    && make install \
    && rm -rf /usr/bin/python \
    && rm -rf /usr/bin/pip \
    && ln -s /usr/local/python3.7 /usr/bin/python \
    && ln -s /usr/local/pip3.7 /usr/bin/pip

pip.conf

[global]
index-url = https://pypi.tuna.tsinghua.edu.cn/simple
[install]
trusted-host = https://pypi.tuna.tsinghua.edu.cn

这里我只用了一层镜像(docker分层原理)。在搭建的过程中只要有一个命令出错了,就得调试重新build,最后的结果如图。

我自定义的python镜像文件有748MB,而别人的镜像才83.4MB,差了10倍,emoji…如何压缩镜像大小?

二、镜像优化

2.1 基础镜像的选择尽量精简

基础镜像centos7可以选择精简版才70MB,甚至可以选择Alpine Linux。
在这里插入图片描述

2.2 RUN命令的使用尽量少

因为一个RUN命令就会建立一层自定义镜像层,涉及镜像分层原理。

2.3 清理不必要的镜像构建的中间产物

如不需要的文件、压缩包、目录等等

# 清理yum下载的依赖包等
yum clean all
# 删除python的下载包
rm -rf /usr/local/Python-3.7.5

在这里插入图片描述
再次构建镜像,发现减少了100MB

2.4 尽量使用构建缓存

这样多个镜像只需要共享同一个镜像层,并且构建速度很快。

2.5 优化网络请求

也是为了提高构建的速度

2.6 使用多阶段构建镜像


总结

docker自定义镜像简单,镜像优化需要了解原理
欢迎相互交流


相关文章

1、Docker镜像的优化

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值