docker - 如何减少 CentOS 7 的 docker 镜像大小?
问题描述
我最近开始研究 docker,我正在尝试使用 CentOS:7.5.1804 映像为 CentOS 构建自定义映像。
我在这里面临的问题是原始 CentOS:7.5.1804 图像显示大小为 200MB,在我添加所需的包后,图像大小变为 1.2 GB!我想知道是否有办法减小图像大小?
我尝试在我的 dockerfile 中使用yum clean all
& rm -rf /var/cache/yum
,但是它几乎没有减少几 MB 并且没有太大帮助。
欢迎任何减少图像大小的输入/建议/最佳实践。我的 docker 文件如下图所示,生成一个 1.2GB 的镜像!
#Use CentOS as base
FROM centos:7.5.1804
# Docker recommends
RUN yum -y update && yum clean all
# Install custom tools
RUN yum -y install openssl && yum install -y nc && \
yum -y install python3 && pip3 install j2cli && \
yum -y install epel-release && yum -y update && yum install -y ccrypt && \
yum clean all && rm -rf /var/cache/yum
解决方案
你有一些不必要的说明,你能试试这个 Dockerfile 吗?
#Use CentOS as base
FROM centos:7.5.1804
# Install custom tools
RUN yum -y install openssl ccrypt nc epel-release python3 && \
pip3 install j2cli && \
yum clean all && rm -rf /var/cache/yum
推荐阅读
- load-balancing - 如何在 HA 集群中托管来自 Jboss EAP 7.1 从属的静态内容?
- javascript - 选择标签在多行的动态表中不起作用
- java - Solr 更新问题
- ruby-on-rails - 安装 json (1.8.1) 时出错,Bundler 无法继续
- angularjs - 显示 div 取决于使用 ng-show、ng-click、ng-init 的点击次数
- javascript - 简单的 Rails 应用程序 - 未捕获的 ReferenceError:$ 未定义
- android - web3j 和 web3js 中的签名不同?
- java - CalendarView 在片段中不起作用?安卓
- c# - 无法在 Azure DevOps 2019 通过代码(无权限)创建代理池
- flutter - 未定义命名参数“colors”。flutter