Docker commit 命令保存的镜像文件太大的问题
基础镜像: centos7.5
进入容器后, 先后安装了 jdk1.8, maven3.6.0, git, rocketmq4.3.2
安装完成后使用 docker commit 命令保存为镜像
结果跑了半天以后终于保存下来一看竟然有 3.3G 的大小
我勒个去
去网上查了一番以后发现一个问题
由于docker镜像的构建方式是以层的概念来实现的
就是说我在容器内所做的所有操作都会在构建镜像时运行一遍
所以每一个操作所涉及到的内存空间, 都会成为镜像文件的一部分
比如我在容器内下载了rocketmq的源码, 并在里面编译安装完成
随后我把源码删掉了, 可是实际上他已经被深深地刻在了镜像上
投机取巧:
将已经安装好各个软件的容器中的相关文件download到宿主机的/home/package目录下
比如我这里的:
/usr/local/jdk1.8
/usr/local/maven3.6.0
/usr/local/rocketmq4.3.2
随后使用基础centos镜像打开一个新容器, 并把这些文件挂载到容器内:
docker run -it -v /home/package:/usr/local --privileged=true <centos镜像id> /bin/bash
进入容器后, 只需要修改 /root/.bashrc 文件, 设置一下环境变量
然后 docker commit 此容器
这样构建下来的镜像大小是 300+M (centos基础镜像为202M)
算是一波大瘦身吧. 当然是用dockerfile应该会更小
但是我现在还不会写, 再说吧!
Docker commit 命令保存的镜像文件太大的问题的更多相关文章
- docker commit命令创建新的镜像
docker commit命令创建新的镜像 1.运行容器 2.修改容器 3.将容器保存为新容器 (1)运行容器 [root@cmdb-server docker]# docker run -ti ce ...
- docker 构建自己的image 镜像文件
docker build 构建自己的镜像文件. 1.在本地工程中运行生成一个springboot的可运行的jar. 因为我习惯用eclipse,所以在eclipse下新建一个springboot的工程 ...
- docker commit命令
docker commit命令用于基于一个容器来创建一个新的docker镜像. docker commit制作的镜像,除了制定镜像的人知道执行过什么命令,怎么生成的镜像,别人根本无从得知.建议使用的是 ...
- /var/adm/wtmp文件太大该怎么办?
/var/admin/wtmp文件记录所有用户的登陆信息,随着时间会增长到很大,/var/adm/wtmp文件太大该怎么办呢?先来看看/var/adm/wtmp文件的属性:testterm1:/#ls ...
- Mysql文件太大导入失败解决办法总结
Mysql文件太大导入失败解决办法总结 在使用phpmyadmin导入数据库的时候可能会碰到由于数据库文件太大而无法导入的问题! 英文提示如下:File exceeds the maximum all ...
- jvm内存快照dump文件太大,怎么分析
1.场景 通常,使用eclipse的mat图形化工具打开dump的时候都会内存溢出. 对于比较小的dump,eclipse可以打开,但一旦dump文件太大,eclipse就有点束手无策. 这时候怎么办 ...
- [转]MySql ibdata1文件太大如何缩小
From : http://blog.chinaunix.net/uid-24373487-id-4223322.html 原文地址:MySql ibdata1文件太大如何缩小 作者:emailwht ...
- Sql 脚本文件太大 还原数据库
sql脚本太大直接在数据库中执行会提示内存不足,我们看生成的脚本文件会发现每隔100条会有一个GO来分隔,这就好说了 在我将数据库的结构连同数据生成一个脚本文件db.sql 后,想在另外的电脑上恢复数 ...
- 生成的API分析文件太大。我们无法在交付前验证您的API使用信息。这只是通知信息。
这次使用了APICloud平台来开发移动APP, 发布的时候在api控制台云编译成ipa后,这次使用apple提供的Application Loader工具提交apa文件到iTunes上去,提交结束的 ...
随机推荐
- LOJ 6281 数列分块入门 5
简化版题意 给出一个长为n的数列,以及n个操作,操作涉及区间开方(每个数都向下取整),区间求和,保证所有数都为有符号32位正整数. N<=50000 Solution 首先我们先思考: 一个有符 ...
- 【CTSC2016】时空旅行
链接 http://uoj.ac/problem/198 题解 首先要发现答案要我们求这个式子: \[ ans=min\bigl((x_i-x)^2+c_i\bigr) \] 显而易见的是这种时空嫁接 ...
- node配置环境变量
package.json "scripts": { "start_test": "cross-env BUILD_ENV=dev nuxt start ...
- Ticwatch2_3G版省电优化
设置 --> 网络与连接 --> 云消息同步(禁用) 设置 --> 声音与震动 --> 铃声与音量(静音) 设置 --> 声音与震动 --> 闹钟音量(静音) 设置 ...
- 没想到: System.out.println(n1 == f1 ? n1 : f1);
int n1 = 404; float f1 = 404.0f; if(n1 == f1) { System.out.println("两者相等"); } System.out.p ...
- js实现点气球小游戏
二话不说直接贴代码: <!DOCTYPE html> <html lang="en"> <head> <meta charset=&quo ...
- 二、Tensorflow的作用域和图
作用域主要用来不用重复定义变量,另外就是用与画图 import tensorflow as tf ''' 可视化 tf.summary.scalar 添加一个标量 tf.summary.audio 添 ...
- crm 一级菜单排序,二级菜单选中并且展开,非菜单权限的归属,权限粒度控制到按钮级别
排序 /rbac/templatetags/rbac.py from django import template from django.conf import settings import re ...
- 吐血记录微信小程序授权获取Unionid及linux下使用bouncycastle解密用户数据 遇到的坑
背景 公司小程序上线了,发现系统无法拿到一些用户的UniondID.但是上线前的测试一切都是正常的. 坑1 经排查,发现一些用户通过下面的接口无法得到unionid https://api.weixi ...
- ubuntu工作常用命令及需要留意的点汇总
这段时间比较忙,先是去北京出差一段时间,然后是福建项目部署上线,领导不愿意招人,只苦了我们下面的人,今天得空,简单汇总下ubuntu服务器部署的常用命令,及日常学习使用感受: 0.书籍买的<循序 ...